diff --git a/docker/defaults/main.yml b/docker/defaults/main.yml new file mode 100644 index 00000000..f8445a3f --- /dev/null +++ b/docker/defaults/main.yml @@ -0,0 +1,13 @@ +--- +docker_install: False +docker_swarm: False +docker_repo_key: '58118E89F3A912897C070ADBF76221572C52609D' +docker_repo_keyserver: 'hkp://ha.pool.sks-keyservers.net:80' +# Set to the Debian distribution name if not Ubuntu +docker_distribution: '{{ ansible_distribution_release | lower }}' +docker_repo: 'deb https://apt.dockerproject.org/repo {{ ansible_distribution }}-{{ docker_distribution }} main' + +docker_pkg_status: latest +docker_packages: + - docker-engine + diff --git a/docker/tasks/main.yml b/docker/tasks/main.yml index d452fd2a..476c5896 100644 --- a/docker/tasks/main.yml +++ b/docker/tasks/main.yml @@ -4,4 +4,5 @@ - name: Enable Docker TCP on local bridge (for docker swarm) action: configfile path=/etc/default/docker syntax=shell key=DOCKER_OPTS value="\"-H tcp://172.17.42.1:2375 -H unix:///var/run/docker.sock\"" notify: Restart docker + when: docker_swarm tags: docker-conf diff --git a/docker/tasks/pkgs.yml b/docker/tasks/pkgs.yml index 381062ce..5ec06d25 100644 --- a/docker/tasks/pkgs.yml +++ b/docker/tasks/pkgs.yml @@ -1,16 +1,34 @@ --- -- name: Add Docker repository key - apt_key: url="https://get.docker.io/gpg" - tags: - - docker +- block: + - name: Add the Docker repository key + apt_key: keyserver={{ docker_repo_keyserver }} id=docker_repo_key state=present -- name: Add Docker repository - apt_repository: repo='deb http://get.docker.io/ubuntu docker main' update_cache=yes - tags: - - docker + - name: Add the Docker repository + apt_repository: repo='{{ docker_repo }}' update_cache=yes -- name: Install Docker - apt: pkg=lxc-docker state=present - tags: - - docker + - name: Install Docker + apt: pkg={{ item }} state={{ docker_pkg_status }} update_cache=yes cache_valid_time=3600 + with_items: '{{ docker_packages }}' + - name: Ensure that the service is started and enabled + service: name=docker state=started enabled=yes + + when: docker_install + tags: docker + +- block: + - name: Ensure that the service is stopped and disabled + service: name=docker state=stopped enabled=no + + - name: Remove the Docker package + apt: pkg={{ item }} state=absent + with_items: '{{ docker_packages }}' + + - name: Remove the Docker repository key + apt_key: keyserver={{ docker_repo_keyserver }} id=docker_repo_key state=absent + + - name: Remove the Docker repository + apt_repository: repo='{{ docker_repo }}' state=absent update_cache=yes + + when: not docker_install + tags: docker