mirror of
https://github.com/geerlingguy/ansible-role-docker.git
synced 2024-11-28 19:06:03 +01:00
92 lines
3.4 KiB
Markdown
92 lines
3.4 KiB
Markdown
# Ansible Role: Docker
|
|
|
|
[![Build Status](https://travis-ci.org/geerlingguy/ansible-role-docker.svg?branch=master)](https://travis-ci.org/geerlingguy/ansible-role-docker)
|
|
|
|
An Ansible Role that installs [Docker](https://www.docker.com) 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_service_state: started
|
|
docker_service_enabled: yes
|
|
docker_restart_handler_state: restarted
|
|
|
|
Variables to control the state of the `docker` service, and whether it should start on boot. If you're installing Docker inside a Docker container without systemd or sysvinit, you should set these to `stopped` and set the enabled variable to `no`.
|
|
|
|
docker_install_compose: True
|
|
docker_compose_version: "1.21.2"
|
|
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
|
|
|
|
A list of system users to be added to the `docker` group (so they can use Docker on the server).
|
|
|
|
## 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:
|
|
|
|
```yaml
|
|
- hosts: all
|
|
|
|
vars:
|
|
pip_install_packages:
|
|
- name: docker
|
|
|
|
roles:
|
|
- geerlingguy.pip
|
|
- geerlingguy.docker
|
|
```
|
|
|
|
## Dependencies
|
|
|
|
None.
|
|
|
|
## Example Playbook
|
|
|
|
```yaml
|
|
- hosts: all
|
|
roles:
|
|
- geerlingguy.docker
|
|
```
|
|
|
|
## License
|
|
|
|
MIT / BSD
|
|
|
|
## Author Information
|
|
|
|
This role was created in 2017 by [Jeff Geerling](https://www.jeffgeerling.com/), author of [Ansible for DevOps](https://www.ansiblefordevops.com/).
|