🚚 Migrate docker_host role to external project
We used a similar local role here, in the Freifunk Magdeburg project, and in personal playbooks. That was moved to an external project, unified, and reworked, so the external role can act as replacement for the distributed, redundant copies. Link: https://github.com/netz39/ansible-role-host-docker
This commit is contained in:
parent
2fe2420a10
commit
b22c86758e
13 changed files with 10 additions and 120 deletions
|
@ -3,7 +3,7 @@
|
|||
become: true
|
||||
|
||||
roles:
|
||||
- role: docker_setup
|
||||
- role: netz39.host_docker
|
||||
|
||||
- hosts: docker_host:&location_space
|
||||
become: true
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
|
||||
roles:
|
||||
# role 'docker_setup' applied through group 'docker_host'
|
||||
# role 'netz39.host_docker' applied through group 'docker_host'
|
||||
- role: apache
|
||||
- role: apache_letsencrypt # Uses configuration from dehydrated setup
|
||||
- role: 24367dfa.dehydrated
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
become: true
|
||||
|
||||
roles:
|
||||
# role 'docker_setup' applied through group 'docker_host'
|
||||
# role 'netz39.host_docker' applied through group 'docker_host'
|
||||
- role: apache
|
||||
- role: apache_letsencrypt # Uses configuration from dehydrated setup
|
||||
- role: 24367dfa.dehydrated
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
brotherql_host_port: 9004
|
||||
|
||||
roles:
|
||||
# role 'docker_setup' applied through group 'docker_host'
|
||||
# role 'netz39.host_docker' applied through group 'docker_host'
|
||||
- role: apache
|
||||
- role: apache_letsencrypt # Uses configuration from dehydrated setup
|
||||
- role: 24367dfa.dehydrated
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
discord_invite_domain: discord.netz39.de
|
||||
|
||||
roles:
|
||||
# role 'docker_setup' applied through group 'docker_host'
|
||||
# role 'netz39.host_docker' applied through group 'docker_host'
|
||||
- role: apache
|
||||
- role: penguineer.dehydrated_cron
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
data_dir: "/srv/data"
|
||||
|
||||
roles:
|
||||
# role 'docker_setup' applied through group 'docker_host'
|
||||
# role 'netz39.host_docker' applied through group 'docker_host'
|
||||
|
||||
tasks:
|
||||
- name: Setup the docker container for unifi-controller
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
become: true
|
||||
|
||||
roles:
|
||||
- role: docker_setup
|
||||
- role: netz39.host_docker
|
||||
vars:
|
||||
docker_data_root: "/srv/docker"
|
||||
- role: apache
|
||||
|
|
|
@ -16,6 +16,9 @@ roles:
|
|||
version: v1.1.0
|
||||
- src: lespocky.telegraf_docker_in_docker
|
||||
version: v0.2.1
|
||||
- name: netz39.host_docker
|
||||
src: git+https://github.com/netz39/ansible-role-host-docker.git
|
||||
version: v0.3.0
|
||||
|
||||
collections:
|
||||
- name: community.grafana
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
---
|
||||
docker_compose_version: "1.25.4"
|
||||
docker_compose_path: /usr/local/bin/docker-compose
|
||||
docker_data_root: "/var/lib/docker"
|
||||
docker_storage_driver: "overlay2"
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
- name: restart docker
|
||||
service:
|
||||
name: docker
|
||||
state: restarted
|
||||
enabled: yes
|
|
@ -1,91 +0,0 @@
|
|||
# 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
|
||||
ansible.builtin.template:
|
||||
src: templates/docker.list.j2
|
||||
dest: /etc/apt/sources.list.d/docker.list
|
||||
register: apt_repo
|
||||
|
||||
- name: Update package cache # noqa: no-handler
|
||||
ansible.builtin.apt:
|
||||
update_cache: true
|
||||
when: apt_repo.changed
|
||||
|
||||
- name: install Docker
|
||||
package:
|
||||
name: "{{ packages }}"
|
||||
state: present
|
||||
vars:
|
||||
packages:
|
||||
- docker-ce
|
||||
- python3-docker
|
||||
|
||||
- name: Set docker configuration
|
||||
template:
|
||||
src: templates/daemon.json.j2
|
||||
dest: /etc/docker/daemon.json
|
||||
mode: "0644"
|
||||
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.logname }}"
|
||||
groups: [docker]
|
||||
append: yes
|
||||
when: item.docker
|
||||
with_items: "{{ users }}"
|
||||
|
||||
- name: Ensure that docker image prune cron job is present.
|
||||
ansible.builtin.cron:
|
||||
name: docker image prune
|
||||
special_time: weekly
|
||||
user: root
|
||||
job: "docker image prune --all --force"
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"exec-opts": ["native.cgroupdriver=systemd"],
|
||||
"log-driver": "json-file",
|
||||
"log-opts": {
|
||||
"max-size": "100m"
|
||||
},
|
||||
"data-root": "{{ docker_data_root }}",
|
||||
"storage-driver": "{{ docker_storage_driver }}"
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
deb https://download.docker.com/linux/debian {{ ansible_distribution_release }} stable
|
||||
|
Loading…
Add table
Reference in a new issue