Stop using handlers
With the switch to tripleo_free in stable/train, we can no longer reliably use handlers. That being said, handlers don't make sense when you are forcing them to run with a flush handlers anyway. So this change takes the code we used in the handler and makes them explicit tasks in the required locations where we used to do a flush handlers. This change should also improve the scope of some tasks to only occur when necessary. Change-Id: I1e31af24a4c1b9356a5971c6c1cb717d39d1e9b2 Closes-Bug: #1909750
This commit is contained in:
parent
a0a314ade3
commit
dc3a577652
|
@ -7,6 +7,7 @@
|
||||||
name: docker-distribution
|
name: docker-distribution
|
||||||
state: present
|
state: present
|
||||||
become: true
|
become: true
|
||||||
|
register: _distro_install
|
||||||
|
|
||||||
- name: manage /etc/docker-distribution/registry/config.yml
|
- name: manage /etc/docker-distribution/registry/config.yml
|
||||||
template:
|
template:
|
||||||
|
@ -14,14 +15,31 @@
|
||||||
dest: /etc/docker-distribution/registry/config.yml
|
dest: /etc/docker-distribution/registry/config.yml
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
become: true
|
become: true
|
||||||
|
register: _distro_config
|
||||||
notify: restart docker-distribution service
|
notify: restart docker-distribution service
|
||||||
|
|
||||||
- name: force systemd to reread configs
|
- name: Handle docker-distribution restart
|
||||||
meta: flush_handlers
|
|
||||||
|
|
||||||
- name: enable and start docker-distribution
|
|
||||||
systemd:
|
|
||||||
enabled: true
|
|
||||||
state: started
|
|
||||||
name: docker-distribution
|
|
||||||
become: true
|
become: true
|
||||||
|
when: _distro_install is changed or _distro_config is changed
|
||||||
|
block:
|
||||||
|
- name: Reload systemd
|
||||||
|
systemd:
|
||||||
|
daemon_reload: yes
|
||||||
|
become: true
|
||||||
|
- name: Reload docker-distribution
|
||||||
|
service:
|
||||||
|
enabled: true
|
||||||
|
name: docker-distribution
|
||||||
|
state: restarted
|
||||||
|
become: true
|
||||||
|
# NOTE(bogdando): import caveats https://github.com/ansible/ansible/issues/42621
|
||||||
|
- name: Wait for registry
|
||||||
|
uri:
|
||||||
|
# Just checking API version should be fine
|
||||||
|
# https://docs.docker.com/registry/spec/api/#api-version-check
|
||||||
|
url: "http://{{ container_registry_host }}:{{ container_registry_port }}/v2/"
|
||||||
|
return_content: yes
|
||||||
|
register: registry_status
|
||||||
|
retries: 10
|
||||||
|
delay: 5
|
||||||
|
until: "registry_status.status|int == 200 and 'OK' in registry_status.msg"
|
||||||
|
|
|
@ -69,7 +69,7 @@
|
||||||
value: ""
|
value: ""
|
||||||
create: yes
|
create: yes
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
notify: restart docker service
|
register: _cfg_flags
|
||||||
when: ansible_service_mgr == 'systemd'
|
when: ansible_service_mgr == 'systemd'
|
||||||
|
|
||||||
- name: configure OPTIONS in /etc/sysconfig/docker
|
- name: configure OPTIONS in /etc/sysconfig/docker
|
||||||
|
@ -79,7 +79,7 @@
|
||||||
line: "OPTIONS='{{ _full_docker_options }}'"
|
line: "OPTIONS='{{ _full_docker_options }}'"
|
||||||
create: yes
|
create: yes
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
notify: restart docker service
|
register: _cfg_options
|
||||||
|
|
||||||
- name: configure INSECURE_REGISTRY in /etc/sysconfig/docker
|
- name: configure INSECURE_REGISTRY in /etc/sysconfig/docker
|
||||||
lineinfile:
|
lineinfile:
|
||||||
|
@ -88,7 +88,7 @@
|
||||||
line: "INSECURE_REGISTRY='{{ registry_flags }}'"
|
line: "INSECURE_REGISTRY='{{ registry_flags }}'"
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
when: container_registry_insecure_registries | length > 0
|
when: container_registry_insecure_registries | length > 0
|
||||||
notify: restart docker service
|
register: _cfg_insecure
|
||||||
vars:
|
vars:
|
||||||
registry_flags: --insecure-registry {{ container_registry_insecure_registries | join(' --insecure-registry ') }}
|
registry_flags: --insecure-registry {{ container_registry_insecure_registries | join(' --insecure-registry ') }}
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@
|
||||||
path: "{{ item | dirname }}"
|
path: "{{ item | dirname }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: '0755'
|
mode: '0755'
|
||||||
notify: restart docker service
|
register: _cfg_sockets
|
||||||
with_items: "{{ container_registry_additional_sockets }}"
|
with_items: "{{ container_registry_additional_sockets }}"
|
||||||
when: container_registry_additional_sockets | length > 0
|
when: container_registry_additional_sockets | length > 0
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@
|
||||||
src: docker-daemon.json.j2
|
src: docker-daemon.json.j2
|
||||||
dest: /etc/docker/daemon.json
|
dest: /etc/docker/daemon.json
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
notify: restart docker service
|
register: _cfg_daemon
|
||||||
|
|
||||||
- name: configure DOCKER_STORAGE_OPTIONS in /etc/sysconfig/docker-storage
|
- name: configure DOCKER_STORAGE_OPTIONS in /etc/sysconfig/docker-storage
|
||||||
lineinfile:
|
lineinfile:
|
||||||
|
@ -116,7 +116,7 @@
|
||||||
create: yes
|
create: yes
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
when: container_registry_storage_options | length > 0
|
when: container_registry_storage_options | length > 0
|
||||||
notify: restart docker service
|
register: _cfg_storage
|
||||||
|
|
||||||
- name: configure DOCKER_NETWORK_OPTIONS in /etc/sysconfig/docker-network
|
- name: configure DOCKER_NETWORK_OPTIONS in /etc/sysconfig/docker-network
|
||||||
lineinfile:
|
lineinfile:
|
||||||
|
@ -126,33 +126,63 @@
|
||||||
create: yes
|
create: yes
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
when: container_registry_network_options | length > 0
|
when: container_registry_network_options | length > 0
|
||||||
notify: restart docker service
|
register: _cfg_network
|
||||||
|
|
||||||
- name: ensure docker group exists
|
- name: ensure docker group exists
|
||||||
group:
|
group:
|
||||||
name: docker
|
name: docker
|
||||||
state: present
|
state: present
|
||||||
|
register: _cfg_group
|
||||||
|
|
||||||
- name: add deployment user to docker group
|
- name: add deployment user to docker group
|
||||||
user:
|
user:
|
||||||
name: "{{ container_registry_deployment_user }}"
|
name: "{{ container_registry_deployment_user }}"
|
||||||
groups: docker
|
groups: docker
|
||||||
append: yes
|
append: yes
|
||||||
|
register: _cfg_user
|
||||||
when: container_registry_deployment_user | length > 0
|
when: container_registry_deployment_user | length > 0
|
||||||
|
|
||||||
- name: reset ssh connection to pick up docker group
|
- name: reset ssh connection to pick up docker group
|
||||||
meta: reset_connection
|
meta: reset_connection
|
||||||
when: container_registry_deployment_user | length > 0
|
when: _cfg_group is changed or _cfg_user is changed
|
||||||
|
|
||||||
- name: force systemd to reread configs
|
- name: Handle docker restart
|
||||||
meta: flush_handlers
|
when:
|
||||||
|
- (_cfg_flags is changed
|
||||||
|
or _cfg_options is changed
|
||||||
|
or _cfg_insecure is changed
|
||||||
|
or _cfg_sockets is changed
|
||||||
|
or _cfg_daemon is changed
|
||||||
|
or _cfg_storage is changed
|
||||||
|
or _cfg_network is changed
|
||||||
|
or _cfg_group is changed
|
||||||
|
or _cfg_user is changed)
|
||||||
|
block:
|
||||||
|
- name: Reload systemd
|
||||||
|
systemd:
|
||||||
|
daemon_reload: yes
|
||||||
|
become: true
|
||||||
|
when:
|
||||||
|
- ansible_service_mgr == 'systemd'
|
||||||
|
- _cfg_flags is changed
|
||||||
|
|
||||||
- name: enable and start docker
|
- name: Reload docker
|
||||||
systemd:
|
service:
|
||||||
enabled: true
|
name: docker
|
||||||
state: started
|
enabled: true
|
||||||
name: docker
|
state: restarted
|
||||||
when: ansible_service_mgr == 'systemd'
|
become: true
|
||||||
|
|
||||||
|
- name: Pause while Docker restarts
|
||||||
|
shell: sleep 10
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
|
- name: Wait for docker
|
||||||
|
command: /usr/bin/docker images
|
||||||
|
register: docker_ready
|
||||||
|
retries: 10
|
||||||
|
delay: 5
|
||||||
|
until: docker_ready.rc == 0
|
||||||
|
|
||||||
- name: mark docker configured
|
- name: mark docker configured
|
||||||
lineinfile:
|
lineinfile:
|
||||||
|
|
|
@ -26,4 +26,5 @@
|
||||||
- name: Start Docker daemon
|
- name: Start Docker daemon
|
||||||
service:
|
service:
|
||||||
name: docker
|
name: docker
|
||||||
|
enabled: true
|
||||||
state: started
|
state: started
|
||||||
|
|
Loading…
Reference in New Issue