diff --git a/handlers/main.yml b/handlers/main.yml index 7847bc1..f86af20 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -1,3 +1,9 @@ --- - name: restart docker - service: "name=docker state={{ docker_restart_handler_state }}" + service: + name: docker + state: "{{ docker_restart_handler_state }}" + +- name: reload systemd daemon + systemd: + daemon_reload: true diff --git a/tasks/main.yml b/tasks/main.yml index f248279..7dd11aa 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,4 +1,5 @@ --- + - include_tasks: setup-RedHat.yml when: ansible_os_family == 'RedHat' @@ -15,6 +16,8 @@ - import_tasks: docker-1809-shim.yml when: ansible_service_mgr == 'systemd' +- import_tasks: proxies.yml + - name: Ensure Docker is started and enabled at boot. service: name: docker diff --git a/tasks/proxies.yml b/tasks/proxies.yml new file mode 100644 index 0000000..cdebecb --- /dev/null +++ b/tasks/proxies.yml @@ -0,0 +1,24 @@ +--- + +- name: Add proxies into systemd environment + when: + - ansible_service_mgr == 'systemd' + - >- + ansible_env['http_proxy'] is defined or + ansible_env['HTTP_PROXY'] is defined or + ansible_env['https_proxy'] is defined or + ansible_env['HTTPS_PROXY'] is defined + block: + - name: Establish docker service config dir + file: + dest: /etc/systemd/system/docker.service.d/ + state: directory + recurse: true + + - name: Establish docker proxy config + template: + src: proxies.conf.j2 + dest: /etc/systemd/system/docker.service.d/proxies.conf + notify: + - reload systemd daemon + - restart docker diff --git a/tasks/setup-Debian.yml b/tasks/setup-Debian.yml index 88580b3..3053f14 100644 --- a/tasks/setup-Debian.yml +++ b/tasks/setup-Debian.yml @@ -28,7 +28,8 @@ when: add_repository_key is failed - name: Add Docker apt key (alternative for older systems without SNI). - shell: sudo apt-key add /tmp/docker-repo-key + become: true + command: apt-key add /tmp/docker-repo-key args: warn: false when: add_repository_key is failed diff --git a/templates/proxies.conf.j2 b/templates/proxies.conf.j2 new file mode 100644 index 0000000..376529e --- /dev/null +++ b/templates/proxies.conf.j2 @@ -0,0 +1,10 @@ +# {{ ansible_managed }} + +[Service] +{% for proxy in ['http_proxy', 'https_proxy'] -%} +{% if proxy in ansible_env %} +{{- 'Environment= "%s=%s"\n' | format(proxy | upper, ansible_env[proxy]) -}} +{% elif proxy | upper in ansible_env %} +{{- 'Environment= "%s=%s"\n' | format(proxy | upper, ansible_env[proxy | upper]) -}} +{%- endif -%} +{%- endfor -%}