updated docke-image-mirror to image-proxy
This commit is contained in:
65
playbooks/managed-mailcow/use-docker-image-proxy.yaml
Normal file
65
playbooks/managed-mailcow/use-docker-image-proxy.yaml
Normal file
@@ -0,0 +1,65 @@
|
||||
---
|
||||
- name: Update Docker Daemon configuration and apply proxy settings
|
||||
hosts: all
|
||||
become: yes
|
||||
tasks:
|
||||
- name: Read current Docker daemon.json
|
||||
ansible.builtin.slurp:
|
||||
src: /etc/docker/daemon.json
|
||||
register: current_daemon_json
|
||||
|
||||
- name: Parse current Docker daemon.json
|
||||
set_fact:
|
||||
current_daemon_config: "{{ current_daemon_json['content'] | b64decode | from_json }}"
|
||||
|
||||
- name: Remove registry-mirrors if set
|
||||
ansible.builtin.copy:
|
||||
dest: /etc/docker/daemon.json
|
||||
content: "{{ updated_daemon_json | to_nice_json }}"
|
||||
vars:
|
||||
updated_daemon_json: "{{ current_daemon_config | dict2items | rejectattr('key', 'equalto', 'registry-mirrors') | list | items2dict }}"
|
||||
when: "'registry-mirrors' in current_daemon_config"
|
||||
register: daemon_update
|
||||
|
||||
- name: Ensure /usr/local/share/ca-certificates directory exists
|
||||
ansible.builtin.file:
|
||||
path: /usr/local/share/ca-certificates
|
||||
state: directory
|
||||
mode: '0755'
|
||||
|
||||
- name: Download CA certificate from SCOW-DIM
|
||||
ansible.builtin.get_url:
|
||||
url: http://[2a07:6fc0:c:2809::20]:3128/ca.crt
|
||||
dest: /usr/local/share/ca-certificates/SCOW-DIM-CA.crt
|
||||
mode: '0644'
|
||||
|
||||
- name: Update CA certificates
|
||||
ansible.builtin.command: update-ca-certificates
|
||||
changed_when: false
|
||||
|
||||
- name: Ensure systemd service directory exists for Docker
|
||||
ansible.builtin.file:
|
||||
path: /etc/systemd/system/docker.service.d
|
||||
state: directory
|
||||
mode: '0755'
|
||||
|
||||
- name: Configure Docker to use HTTP proxy
|
||||
ansible.builtin.copy:
|
||||
dest: /etc/systemd/system/docker.service.d/http-proxy.conf
|
||||
content: |
|
||||
[Service]
|
||||
Environment="HTTP_PROXY=http://dim.servercow.com:3128/"
|
||||
Environment="HTTPS_PROXY=http://dim.servercow.com:3128/"
|
||||
mode: '0644'
|
||||
register: proxy_update
|
||||
|
||||
- name: Reload systemd daemon
|
||||
ansible.builtin.systemd:
|
||||
daemon_reload: yes
|
||||
when: proxy_update.changed or daemon_update.changed
|
||||
|
||||
- name: Restart Docker to apply changes
|
||||
ansible.builtin.systemd:
|
||||
name: docker
|
||||
state: restarted
|
||||
when: proxy_update.changed or daemon_update.changed
|
||||
@@ -1,35 +0,0 @@
|
||||
---
|
||||
- name: Update Docker Daemon configuration to use Docker Mirror
|
||||
hosts: all
|
||||
become: yes
|
||||
tasks:
|
||||
- name: Read current Docker daemon.json
|
||||
ansible.builtin.slurp:
|
||||
src: /etc/docker/daemon.json
|
||||
register: current_daemon_json
|
||||
|
||||
- name: Parse current Docker daemon.json
|
||||
set_fact:
|
||||
current_daemon_config: "{{ current_daemon_json['content'] | b64decode | from_json }}"
|
||||
|
||||
- name: Check current registry-mirrors setting
|
||||
set_fact:
|
||||
registry_mirrors_current: "{{ current_daemon_config['registry-mirrors'] | default('not_set') }}"
|
||||
|
||||
- name: Update Docker daemon.json with registry-mirrors configuration if registry-mirrors not set or not equals
|
||||
ansible.builtin.copy:
|
||||
dest: /etc/docker/daemon.json
|
||||
content: "{{ updated_daemon_json | to_nice_json }}"
|
||||
vars:
|
||||
registry_config: {
|
||||
"registry-mirrors": ["https://dim.servercow.com"]
|
||||
}
|
||||
updated_daemon_json: "{{ current_daemon_config | combine(registry_config) }}"
|
||||
when: registry_mirrors_current != 'https://dim.servercow.com' or log is undefined
|
||||
register: daemon_update
|
||||
|
||||
- name: Restart Docker to apply changes
|
||||
ansible.builtin.systemd:
|
||||
name: docker
|
||||
state: restarted
|
||||
when: daemon_update.changed
|
||||
Reference in New Issue
Block a user