mirror of
https://github.com/geerlingguy/ansible-role-docker.git
synced 2025-10-06 11:14:53 +02:00
Merge 8278f01d06
into 8ff4a24147
This commit is contained in:
commit
364c77fe71
@ -7,6 +7,7 @@ docker_packages:
|
|||||||
- "docker-{{ docker_edition }}-rootless-extras"
|
- "docker-{{ docker_edition }}-rootless-extras"
|
||||||
- "containerd.io"
|
- "containerd.io"
|
||||||
docker_packages_state: present
|
docker_packages_state: present
|
||||||
|
docker_rootless: false
|
||||||
|
|
||||||
# Service options.
|
# Service options.
|
||||||
docker_service_manage: true
|
docker_service_manage: true
|
||||||
|
60
tasks/docker-rootless.yml
Normal file
60
tasks/docker-rootless.yml
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
---
|
||||||
|
- name: Ensure dockerd-rootless-setup.sh is installed
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- uidmap
|
||||||
|
- docker-ce-rootless-extras
|
||||||
|
state: present
|
||||||
|
when: ansible_distribution != "CentOS"
|
||||||
|
|
||||||
|
- name: Ensure dockerd-rootless-setup.sh is installed
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- shadow-utils
|
||||||
|
- docker-ce-rootless-extras
|
||||||
|
state: present
|
||||||
|
when: ansible_distribution == "CentOS"
|
||||||
|
|
||||||
|
- name: Stop any running root instances of docker daemon
|
||||||
|
service:
|
||||||
|
name: docker.service
|
||||||
|
state: stopped
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
- name: Close root docker socket
|
||||||
|
service:
|
||||||
|
name: docker.socket
|
||||||
|
state: stopped
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
- name: Remove docker.sock file
|
||||||
|
file:
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: Modprobe ip_tables
|
||||||
|
modprobe:
|
||||||
|
name: ip_tables
|
||||||
|
|
||||||
|
- name: Install rootless docker
|
||||||
|
become: false
|
||||||
|
command: /usr/bin/dockerd-rootless-setuptool.sh install
|
||||||
|
when: rootless_conf.stat.exists == false
|
||||||
|
|
||||||
|
- name: Enable and start rootless docker
|
||||||
|
become: false
|
||||||
|
systemd:
|
||||||
|
name: docker.service
|
||||||
|
state: "{{ docker_service_state }}"
|
||||||
|
enabled: "{{ docker_service_enabled }}"
|
||||||
|
scope: user
|
||||||
|
ignore_errors: "{{ ansible_check_mode }}"
|
||||||
|
|
||||||
|
- name: Decouple rootless docker from user session
|
||||||
|
command: "loginctl enable-linger {{ ansible_user }}"
|
||||||
|
|
||||||
|
- name: Add DOCKER_HOST to systemwide environment file
|
||||||
|
lineinfile:
|
||||||
|
path: /etc/environment
|
||||||
|
insertafter: EOF
|
||||||
|
line: "DOCKER_HOST=unix://{{ lookup('env', 'XDG_RUNTIME_DIR') }}/docker.sock"
|
@ -65,13 +65,34 @@
|
|||||||
when: docker_daemon_options.keys() | length > 0
|
when: docker_daemon_options.keys() | length > 0
|
||||||
notify: restart docker
|
notify: restart docker
|
||||||
|
|
||||||
- name: Ensure Docker is started and enabled at boot.
|
- name: Stat for rootless docker
|
||||||
|
stat:
|
||||||
|
path: "{{ lookup('env', 'XDG_RUNTIME_DIR') }}/docker.sock"
|
||||||
|
register: rootless_conf
|
||||||
|
|
||||||
|
- name: Uninstall rootless docker
|
||||||
|
become: false
|
||||||
|
command: /usr/bin/dockerd-rootless-setuptool.sh uninstall --force
|
||||||
|
when: docker_rootless == false and rootless_conf.stat.exists
|
||||||
|
|
||||||
|
- name: Reset DOCKER_HOST environment
|
||||||
|
lineinfile:
|
||||||
|
path: /etc/environment
|
||||||
|
state: absent
|
||||||
|
regexp: '^DOCKER_HOST=unix:///run/user/.*/docker.sock$'
|
||||||
|
when: docker_rootless == false and rootless_conf.stat.exists
|
||||||
|
|
||||||
|
- name: Ensure Docker is started and enabled at boot
|
||||||
service:
|
service:
|
||||||
name: docker
|
name: docker
|
||||||
state: "{{ docker_service_state }}"
|
state: "{{ docker_service_state }}"
|
||||||
enabled: "{{ docker_service_enabled }}"
|
enabled: "{{ docker_service_enabled }}"
|
||||||
ignore_errors: "{{ ansible_check_mode }}"
|
ignore_errors: "{{ ansible_check_mode }}"
|
||||||
when: docker_service_manage | bool
|
when: docker_service_manage | bool and docker_rootless == false
|
||||||
|
|
||||||
|
- name: Setting up docker daemon as non-root
|
||||||
|
include_tasks: docker-rootless.yml
|
||||||
|
when: docker_rootless == true
|
||||||
|
|
||||||
- name: Ensure handlers are notified now to avoid firewall conflicts.
|
- name: Ensure handlers are notified now to avoid firewall conflicts.
|
||||||
meta: flush_handlers
|
meta: flush_handlers
|
||||||
|
Loading…
Reference in New Issue
Block a user