diff --git a/.github/workflows/ansible-test.yml b/.github/workflows/ansible-test.yml index 988cba1..058c434 100644 --- a/.github/workflows/ansible-test.yml +++ b/.github/workflows/ansible-test.yml @@ -114,7 +114,7 @@ jobs: # Ansible-core 2.16 is supported only from Python 3.10 onwards - python-version: "3.9" ansible-version: stable-2.16 - - python-version: '3.9' + - python-version: "3.9" ansible-version: devel steps: diff --git a/roles/powerflex_config/tasks/main.yml b/roles/powerflex_config/tasks/main.yml index f9340f0..41393f6 100644 --- a/roles/powerflex_config/tasks/main.yml +++ b/roles/powerflex_config/tasks/main.yml @@ -13,6 +13,7 @@ ansible.builtin.set_fact: powerflex_config_array_version: "{{ powerflex_config_mdm_ip_result.mdm_cluster_details.master.versionInfo[1] }}" powerflex_config_mdm_primary_hostname: "{{ hostvars[groups['mdm'][0]]['inventory_hostname'] }}" + powerflex_config_mdm_primary_ip: "{{ hostvars[groups['mdm'][0]]['ansible_host'] }}" - name: Login to primary MDM of PowerFlex 3.6 ansible.builtin.command: scli --login --username {{ username }} --password "{{ password }}" @@ -22,8 +23,30 @@ delegate_to: "{{ powerflex_config_mdm_primary_hostname }}" when: powerflex_config_array_version == '3' -- name: Login to primary MDM of PowerFlex 4.5 - ansible.builtin.command: scli --login --username {{ username }} --management_system_ip {{ hostname }} --password "{{ password }}" +- name: Generate login certificate for PowerFlex version 4.x + block: + - name: Generate login certificate using management_system_ip + ansible.builtin.command: > + scli --generate_login_certificate --management_system_ip {{ hostname }} --username {{ username }} --password {{ password }} + --p12_path /opt/emc/scaleio/mdm/cfg/cli_certificate.p12 --p12_password {{ password }} --insecure + run_once: true + register: powerflex_config_generate_login_certificate + changed_when: powerflex_config_generate_login_certificate.rc == 0 + delegate_to: "{{ powerflex_config_mdm_primary_hostname }}" + when: powerflex_config_array_version == '4' + rescue: + - name: Generate login certificate using primary_mdm_ip + ansible.builtin.command: > + scli --generate_login_certificate --management_system_ip {{ powerflex_config_mdm_primary_ip }} --username {{ username }} + --password {{ password }} --p12_path /opt/emc/scaleio/mdm/cfg/cli_certificate.p12 --p12_password {{ password }} --insecure + run_once: true + register: powerflex_config_generate_login_certificate_mdm_ip + changed_when: powerflex_config_generate_login_certificate_mdm_ip.rc == 0 + delegate_to: "{{ powerflex_config_mdm_primary_hostname }}" + when: powerflex_config_array_version == '4' + +- name: Login to MDM for PowerFlex version 4.x + ansible.builtin.command: scli --login --p12_path /opt/emc/scaleio/mdm/cfg/cli_certificate.p12 --p12_password {{ password }} run_once: true register: powerflex_config_login_output changed_when: powerflex_config_login_output.rc == 0 diff --git a/roles/powerflex_sdc/tasks/install_sdc.yml b/roles/powerflex_sdc/tasks/install_sdc.yml index 9b75321..81c61da 100644 --- a/roles/powerflex_sdc/tasks/install_sdc.yml +++ b/roles/powerflex_sdc/tasks/install_sdc.yml @@ -71,5 +71,4 @@ group: "root" notify: restart scini when: - - ansible_distribution != "VMkernel" - - " 'WindowsOS' not in ansible_distribution" + - ansible_distribution not in ['WindowsOS', 'SLES', 'VMkernel'] diff --git a/roles/powerflex_sdr/tasks/add_sdr.yml b/roles/powerflex_sdr/tasks/add_sdr.yml index 1af3452..cd516b1 100644 --- a/roles/powerflex_sdr/tasks/add_sdr.yml +++ b/roles/powerflex_sdr/tasks/add_sdr.yml @@ -39,17 +39,34 @@ no_log: true when: powerflex_sdr_array_version == "3" -- name: Login to mdm for PowerFlex version 4.x - ansible.builtin.command: > - scli --login --management_system_ip {{ hostname }} - --username admin - --password "{{ password }}" - --approve_certificate +- name: Generate login certificate for PowerFlex version 4.x + block: + - name: Generate login certificate using management_system_ip + ansible.builtin.command: > + scli --generate_login_certificate --management_system_ip {{ hostname }} --username {{ username }} --password {{ password }} + --p12_path /opt/emc/scaleio/mdm/cfg/cli_certificate.p12 --p12_password {{ password }} --insecure + run_once: true + register: powerflex_sdr_generate_login_certificate + changed_when: powerflex_sdr_generate_login_certificate.rc == 0 + delegate_to: "{{ powerflex_sdr_mdm_primary_hostname }}" + when: powerflex_sdr_array_version != "3" + rescue: + - name: Generate login certificate using primary_mdm_ip + ansible.builtin.command: > + scli --generate_login_certificate --management_system_ip {{ powerflex_sdr_primary_mdm_ip }} --username {{ username }} + --password {{ password }} --p12_path /opt/emc/scaleio/mdm/cfg/cli_certificate.p12 --p12_password {{ password }} --insecure + run_once: true + register: powerflex_sdr_generate_login_certificate_mdm_ip + changed_when: powerflex_sdr_generate_login_certificate_mdm_ip.rc == 0 + delegate_to: "{{ powerflex_sdr_mdm_primary_hostname }}" + when: powerflex_sdr_array_version != "3" + +- name: Login to MDM for PowerFlex version 4.x + ansible.builtin.command: scli --login --p12_path /opt/emc/scaleio/mdm/cfg/cli_certificate.p12 --p12_password {{ password }} run_once: true - register: powerflex_initial_login + register: powerflex_sdr_login_output + changed_when: powerflex_sdr_login_output.rc == 0 delegate_to: "{{ powerflex_sdr_mdm_primary_hostname }}" - changed_when: powerflex_initial_login.rc == 0 - no_log: true when: powerflex_sdr_array_version != "3" - name: Output msg of previous task login to mdm diff --git a/roles/powerflex_sds/tasks/install_sds.yml b/roles/powerflex_sds/tasks/install_sds.yml index 8887ff1..e940a31 100644 --- a/roles/powerflex_sds/tasks/install_sds.yml +++ b/roles/powerflex_sds/tasks/install_sds.yml @@ -17,6 +17,7 @@ ansible.builtin.set_fact: powerflex_sds_mdm_ips: "{{ powerflex_sds_mdm_ip_result.mdm_cluster_details.mdmAddresses | join(',') }}" powerflex_sds_primary_mdm_hostname: "{{ hostvars[groups['mdm'][0]]['inventory_hostname'] }}" + powerflex_sds_primary_mdm_ip: "{{ hostvars[groups['mdm'][0]]['ansible_host'] }}" - name: Include install_powerflex.yml ansible.builtin.include_tasks: ../../powerflex_common/tasks/install_powerflex.yml @@ -35,8 +36,30 @@ ansible.builtin.set_fact: disks: "{{ powerflex_sds_disks }}" +- name: Generate login certificate for PowerFlex version 4.x + block: + - name: Generate login certificate using management_system_ip + ansible.builtin.command: > + scli --generate_login_certificate --management_system_ip {{ hostname }} --username {{ username }} --password {{ password }} + --p12_path /opt/emc/scaleio/mdm/cfg/cli_certificate.p12 --p12_password {{ password }} --insecure + run_once: true + register: powerflex_sds_generate_login_certificate + changed_when: powerflex_sds_generate_login_certificate.rc == 0 + delegate_to: "{{ powerflex_sds_primary_mdm_hostname }}" + when: powerflex_sds_array_version != "3" + rescue: + - name: Generate login certificate using primary_mdm_ip + ansible.builtin.command: > + scli --generate_login_certificate --management_system_ip {{ powerflex_sds_primary_mdm_ip }} --username {{ username }} + --password {{ password }} --p12_path /opt/emc/scaleio/mdm/cfg/cli_certificate.p12 --p12_password {{ password }} --insecure + run_once: true + register: powerflex_sds_generate_login_certificate_mdm_ip + changed_when: powerflex_sds_generate_login_certificate_mdm_ip.rc == 0 + delegate_to: "{{ powerflex_sds_primary_mdm_hostname }}" + when: powerflex_sds_array_version != "3" + - name: Login to MDM for PowerFlex version 4.x - ansible.builtin.command: scli --login --management_system_ip {{ hostname }} --username {{ username }} --password {{ password }} --approve_certificate + ansible.builtin.command: scli --login --p12_path /opt/emc/scaleio/mdm/cfg/cli_certificate.p12 --p12_password {{ password }} run_once: true register: powerflex_sds_login_output changed_when: powerflex_sds_login_output.rc == 0 diff --git a/roles/powerflex_tb/tasks/uninstall_tb.yml b/roles/powerflex_tb/tasks/uninstall_tb.yml index b08bffe..82de6e0 100644 --- a/roles/powerflex_tb/tasks/uninstall_tb.yml +++ b/roles/powerflex_tb/tasks/uninstall_tb.yml @@ -29,9 +29,30 @@ when: powerflex_tb_mdm_cluster_mode[0] == "5_node" and powerflex_tb_scli_version[0] == '3' # Switch from three or five to cluster one node for PowerFlex version 4.5 -- name: Login to primary MDM node of PowerFlex version 4.5 - ansible.builtin.command: > - scli --login --management_system_ip {{ hostname }} --username {{ username }} --password {{ password }} +- name: Generate login certificate for PowerFlex version 4.x + block: + - name: Generate login certificate using management_system_ip + ansible.builtin.command: > + scli --generate_login_certificate --management_system_ip {{ hostname }} --username {{ username }} --password {{ password }} + --p12_path /opt/emc/scaleio/mdm/cfg/cli_certificate.p12 --p12_password {{ password }} --insecure + run_once: true + register: powerflex_tb_generate_login_certificate + changed_when: powerflex_tb_generate_login_certificate.rc == 0 + delegate_to: "{{ powerflex_tb_mdm_primary_hostname }}" + when: powerflex_tb_scli_version[0] >= '4' + rescue: + - name: Generate login certificate using primary_mdm_ip + ansible.builtin.command: > + scli --generate_login_certificate --management_system_ip {{ powerflex_tb_primary_ip }} --username {{ username }} + --password {{ password }} --p12_path /opt/emc/scaleio/mdm/cfg/cli_certificate.p12 --p12_password {{ password }} --insecure + run_once: true + register: powerflex_tb_generate_login_certificate_mdm_ip + changed_when: powerflex_tb_generate_login_certificate_mdm_ip.rc == 0 + delegate_to: "{{ powerflex_tb_mdm_primary_hostname }}" + when: powerflex_tb_scli_version[0] >= '4' + +- name: Login to MDM for PowerFlex version 4.x + ansible.builtin.command: scli --login --p12_path /opt/emc/scaleio/mdm/cfg/cli_certificate.p12 --p12_password {{ password }} run_once: true register: powerflex_tb_login_output changed_when: powerflex_tb_login_output.rc == 0 diff --git a/tests/sanity/ignore-2.18.txt b/tests/sanity/ignore-2.18.txt new file mode 100644 index 0000000..a464e7b --- /dev/null +++ b/tests/sanity/ignore-2.18.txt @@ -0,0 +1,14 @@ +plugins/modules/device.py validate-modules:missing-gplv3-license +plugins/modules/sdc.py validate-modules:missing-gplv3-license +plugins/modules/sds.py validate-modules:missing-gplv3-license +plugins/modules/snapshot.py validate-modules:missing-gplv3-license +plugins/modules/storagepool.py validate-modules:missing-gplv3-license +plugins/modules/volume.py validate-modules:missing-gplv3-license +plugins/modules/info.py validate-modules:missing-gplv3-license +plugins/modules/protection_domain.py validate-modules:missing-gplv3-license +plugins/modules/mdm_cluster.py validate-modules:missing-gplv3-license +plugins/modules/replication_consistency_group.py validate-modules:missing-gplv3-license +plugins/modules/replication_pair.py validate-modules:missing-gplv3-license +plugins/modules/snapshot_policy.py validate-modules:missing-gplv3-license +plugins/modules/fault_set.py validate-modules:missing-gplv3-license +plugins/modules/resource_group.py validate-modules:missing-gplv3-license