# Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. --- - block: - name: Include idrac vars include_vars: "../input_params/idrac_vars.yml" - name: Export SCP configuration to local file idrac_server_config_profile: idrac_ip: "{{ inventory_hostname }}" idrac_user: "{{ idrac_username }}" idrac_password: "{{ idrac_password }}" share_name: "{{ playbook_dir }}" command: "export" scp_file: "{{ inventory_hostname }}_scp.xml" job_wait: true run_once: true - name: Fetch the SCP configuration command: cat "{{ inventory_hostname }}_scp.xml" register: config_file - name: Testcase to verify the boot mode assert: that: - config_file.stdout | regex_search( bootmode_regex1 ) fail_msg: " {{ bootmode_check_fail_msg }}" success_msg: "{{ bootmode_check_success_msg }}" ignore_errors: true - name: Testcase to verify the SNMP configuration assert: that: - config_file.stdout | regex_search(snmp_regex1) fail_msg: " {{ snmp_check_fail_msg }}" success_msg: "{{ snmp_check_success_msg }}" ignore_errors: true - name: Testcase to verify the system profile value Performance assert: that: - config_file.stdout | regex_search(sysprofile_regex1) fail_msg: " {{ sysprofile_check_fail_msg }}" success_msg: "{{ sysprofile_check_success_msg }}" ignore_errors: true when: idrac_system_profile == sysprofile_value1 - name: Testcase to verify the system profile value PerformancePerWatt(DAPC) assert: that: - config_file.stdout | regex_search(sysprofile_regex2) fail_msg: " {{ sysprofile_check_fail_msg }}" success_msg: "{{ sysprofile_check_success_msg }}" ignore_errors: true when: idrac_system_profile == sysprofile_value2 - name: Testcase to verify the system profile value WorkstationPerformance assert: that: - config_file.stdout | regex_search(sysprofile_regex3) fail_msg: " {{ sysprofile_check_fail_msg }}" success_msg: "{{ sysprofile_check_success_msg }}" ignore_errors: true when: idrac_system_profile == sysprofile_value3 - name: Testcase to verify the system profile value PerformancePerWatt(OS) assert: that: - config_file.stdout | regex_search(sysprofile_regex4) fail_msg: " {{ sysprofile_check_fail_msg }}" success_msg: "{{ sysprofile_check_success_msg }}" ignore_errors: true when: idrac_system_profile == sysprofile_value4 - name: Testcase to verify the pxe device status assert: that: - config_file.stdout | regex_search(pxedevice) fail_msg: " {{ pxedevice_check_fail_msg }}" success_msg: "{{ pxedevice_check_success_msg }}" ignore_errors: true when: not (enterprise_license or datacenter_license) - name: Initialized RAID status set_fact: raid_type: false - name: Get iDRAC info details idrac_system_info: idrac_ip: "{{ inventory_hostname }}" idrac_user: "{{ idrac_username }}" idrac_password: "{{ idrac_password }}" register: idrac_info - name: Set RAID status set_fact: raid_type: true with_items: "{{ idrac_info.system_info.Controller }}" loop_control: index_var: my_idx3 when: '"RAID" in idrac_info.system_info.ControllerSensor[my_idx3].FQDD' - name: Testcase to verify virtual disk creation status assert: that: - " 'omnia_vd' in idrac_info.system_info.VirtualDisk[0].Name " fail_msg: "{{ vd_fail_msg }}" success_msg: " {{ vd_success_msg }}" ignore_errors: true when: raid_type - name: Execute get pods command command: "kubectl get pods -n {{ awx_namespace }}" changed_when: true register: k8s_pods ignore_errors: true run_once: true - name: Get awx pod set_fact: awx_pods: "{{ item | regex_search(awx_pod_regex) | trim }}" with_items: - "{{ k8s_pods.stdout_lines }}" run_once: true ignore_errors: true when: item | regex_search(awx_pod_item_regex) - name: Get awx cluster ip shell: "kubectl get svc awx-ui -n {{ awx_namespace }} -o jsonpath='{.spec.clusterIP}'" register: awx_cluster_ip changed_when: false ignore_errors: true - name: Get AWX admin password shell: "kubectl get secret awx-admin-password -n {{ awx_namespace }} -o jsonpath='{.data.password}' | base64 --decode" register: awx_admin_password changed_when: false ignore_errors: true - name: Execute awx get inventory hosts command shell: "awx --conf.host http://{{ awx_cluster_ip.stdout }}:8052 --conf.username admin --conf.password {{ awx_admin_password.stdout }} --conf.insecure hosts list --inventory {{ provisioned_inventory_name }} -f human --filter 'name'" changed_when: true register: idrac_hosts run_once: true ignore_errors: true - name: Testcase to verify IP added to provisioned_idrac_inventory assert: that: - idrac_hosts.stdout | regex_search( inventory_hostname ) fail_msg: "{{ provisioned_ip_fail_msg }}" success_msg: "{{ provisioned_ip_success_msg }}" ignore_errors: true - name: Update firmware idrac_firmware: idrac_ip: "{{ inventory_hostname }}" idrac_user: "{{ idrac_username }}" idrac_password: "{{ idrac_password }}" share_name: "/var/nfs_repo/dellupdates" reboot: false job_wait: true apply_update: False catalog_file_name: "Catalog.xml" register: idrac_firmware when: firmware_update_required - name: Checking firmware update status assert: that: - idrac_firmware.msg in firmware_status fail_msg: "{{ firmware_fail_msg }}" success_msg: "{{ firmware_success_msg }}" ignore_errors: true when: firmware_update_required - name: Remove the scp file file: path: "{{ inventory_hostname }}_scp.xml" state: absent run_once: true rescue: - debug: msg: "{{ failed_msg }}"