Browse Source

Update main.yml

Signed-off-by: Shubhangi-dell <shubhangi_srivastava@dell.com>
Shubhangi-dell 3 years ago
parent
commit
66720f8e6e
1 changed files with 220 additions and 217 deletions
  1. 220 217
      control_plane/roles/deploy_job_templates/tasks/main.yml

+ 220 - 217
control_plane/roles/deploy_job_templates/tasks/main.yml

@@ -12,220 +12,223 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 ---
-- name: Check if {{ tower_config_file }} file is encrypted
-  command: cat {{ tower_config_file }}
-  changed_when: false
-  no_log: true
-  register: config_content
-
-- name: Decrpyt {{ tower_config_file }}
-  command: >-
-    ansible-vault decrypt {{ tower_config_file }}
-    --vault-password-file {{ tower_vault_file }}
-  when: "'$ANSIBLE_VAULT;' in config_content.stdout"
-  changed_when: false
-
-- name: Change file permissions
-  file:
-    path: "{{ tower_config_file }}"
-    mode: "{{ file_perm }}"
-
-- name: Fetch awx host
-  command: grep "host:" "{{ tower_config_file }}"
-  changed_when: false
-  register: fetch_awx_host
-
-- name: Fetch awx password
-  command: grep "password:" "{{ tower_config_file }}"
-  changed_when: false
-  no_log: true
-  register: fetch_awx_password
-
-- name: Set awx variables
-  set_fact:
-    awx_host: "{{ fetch_awx_host.stdout | regex_replace('host: ','') }}"
-    awx_password: "{{ fetch_awx_password.stdout | regex_replace('password: ','') }}"
-  no_log: true
-
-- name: Launch dynamic inventory
-  block:
-    - name: Launch device inventory job template
-      awx.awx.tower_job_launch:
-        job_template: "{{ device_inventory_template }}"
-        tower_config_file: "{{ tower_config_file }}"
-        wait: yes
-        timeout: "{{ awx_max_wait_time }}"
-      register: inventory_job_status
-  rescue:
-    - name: Restart awx pod
-      command: kubectl rollout restart deployment awx -n awx
-      changed_when: false
-      when:
-        - inventory_job_status.status is defined
-        - '"pending" in inventory_job_status.status'
-
-    - name: Wait for the awx pod to be up and running
-      wait_for:
-        timeout: "{{ pod_restart_time }}"
-      when:
-        - inventory_job_status.status is defined
-        - '"pending" in inventory_job_status.status'
-
-    - name: Launch device inventory job template
-      awx.awx.tower_job_launch:
-        job_template: "{{ device_inventory_template }}"
-        tower_config_file: "{{ tower_config_file }}"
-        wait: yes
-        timeout: "{{ awx_max_wait_time }}"
-      when:
-        - inventory_job_status.status is defined
-        - '"pending" in inventory_job_status.status'
-
-    - name: Warning message for device inventory template
-      debug:
-        msg: "{{ device_inventory_template_warn_msg }}"
-      when:
-        - inventory_job_status.status is defined
-        - '"pending" not in inventory_job_status.status'
-
-- name: Configure TOR Switches
-  block:
-    - name: Launch ethernet job template for TOR switches
-      awx.awx.tower_job_launch:
-        job_template: "{{ ethernet_job_template }}"
-        tower_config_file: "{{ tower_config_file }}"
-        wait: yes
-        timeout: "{{ awx_max_wait_time }}"
-      register: ethernet_job_status
-  rescue:
-    - name: Warning message for ethernet template
-      debug:
-        msg: "{{ ethernet_template_warn_msg }}"
-  when: ethernet_switch_support
-
-- name: Wait for 15 mins for DHCP to assign IP to devices
-  wait_for:
-    timeout: "{{ dhcp_wait_time }}"
-
-- name: Launch device inventory job template
-  awx.awx.tower_job_launch:
-    job_template: "{{ device_inventory_template }}"
-    tower_config_file: "{{ tower_config_file }}"
-    wait: yes
-    timeout: "{{ awx_max_wait_time }}"
-  register: inventory_job_status
-
-- name: Execute ethernet template
-  block:
-    - name: Launch ethernet job template for all switches
-      awx.awx.tower_job_launch:
-        job_template: "{{ ethernet_job_template }}"
-        tower_config_file: "{{ tower_config_file }}"
-        wait: yes
-        timeout: "{{ awx_max_wait_time }}"
-      register: ethernet_job_status
-  rescue:
-    - name: Warning message for ethernet template
-      debug:
-        msg: "{{ ethernet_template_warn_msg }}"
-  when: ethernet_switch_support
-
-- name: Execute infiniband template
-  block:
-    - name: Launch infiniband job template
-      awx.awx.tower_job_launch:
-        job_template: "{{ infiniband_job_template }}"
-        tower_config_file: "{{ tower_config_file }}"
-        wait: yes
-        timeout: "{{ awx_max_wait_time }}"
-      register: ib_job_status
-  rescue:
-    - name: Warning message for infiniband template
-      debug:
-        msg: "{{ infiniband_template_warn_msg }}"
-  when: ib_switch_support
-
-- name: Execute powervault_me4 template
-  block:
-    - name: Launch powervault_me4 job template
-      awx.awx.tower_job_launch:
-        job_template: "{{ powervault_me4_job_template }}"
-        tower_config_file: "{{ tower_config_file }}"
-        wait: yes
-        timeout: "{{ awx_max_wait_time }}"
-      register: powervault_job_status
-  rescue:
-    - name: Warning message for powervault_me4 template
-      debug:
-        msg: "{{ powervault_template_warn_msg }}"
-  when: powervault_support
-
-- name: Execute idrac template
-  block:
-    - name: Launch idrac job template
-      awx.awx.tower_job_launch:
-        job_template: "{{ idrac_job_template }}"
-        tower_config_file: "{{ tower_config_file }}"
-        wait: yes
-      register: idrac_job_status
-  rescue:
-    - name: Warning message for idrac template
-      debug:
-        msg: "{{ idrac_template_warn_msg }}"
-
-- name: Wait for 30 mins for idrac provisioning to be completed and inventory to be updated in AWX
-  wait_for:
-    timeout: "{{ provisioning_wait_time }}"
-  when: host_mapping_file
-
-- name: Check the host_mapping_file_path output
-  command: cat {{ host_mapping_file_path }}
-  changed_when: false
-  register: mapping_file
-  when: host_mapping_file
-
-- name: Group the hosts in node_inventory when mapping file is present
-  include_tasks: "{{ role_path }}/tasks/group_inventory.yml"
-  when: host_mapping_file and component_role_support
-
-- name: Launch deploy_omnia job template
-  awx.awx.tower_job_launch:
-    job_template: "{{ component_role_job_template }}"
-    tower_config_file: "{{ tower_config_file }}"
-    wait: yes
-  register: component_role_job_status
-  when: host_mapping_file and component_role_support
-
-- name: Create awx job template for configuring new devices
-  awx.awx.tower_job_template:
-    name: "{{ item.name }}"
-    job_type: "run"
-    organization: "{{ awx_organization }}"
-    inventory: "{{ item.inventory }}"
-    project: "{{ project_name }}"
-    playbook: "{{ item.playbook }}"
-    credentials:
-     - "{{ item.credential }}"
-    state: present
-    tower_config_file: "{{ tower_config_file }}"
-  loop: "{{ job_template_details }}"
-
-- name: Build a schedule for configure new devices
-  awx.awx.tower_schedule:
-    name: "{{ item.name }}"
-    unified_job_template: "{{ item.template }}"
-    rrule: "{{ item.rrule }}"
-    state: present
-    tower_config_file: "{{ tower_config_file }}"
-  loop: "{{ scheduled_template }}"
-
-- name: Encrypt {{ tower_config_file }}
-  command: >-
-    ansible-vault encrypt {{ tower_config_file }}
-    --vault-password-file {{ tower_vault_file }}
-  changed_when: false
-
-- name: Change file permissions
-  file:
-    path: "{{ tower_config_file }}"
-    mode: "{{ file_perm }}"
+- block:
+  - name: Check if {{ tower_config_file }} file is encrypted
+    command: cat {{ tower_config_file }}
+    changed_when: false
+    no_log: true
+    register: config_content
+
+  - name: Decrpyt {{ tower_config_file }}
+    command: >-
+      ansible-vault decrypt {{ tower_config_file }}
+      --vault-password-file {{ tower_vault_file }}
+    when: "'$ANSIBLE_VAULT;' in config_content.stdout"
+    changed_when: false
+
+  - name: Change file permissions
+    file:
+      path: "{{ tower_config_file }}"
+      mode: "{{ file_perm }}"
+
+  - name: Fetch awx host
+    command: grep "host:" "{{ tower_config_file }}"
+    changed_when: false
+    register: fetch_awx_host
+
+  - name: Fetch awx password
+    command: grep "password:" "{{ tower_config_file }}"
+    changed_when: false
+    no_log: true
+    register: fetch_awx_password
+
+  - name: Set awx variables
+    set_fact:
+      awx_host: "{{ fetch_awx_host.stdout | regex_replace('host: ','') }}"
+      awx_password: "{{ fetch_awx_password.stdout | regex_replace('password: ','') }}"
+    no_log: true
+
+  - name: Launch dynamic inventory
+    block:
+      - name: Launch device inventory job template
+        awx.awx.tower_job_launch:
+          job_template: "{{ device_inventory_template }}"
+          tower_config_file: "{{ tower_config_file }}"
+          wait: yes
+          timeout: "{{ awx_max_wait_time }}"
+        register: inventory_job_status
+    rescue:
+      - name: Restart awx pod
+        command: kubectl rollout restart deployment awx -n awx
+        changed_when: false
+        when:
+          - inventory_job_status.status is defined
+          - '"pending" in inventory_job_status.status'
+
+      - name: Wait for the awx pod to be up and running
+        wait_for:
+          timeout: "{{ pod_restart_time }}"
+        when:
+          - inventory_job_status.status is defined
+          - '"pending" in inventory_job_status.status'
+
+      - name: Launch device inventory job template
+        awx.awx.tower_job_launch:
+          job_template: "{{ device_inventory_template }}"
+          tower_config_file: "{{ tower_config_file }}"
+          wait: yes
+          timeout: "{{ awx_max_wait_time }}"
+        when:
+          - inventory_job_status.status is defined
+          - '"pending" in inventory_job_status.status'
+
+      - name: Warning message for device inventory template
+        debug:
+          msg: "{{ device_inventory_template_warn_msg }}"
+        when:
+          - inventory_job_status.status is defined
+          - '"pending" not in inventory_job_status.status'
+
+  - name: Configure TOR Switches
+    block:
+      - name: Launch ethernet job template for TOR switches
+        awx.awx.tower_job_launch:
+          job_template: "{{ ethernet_job_template }}"
+          tower_config_file: "{{ tower_config_file }}"
+          wait: yes
+          timeout: "{{ awx_max_wait_time }}"
+        register: ethernet_job_status
+    rescue:
+      - name: Warning message for ethernet template
+        debug:
+          msg: "{{ ethernet_template_warn_msg }}"
+    when: ethernet_switch_support
+
+  - name: Wait for 15 mins for DHCP to assign IP to devices
+    wait_for:
+      timeout: "{{ dhcp_wait_time }}"
+    when: device_config_support
+
+  - name: Launch device inventory job template
+    awx.awx.tower_job_launch:
+      job_template: "{{ device_inventory_template }}"
+      tower_config_file: "{{ tower_config_file }}"
+      wait: yes
+      timeout: "{{ awx_max_wait_time }}"
+    register: inventory_job_status
+
+  - name: Execute ethernet template
+    block:
+      - name: Launch ethernet job template for all switches
+        awx.awx.tower_job_launch:
+          job_template: "{{ ethernet_job_template }}"
+          tower_config_file: "{{ tower_config_file }}"
+          wait: yes
+          timeout: "{{ awx_max_wait_time }}"
+        register: ethernet_job_status
+    rescue:
+      - name: Warning message for ethernet template
+        debug:
+          msg: "{{ ethernet_template_warn_msg }}"
+    when: ethernet_switch_support
+
+  - name: Execute infiniband template
+    block:
+      - name: Launch infiniband job template
+        awx.awx.tower_job_launch:
+          job_template: "{{ infiniband_job_template }}"
+          tower_config_file: "{{ tower_config_file }}"
+          wait: yes
+          timeout: "{{ awx_max_wait_time }}"
+        register: ib_job_status
+    rescue:
+      - name: Warning message for infiniband template
+        debug:
+          msg: "{{ infiniband_template_warn_msg }}"
+    when: ib_switch_support
+
+  - name: Execute powervault_me4 template
+    block:
+      - name: Launch powervault_me4 job template
+        awx.awx.tower_job_launch:
+          job_template: "{{ powervault_me4_job_template }}"
+          tower_config_file: "{{ tower_config_file }}"
+          wait: yes
+          timeout: "{{ awx_max_wait_time }}"
+        register: powervault_job_status
+    rescue:
+      - name: Warning message for powervault_me4 template
+        debug:
+          msg: "{{ powervault_template_warn_msg }}"
+    when: powervault_support
+
+  - name: Execute idrac template
+    block:
+      - name: Launch idrac job template
+        awx.awx.tower_job_launch:
+          job_template: "{{ idrac_job_template }}"
+          tower_config_file: "{{ tower_config_file }}"
+          wait: yes
+        register: idrac_job_status
+    rescue:
+      - name: Warning message for idrac template
+        debug:
+          msg: "{{ idrac_template_warn_msg }}"
+
+  - name: Wait for 30 mins for idrac provisioning to be completed and inventory to be updated in AWX
+    wait_for:
+      timeout: "{{ provisioning_wait_time }}"
+    when: host_mapping_file
+
+  - name: Check the host_mapping_file_path output
+    command: cat {{ host_mapping_file_path }}
+    changed_when: false
+    register: mapping_file
+    when: host_mapping_file
+
+  - name: Group the hosts in node_inventory when mapping file is present
+    include_tasks: "{{ role_path }}/tasks/group_inventory.yml"
+    when: host_mapping_file and component_role_support
+
+  - name: Launch deploy_omnia job template
+    awx.awx.tower_job_launch:
+      job_template: "{{ component_role_job_template }}"
+      tower_config_file: "{{ tower_config_file }}"
+      wait: yes
+    register: component_role_job_status
+    when: host_mapping_file and component_role_support
+
+  - name: Create awx job template for configuring new devices
+    awx.awx.tower_job_template:
+      name: "{{ item.name }}"
+      job_type: "run"
+      organization: "{{ awx_organization }}"
+      inventory: "{{ item.inventory }}"
+      project: "{{ project_name }}"
+      playbook: "{{ item.playbook }}"
+      credentials:
+       - "{{ item.credential }}"
+      state: present
+      tower_config_file: "{{ tower_config_file }}"
+    loop: "{{ job_template_details }}"
+
+  - name: Build a schedule for configure new devices
+    awx.awx.tower_schedule:
+      name: "{{ item.name }}"
+      unified_job_template: "{{ item.template }}"
+      rrule: "{{ item.rrule }}"
+      state: present
+      tower_config_file: "{{ tower_config_file }}"
+    loop: "{{ scheduled_template }}"
+
+  - name: Encrypt {{ tower_config_file }}
+    command: >-
+      ansible-vault encrypt {{ tower_config_file }}
+      --vault-password-file {{ tower_vault_file }}
+    changed_when: false
+
+  - name: Change file permissions
+    file:
+      path: "{{ tower_config_file }}"
+      mode: "{{ file_perm }}"
+  when : device_support_status