
# 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: Prereqs and SSL support for apt for SSL
  become: yes
  apt:
    name: "{{ item }}"
    update_cache: yes
    cache_valid_time: 3600
  with_items:
    - apt-transport-https
    - ca-certificates
    - python-pip

- name: Docker Apt Key
  become: yes
  apt_key:
    data: "{{ lookup('file', 'docker_apt_key.gpg') }}"

- name: Docker repository
  become: yes
  apt_repository:
    repo: "{{ docker_apt_repo }}"

- name: Install docker-ce
  become: yes
  apt:
    name: "docker-ce=17.06.*"
    update_cache: yes
    cache_valid_time: 3600

# docker fails without docker-py, docker-compose >1.9 fails with docker-py installed
- name: Install docker-compose
  become: yes
  pip:
    name: "{{ item }}"
  with_items:
    - "docker==2.4.2"
    - "docker-compose==1.15.0"

- name: Make current user part of the Docker group
  become: yes
  user:
    name: "{{ ansible_user_id }}"
    groups: "docker"
    append: yes

