diff options
author | Bartek Grzybowski <b.grzybowski@partner.samsung.com> | 2019-05-10 09:29:10 +0200 |
---|---|---|
committer | Bartek Grzybowski <b.grzybowski@partner.samsung.com> | 2019-05-15 11:27:26 +0200 |
commit | 25d56e36412b607fa55030072f550e5550b73e8b (patch) | |
tree | b034f4454ba44e031119834ea8f1b13533e5fb3f /ansible | |
parent | e7fd64586455a7c1270c1b1c846c19e030780315 (diff) |
Fix idempotence issue in dns role
Docker_container module was called twice: in a taks
'Start dns server container' and then as a handler
but there was a divergent set o parameters for the
module in them. This had the efect of the container
being started by the means of the task itself but
immediately after it was killed and started again
by the handler because it had different set of
arguments for the module. The fix is to include the
handler itself as a task so the whole run is idempotent.
Change-Id: I9078f9dfe5894d94d4b6a9e44411f034508992e7
Issue-ID: OOM-1845
Signed-off-by: Bartek Grzybowski <b.grzybowski@partner.samsung.com>
Diffstat (limited to 'ansible')
-rw-r--r-- | ansible/roles/dns/handlers/main.yml | 3 | ||||
-rw-r--r-- | ansible/roles/dns/tasks/main.yml | 28 |
2 files changed, 12 insertions, 19 deletions
diff --git a/ansible/roles/dns/handlers/main.yml b/ansible/roles/dns/handlers/main.yml index 9d77893a..9e957474 100644 --- a/ansible/roles/dns/handlers/main.yml +++ b/ansible/roles/dns/handlers/main.yml @@ -1,5 +1,5 @@ --- -- name: Restart dns server container +- name: Run dns server container docker_container: name: dns-server image: "{{ dns_server_image }}" @@ -12,3 +12,4 @@ - "53:53/udp" state: started restart_policy: unless-stopped + recreate: true diff --git a/ansible/roles/dns/tasks/main.yml b/ansible/roles/dns/tasks/main.yml index 3eba9fdb..121ee0c4 100644 --- a/ansible/roles/dns/tasks/main.yml +++ b/ansible/roles/dns/tasks/main.yml @@ -8,7 +8,7 @@ template: src: simulated_hosts.j2 dest: "{{ app_data_path }}/cfg/simulated_hosts" - notify: Restart dns server container + notify: Run dns server container - name: Load dns server container docker_image: @@ -16,21 +16,13 @@ load_path: "{{ infra_images_path }}/{{ dns_server_image_tar }}" state: present timeout: 120 - notify: Restart dns server container + notify: Run dns server container -- name: Start dns server container - docker_container: - name: dns-server - network_mode: host - image: "{{ dns_server_image }}" - command: -H /simulated_hosts --log-facility=- - capabilities: NET_ADMIN - dns_servers: - - 127.0.0.1 - volumes: - - "{{ app_data_path }}/cfg/simulated_hosts:/simulated_hosts:ro" - ports: - - "53:53/tcp" - - "53:53/udp" - state: started - restart_policy: unless-stopped +- name: Enumerate running containers + docker_list_containers: + register: containers_list + +- name: Ensure dns container is running + command: /bin/true + notify: Run dns server container + when: "'dns-server' not in containers_list.containers" |