Ansible Role - Docker
Go to file
Jeff Geerling db8265990b
Merge pull request #26 from jamesla/master
Add a docker_users variable
2018-05-06 17:45:53 -05:00
defaults Merge pull request #26 from jamesla/master 2018-05-06 17:45:53 -05:00
handlers Initial commit. 2017-02-23 22:08:18 -06:00
meta Docker repo doesn't yet support Ubuntu 18.04 Bionic, it seems. 2018-05-01 21:36:08 -05:00
tasks Merge pull request #26 from jamesla/master 2018-05-06 17:45:53 -05:00
tests Update test script README. [ci skip] 2017-04-02 10:40:37 -05:00
.gitignore Switch to more efficient and compact test setup. 2017-04-01 22:48:28 -05:00
.travis.yml Docker repo doesn't yet support Ubuntu 18.04 Bionic, it seems. 2018-05-01 21:36:08 -05:00
LICENSE Add a LICENSE file for MIT license. [ci skip] 2017-03-31 11:23:23 -05:00
README.md Merge pull request #26 from jamesla/master 2018-05-06 17:45:53 -05:00

Ansible Role: Docker

Build Status

An Ansible Role that installs Docker on Linux.

Requirements

None.

Role Variables

Available variables are listed below, along with default values (see defaults/main.yml):

# Edition can be one of: 'ce' (Community Edition) or 'ee' (Enterprise Edition).
docker_edition: 'ce'
docker_package: "docker-{{ docker_edition }}"
docker_package_state: present

The docker_edition should be either ce (Community Edition) or ee (Enterprise Edition). You can also specify a specific version of Docker to install using a format like docker-{{ docker_edition }}-<VERSION>. And you can control whether the package is installed, uninstalled, or at the latest version by setting docker_package_state to present, absent, or latest, respectively.

docker_restart_on_package_change: True

Whether to restart the Docker daemon after the Docker package is installed or updated. If this is set to True, this role will flush all handlers (run any of the handlers that have been notified by this and any other role up to this point in the play). The default setting helps avoid firewall clashes with Docker rules (e.g. when using custom iptables rules or the geerlingguy.firewall Ansible role).

docker_install_compose: True
docker_compose_version: "1.21.1"
docker_compose_path: /usr/local/bin/docker-compose

Docker Compose installation options.

docker_apt_release_channel: stable
docker_apt_arch: amd64
docker_apt_repository: "deb [arch={{ docker_apt_arch }}] https://download.docker.com/linux/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} {{ docker_apt_release_channel }}"
docker_apt_ignore_key_error: True

(Used only for Debian/Ubuntu.) You can switch the channel to edge if you want to use the Edge release.

docker_yum_repo_url: https://download.docker.com/linux/centos/docker-{{ docker_edition }}.repo
docker_yum_repo_enable_edge: 0
docker_yum_repo_enable_test: 0

(Used only for RedHat/CentOS.) You can enable the Edge or Test repo by setting the respective vars to 1.

docker_users:
  - user1
  - user2

Set the docker_users variable to allow those users to run docker (these users are added to the docker group)

Use with Ansible (and docker Python library)

Many users of this role wish to also use Ansible to then build Docker images and manage Docker containers on the server where Docker is installed. In this case, you can easily add in the docker Python library using the geerlingguy.pip role:

- hosts: all

  vars:
    pip_install_packages:
      - name: docker

  roles:
    - geerlingguy.pip
    - geerlingguy.docker

Dependencies

None.

Example Playbook

- hosts: all
  roles:
    - geerlingguy.docker

License

MIT / BSD

Author Information

This role was created in 2017 by Jeff Geerling, author of Ansible for DevOps.