forked from Netz39_Admin/netz39-infra-ansible
Add docker installation as role
This commit is contained in:
parent
a3fba1094f
commit
1a50bbdfc7
2 changed files with 91 additions and 0 deletions
6
roles/install-docker/handlers/main.yml
Normal file
6
roles/install-docker/handlers/main.yml
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
- name: restart docker
|
||||
service:
|
||||
name: docker
|
||||
state: restarted
|
||||
enabled: yes
|
85
roles/install-docker/tasks/main.yml
Normal file
85
roles/install-docker/tasks/main.yml
Normal file
|
@ -0,0 +1,85 @@
|
|||
# This file is a mash-up of:
|
||||
# https://github.com/geerlingguy/ansible-role-docker/blob/master/tasks/docker-compose.yml
|
||||
# https://www.digitalocean.com/community/tutorials/how-to-install-docker-compose-on-debian-9
|
||||
# and our own stuff …
|
||||
---
|
||||
- name: Gather package facts
|
||||
package_facts:
|
||||
manager: "auto"
|
||||
|
||||
- name: Exit if docker.io is installed
|
||||
fail:
|
||||
msg: "Please remove docker.io (Debian vanilla docker package) first!"
|
||||
when: "'docker.io' in ansible_facts.packages"
|
||||
|
||||
- name: Install Docker APT deps
|
||||
package:
|
||||
name: "{{ packages }}"
|
||||
state: present
|
||||
vars:
|
||||
packages:
|
||||
- apt-transport-https
|
||||
- ca-certificates
|
||||
- gnupg2
|
||||
- software-properties-common
|
||||
|
||||
- name: add Docker apt-key
|
||||
apt_key:
|
||||
url: https://download.docker.com/linux/debian/gpg
|
||||
state: present
|
||||
|
||||
- name: add Docker's APT repository
|
||||
apt_repository:
|
||||
repo: deb https://download.docker.com/linux/debian buster stable
|
||||
state: present
|
||||
update_cache: true
|
||||
filename: 'docker'
|
||||
|
||||
- name: install Docker
|
||||
package:
|
||||
name: "{{ packages }}"
|
||||
state: present
|
||||
vars:
|
||||
packages:
|
||||
- docker-ce
|
||||
- python-docker
|
||||
|
||||
- name: Set docker configuration
|
||||
copy:
|
||||
dest: /etc/docker/daemon.json
|
||||
content: |
|
||||
{
|
||||
"exec-opts": ["native.cgroupdriver=systemd"],
|
||||
"log-driver": "json-file",
|
||||
"log-opts": {
|
||||
"max-size": "100m"
|
||||
}
|
||||
}
|
||||
notify: restart docker
|
||||
|
||||
- name: Check current docker-compose version.
|
||||
command: docker-compose --version
|
||||
register: docker_compose_current_version
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
|
||||
- name: Delete existing docker-compose version if it's different.
|
||||
file:
|
||||
path: "{{ docker_compose_path }}"
|
||||
state: absent
|
||||
when: >
|
||||
docker_compose_current_version.stdout is defined
|
||||
and docker_compose_version not in docker_compose_current_version.stdout
|
||||
|
||||
- name: Install Docker Compose (if configured).
|
||||
get_url:
|
||||
url: https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-Linux-x86_64
|
||||
dest: "{{ docker_compose_path }}"
|
||||
mode: 0755
|
||||
|
||||
- name: Place admin users in docker group
|
||||
user:
|
||||
name: "{{ item }}"
|
||||
groups: docker
|
||||
append: yes
|
||||
with_items: "{{ docker_users }}"
|
Loading…
Reference in a new issue