]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
ceph-dashboard: Add run_once on delegate tasks
authorDimitri Savineau <dsavinea@redhat.com>
Fri, 2 Aug 2019 14:58:11 +0000 (10:58 -0400)
committerGuillaume Abrioux <gabrioux@redhat.com>
Tue, 6 Aug 2019 07:34:20 +0000 (09:34 +0200)
Because we need to execute commands from a monitor node (the first one
in the mons list) we are using delegate_to option.
If there's multiple nodes running the ceph-dashboard role then the
delegated task will be executed multiple times.
Also remove a mgr config-key option not present for nautilus+ releases.

Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
roles/ceph-dashboard/tasks/configure_dashboard.yml

index 445b8d0150cf14aef1a50dac8330b4b7d35997d3..d5a112a2fcafdcd16ed51cc45804303cdadb0605 100644 (file)
@@ -7,11 +7,13 @@
 - name: disable SSL for dashboard
   command: "{{ container_exec_cmd }} ceph config set mgr mgr/dashboard/ssl false"
   delegate_to: "{{ groups[mon_group_name][0] }}"
+  run_once: true
   when: dashboard_protocol == "http"
 
 - name: enable SSL for dashboard
   command: "{{ container_exec_cmd }} ceph config set mgr mgr/dashboard/ssl true"
   delegate_to: "{{ groups[mon_group_name][0] }}"
+  run_once: true
   when: dashboard_protocol == "https"
 
 - name: copy dashboard SSL certificate file
   command: "{{ container_exec_cmd }} ceph config-key set mgr/dashboard/crt -i /etc/ceph/ceph-dashboard.crt"
   changed_when: false
   delegate_to: "{{ groups[mon_group_name][0] }}"
+  run_once: true
   when: dashboard_protocol == "https"
 
 - name: import dashboard certificate key
   command: "{{ container_exec_cmd }} ceph config-key set mgr/dashboard/key -i /etc/ceph/ceph-dashboard.key"
   changed_when: false
   delegate_to: "{{ groups[mon_group_name][0] }}"
+  run_once: true
   when: dashboard_protocol == "https"
 
 - name: "set the dashboard port ({{ dashboard_port }})"
-  shell: |
-    {{ container_exec_cmd }} ceph config set mgr mgr/dashboard/server_port {{ dashboard_port }} || \
-    {{ container_exec_cmd }} ceph config-key set mgr/dashboard/server_port {{ dashboard_port }}
+  command: "{{ container_exec_cmd }} ceph config set mgr mgr/dashboard/server_port {{ dashboard_port }}"
   delegate_to: "{{ groups[mon_group_name][0] }}"
+  run_once: true
 
 - name: "set the dashboard SSL port ({{ dashboard_port }})"
-  command: "{{ container_exec_cmd }} ceph config set mgr mgr/dashboard/ssl_server_port {{ dashboard_port }}" # Do not use the old fashioned config-key way ssl_server_port, it was not supported when this option was introduced
+  command: "{{ container_exec_cmd }} ceph config set mgr mgr/dashboard/ssl_server_port {{ dashboard_port }}"
   delegate_to: "{{ groups[mon_group_name][0] }}"
-  failed_when: false # Do not fail if the option does not exist, it only exists post-14.2.0
+  run_once: true
 
 - name: disable mgr dashboard module (restart)
   command: "{{ container_exec_cmd }} ceph mgr module disable dashboard"
   delegate_to: "{{ groups[mon_group_name][0] }}"
+  run_once: true
   changed_when: false
 
 - name: enable mgr dashboard module (restart)
   command: "{{ container_exec_cmd }} ceph mgr module enable dashboard"
   delegate_to: "{{ groups[mon_group_name][0] }}"
+  run_once: true
   changed_when: false
 
 - name: set or update dashboard admin username and password
   delay: 5
   register: ac_result
   delegate_to: "{{ groups[mon_group_name][0] }}"
+  run_once: true
   until: ac_result.rc == 0
 
 - name: set grafana url
   command: "{{ container_exec_cmd }} ceph dashboard set-grafana-api-url {{ dashboard_protocol }}://{{ dashboard_url }}:{{ grafana_port }}/"
   delegate_to: "{{ groups[mon_group_name][0] }}"
+  run_once: true
   changed_when: false
 
 - name: set alertmanager host
   command: "{{ container_exec_cmd }} ceph dashboard set-alertmanager-api-host {{ dashboard_protocol }}://{{ dashboard_url }}:{{ alertmanager_port }}/"
   delegate_to: "{{ groups[mon_group_name][0] }}"
+  run_once: true
   changed_when: false
 
 - name: dashboard object gateway management frontend
       until: rgw_user_output.rc == 0
       retries: 3
       delegate_to: "{{ groups[mon_group_name][0] }}"
+      run_once: true
 
     - name: get the rgw access and secret keys
       set_fact:
     - name: set the rgw user
       command: "{{ container_exec_cmd }} ceph dashboard set-rgw-api-user-id {{ dashboard_rgw_api_user_id }}"
       delegate_to: "{{ groups[mon_group_name][0] }}"
+      run_once: true
       changed_when: false
 
     - name: set the rgw access key
       command: "{{ container_exec_cmd }} ceph dashboard set-rgw-api-access-key {{ rgw_access_key }}"
       delegate_to: "{{ groups[mon_group_name][0] }}"
+      run_once: true
       changed_when: false
 
     - name: set the rgw secret key
       command: "{{ container_exec_cmd }} ceph dashboard set-rgw-api-secret-key {{ rgw_secret_key }}"
       delegate_to: "{{ groups[mon_group_name][0] }}"
+      run_once: true
       changed_when: false
 
     - name: set the rgw host
       command: "{{ container_exec_cmd }} ceph dashboard set-rgw-api-host {{ dashboard_rgw_api_host }}"
       changed_when: false
       delegate_to: "{{ groups[mon_group_name][0] }}"
+      run_once: true
       when: dashboard_rgw_api_host != ''
 
     - name: set the rgw port
       command: "{{ container_exec_cmd }} ceph dashboard set-rgw-api-port {{ dashboard_rgw_api_port }}"
       changed_when: false
       delegate_to: "{{ groups[mon_group_name][0] }}"
+      run_once: true
       when: dashboard_rgw_api_port != ''
 
     - name: set the rgw scheme
       command: "{{ container_exec_cmd }} ceph dashboard set-rgw-api-scheme {{ dashboard_rgw_api_scheme }}"
       changed_when: false
       delegate_to: "{{ groups[mon_group_name][0] }}"
+      run_once: true
       when: dashboard_rgw_api_scheme != ''
 
     - name: set the rgw admin resource
       command: "{{ container_exec_cmd }} ceph dashboard set-rgw-api-admin-resource {{ dashboard_rgw_api_admin_resource }}"
       changed_when: false
       delegate_to: "{{ groups[mon_group_name][0] }}"
+      run_once: true
       when: dashboard_rgw_api_admin_resource != ''
 
     - name: disable ssl verification for rgw
       command: "{{ container_exec_cmd }} ceph dashboard set-rgw-api-ssl-verify False"
       changed_when: false
       delegate_to: "{{ groups[mon_group_name][0] }}"
+      run_once: true
       when: dashboard_rgw_api_no_ssl_verify | bool
 
 - name: disable mgr dashboard module (restart)
   command: "{{ container_exec_cmd }} ceph mgr module disable dashboard"
   changed_when: false
   delegate_to: "{{ groups[mon_group_name][0] }}"
+  run_once: true
 
 - name: enable mgr dashboard module (restart)
   command: "{{ container_exec_cmd }} ceph mgr module enable dashboard"
   changed_when: false
   delegate_to: "{{ groups[mon_group_name][0] }}"
+  run_once: true