feat(docker): add ansible role
This commit is contained in:
18
roles/docker/tasks/configure.yml
Normal file
18
roles/docker/tasks/configure.yml
Normal file
@ -0,0 +1,18 @@
|
||||
---
|
||||
- name: Ensure config directory '{{ docker_daemon_config_file | dirname }}' is present
|
||||
ansible.builtin.file:
|
||||
path: "{{ docker_daemon_config_file | dirname }}"
|
||||
state: "directory"
|
||||
mode: "0755"
|
||||
owner: "{{ docker_daemon_config_owner }}"
|
||||
group: "{{ docker_daemon_config_group }}"
|
||||
|
||||
- name: Configure docker daemon using '{{ docker_daemon_config_file }}'
|
||||
ansible.builtin.copy:
|
||||
content: "{{ docker_daemon_config | to_json }}"
|
||||
dest: "{{ docker_daemon_config_file }}"
|
||||
mode: "{{ docker_daemon_config_file_mode }}"
|
||||
owner: "{{ docker_daemon_config_owner }}"
|
||||
group: "{{ docker_daemon_config_group }}"
|
||||
when: docker_daemon_config | string | length > 0
|
||||
notify: docker-restart
|
30
roles/docker/tasks/install-debian.yml
Normal file
30
roles/docker/tasks/install-debian.yml
Normal file
@ -0,0 +1,30 @@
|
||||
---
|
||||
- name: Ensure legacy docker packages are removed
|
||||
ansible.builtin.apt:
|
||||
name: "{{ docker_apt_legacy_packages }}"
|
||||
state: absent
|
||||
when: docker_remove_legacy_packages
|
||||
|
||||
- name: Add apt key for docker repository
|
||||
ansible.builtin.apt_key:
|
||||
id: "{{ docker_apt_key_id }}"
|
||||
url: "{{ docker_apt_key_url }}"
|
||||
state: "{{ docker_state }}"
|
||||
|
||||
- name: Add apt repository for docker
|
||||
ansible.builtin.apt_repository:
|
||||
repo: "{{ docker_apt_repository }}"
|
||||
state: "{{ docker_state }}"
|
||||
register: docker_apt_repository_info
|
||||
|
||||
- name: Update apt cache if repository was newly added
|
||||
ansible.builtin.apt:
|
||||
update_cache: true
|
||||
when:
|
||||
- docker_state == 'present'
|
||||
- docker_apt_repository_info.changed
|
||||
|
||||
- name: Install apt packages for docker
|
||||
ansible.builtin.apt:
|
||||
name: "{{ docker_apt_packages }}"
|
||||
state: "{{ docker_state }}"
|
29
roles/docker/tasks/main.yml
Normal file
29
roles/docker/tasks/main.yml
Normal file
@ -0,0 +1,29 @@
|
||||
---
|
||||
- name: Check if target OS is supported
|
||||
ansible.builtin.fail:
|
||||
msg: >-2
|
||||
OS Family '{{ docker_os_family }}' is not supported!
|
||||
when: docker_os_family not in docker_supported_os_families
|
||||
vars:
|
||||
docker_os_family: "{{ ansible_os_family | lower }}"
|
||||
|
||||
- name: Ensure docker is {{ docker_state }} on {{ ansible_os_family }}-family
|
||||
ansible.builtin.include_tasks:
|
||||
file: "install-{{ ansible_os_family | lower }}.yml"
|
||||
|
||||
- name: Configure docker daemon
|
||||
ansible.builtin.include_tasks:
|
||||
file: "configure.yml"
|
||||
when: docker_state == 'present'
|
||||
|
||||
- name: Ensure docker daemon is {{ docker_systemd_service_enabled | ternary('enabled', 'disabled') }}
|
||||
ansible.builtin.systemd_service:
|
||||
name: "{{ docker_systemd_service_name }}"
|
||||
enabled: "{{ docker_systemd_service_enabled }}"
|
||||
when: ansible_facts['service_mgr'] == 'systemd'
|
||||
|
||||
- name: Ensure docker daemon is {{ docker_systemd_service_state }}
|
||||
ansible.builtin.systemd_service:
|
||||
name: "{{ docker_systemd_service_name }}"
|
||||
state: "{{ docker_systemd_service_state }}"
|
||||
when: ansible_facts['service_mgr'] == 'systemd'
|
Reference in New Issue
Block a user