
# Copyright 2017-present Open Networking Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


---

- name: Trust docker apt key
  apt_key:
    data={{ lookup('file', 'docker_apt_key.gpg') }}

- name: Debian add Docker repository and update apt cache
  apt_repository:
    repo: "deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable"
    update_cache: yes
    state: present
  tags: [docker]

- name: Debian Docker is present
  apt:
    name: "docker-ce=17.06.*"
    state: present
    force: yes
  tags: [docker]

- name: Debian python-pip is present
  apt: name=python-pip state=present
  tags: [docker]

- name: Debian docker-py is present
  pip:
    name: "docker==2.4.2"
    state: present
  tags: [docker]

- name: Debian files are present
  template:
    src: "{{ docker_cfg }}"
    dest: "{{ docker_cfg_dest }}"
  register: copy_result
  tags: [docker]

- name: Debian Daemon is reloaded
  systemd:
    daemon_reload: yes
  when: copy_result|changed and is_systemd is defined
  tags: [docker]

- name: vagrant user is added to the docker group
  user:
    name: vagrant
    group: docker
  register: user_result
  tags: [docker]

- name: Debian Docker service is restarted
  service:
    name: docker
    state: restarted
  when: copy_result|changed or user_result|changed
  tags: [docker]

- name: DockerUI is running
  docker_container:
    image: abh1nav/dockerui
    name: dockerui
    ports: 9000:9000
    privileged: yes
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
  when: not skip_ui is defined
  tags: [docker]
