Migrating to AIX 7.3 with
nimadm and Ansible
If you’re familiar with my work, you’ll know that I’m a big fan of nimadm. Recently I used nimadm with Ansible to migrate to AIX 7.3. I migrated my LPAR from AIX 7.2 to AIX 7.3 using nimadm with Ansible.
Key to this functionality is the IBM AIX Ansible Galaxy collection, which includes the nim_alt_disk_migration Ansible role. See links below.
https://ibm.github.io/ansible-power-aix/roles/nim_alt_disk_migration.html
https://galaxy.ansible.com/ui/repo/published/ibm/power_aix/content/?showing=role
https://galaxy.ansible.com/ui/repo/published/ibm/power_aix/content/role/nim_alt_disk_migration/
The AIX collection can be installed on an Ansible controller, using the ansible-galaxy command. For example:
# ansible-galaxy
collection install ibm.power_aix
Starting
galaxy collection install process
Process
install dependency map
Starting
collection install process
Downloading
https://galaxy.ansible.com/api/v3/plugin/ansible/content/published/collections/artifacts/ibm-power_aix-1.8.1.tar.gz
to
/.ansible/tmp/ansible-local-18940242l9h2dd6s/tmpquf013tl/ibm-power_aix-1.8.1-l3w6ehd7
Installing
'ibm.power_aix:1.8.1' to
'/.ansible/collections/ansible_collections/ibm/power_aix'
ibm.power_aix:1.8.1
was installed successfully
In my lab, version 1.8.1 of the collection was installed:
# ansible-galaxy
collection list ibm.power_aix
#
/.ansible/collections/ansible_collections
Collection Version
-------------
-------
ibm.power_aix
1.8.1
This Ansible role, nim_alt_disk_migration, can be used for “migrating an alternate disk to a higher AIX level”.
Here’s the playbook I used, called nimadm.yml:
--- - name: NIMADM
playbook hosts: aixmig gather_facts: no collections: ibm.power_aix tasks: - include_role: name: nim_alt_disk_migration apply: delegate_to: lpar1 vars: nimadm_cache_vg: nimadmvg nim_client: aixmig target_disk: disk_name: hdisk0 lpp_source: AIX73TL1SP1 spot: spotAIX73TL1SP1 register: nimadm_results - name: "Debug: nimadm_results" ansible.builtin.debug:
var=nimadm_results |
I ran this from my Ansible controller node. My NIM master was named lpar1 and my NIM client was named aixmig. On the NIM client, hdisk0 would be used to create the alternate rootvg for 7.3. I also chose to use a cache volume group with nimadm (nimadm_cache_vg: nimadmvg).
When I ran the playbook, after several checks, I eventually saw the nimadm command being called.
# ansible-playbook
nimadm.yml
…snip…
TASK
[ibm.power_aix.nim_alt_disk_migration : Display nimadm command]
******************************************************************
ok:
[aixmig -> lpar1] => {
"msg": "/usr/sbin/nimadm
-c aixmig -l AIX73TL1SP1 -s spotAIX73TL1SP1 -j nimadmvg -Y -d hdisk0"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : Migrate to alternate disk]
***************************************************************
changed:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg": [
"timeout = 14400 seconds or 4
hours ",
"Maximum retries: 241 of 60
seconds"
]
}
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"results": {
"ansible_job_id":
"j575666317950.22741414",
"changed": true,
"failed": 0,
"finished": 0,
"results_file":
"/.ansible_async/j575666317950.22741414",
"started": 1
}
}
TASK
[ibm.power_aix.nim_alt_disk_migration : Polling until migration finishes
(ignore FAILED RETRING messages)] ***********************
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (231
retries left).
...snip...
The migration completed as expected and was successful. I was able to monitor the nimadm operation from the NIM master, by tailing the migration log file (as usual):
# tail
-f /var/adm/ras/alt_mig/aixmig_alt_mig.log
MASTER
DATE: Tue Mar 12 22:15:13 EDT 2024
CLIENT
DATE: Tue Mar 12 21:16:49 EDT 2024
NIMADM
PARAMETERS: -c aixmig -l AIX73TL1SP1 -s spotAIX73TL1SP1 -j nimadmvg -Y -d
hdisk0
Starting
Alternate Disk Migration.
+-----------------------------------------------------------------------------+
Executing
nimadm phase 1.
+-----------------------------------------------------------------------------+
Cloning
altinst_rootvg on client, Phase 1.
Client
alt_disk_install command: alt_disk_copy -j -M 7.3 -P1 -d "hdisk0"
...snip...
# lsnim
-l aixmig
aixmig:
class = machines
type = standalone
locked = 22544692
connect = shell
platform = chrp
netboot_kernel = 64
if1 = network0 aixmig EEEB78881F04 ent0
cable_type1 = N/A
mgmt_profile1 = hmc1 4 sys730
Cstate = alt_disk_mig operation is being
performed
prev_state = ready for a NIM operation
Mstate = currently running
lpp_source = AIX73TL1SP1
spot = spotAIX73TL1SP1
cpuid = 00F943F93C00
control = master
Cstate_result = reset
The playbook displayed the following when the migration was completed successfully:
…snip…
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore FAILED
RETRING messages) (207 retries left).
changed:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg": "retry = 241"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : Rebooting aixmig]
************************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg": "'altinst_rootvg'
successfully created in 'aixmig'. Reboot 'aixmig' to boot into the alterate
disk.\n"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg": "MIGRATION
COMPLETE!!!"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg1": "\" - Validation
of resources: Completed! \\n- Migration of aixmig to 7300 Completed.\"\n"
}
TASK
[Debug: nimadm_results]
**********************************************************************************************************
ok:
[aixmig] => {
"nimadm_results": {
"changed": false,
"include_args": {
"apply": {
"delegate_to":
"lpar1"
},
"name":
"nim_alt_disk_migration"
}
}
}
PLAY
RECAP ****************************************************************************************************************************
aixmig : ok=82 changed=2
unreachable=0 failed=0 skipped=33
rescued=0 ignored=0
I rebooted my NIM client to 7.3 (with another Ansible playbook) and verified the migration was OK (with another playbook):
# ansible-playbook
aix_reboot.yml
PLAY
[Reboot the machine]
*************************************************************************************************************
TASK
[reboot the machine]
*************************************************************************************************************
changed:
[aixmig]
TASK
[debug]
**************************************************************************************************************************
ok:
[aixmig] => {
"reboot_result": {
"changed": true,
"elapsed": "177
sec",
"failed": false,
"msg": "System has
been rebooted SUCCESSFULLY",
"rebooted": true
}
}
PLAY
RECAP
****************************************************************************************************************************
aixmig : ok=2 changed=1
unreachable=0 failed=0 skipped=0
rescued=0 ignored=0
# ansible-playbook
aix_oslevel_check.yml
PLAY
[AIX oslevel checking playbook] **************************************************************************************************
TASK
[Gathering Facts]
****************************************************************************************************************
ok:
[aixmig]
TASK
[Gather LPP Facts]
***************************************************************************************************************
changed:
[aixmig]
TASK
[Print the oslevel]
**************************************************************************************************************
ok:
[aixmig] => {
"msg": "aixmig has the
AIX oslevel of 7300-01-01-2246"
}
PLAY
RECAP
****************************************************************************************************************************
aixmig : ok=3 changed=1
unreachable=0 failed=0 skipped=0
rescued=0 ignored=0
Below is the complete output from the nimadm playbook session:
# ansible-playbook
nimadm.yml
PLAY
[NIMADM]
*************************************************************************************************************************
TASK
[include_role : nim_alt_disk_migration] ******************************************************************************************
TASK
[ibm.power_aix.nim_alt_disk_migration : Validating arguments against arg spec
'main' - This role is used to migrate a client OS levels from AIX 7.1/7.2 to
AIX 7.3.] ***
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : Fail if a NIM LPP resource is not
specified] *********************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg": "LPP resource
AIX73TL1SP1 specified for migration"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : Retrieve AIX73TL1SP1 AIX release level]
**************************************************
included:
/.ansible/collections/ansible_collections/ibm/power_aix/roles/nim_alt_disk_migration/tasks/retrieve_lpp_source_os_level.yml
for aixmig
TASK
[ibm.power_aix.nim_alt_disk_migration : Query bos.mp64.rte fileset AIX73TL1SP1]
**************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : Check if 'bos.mp64 is in AIX73TL1SP1]
****************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug] ***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg": "'AIX73TL1SP1 is at
level '7.3.1.1'\n"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : Save bos.mp version on file
/var/adm/ras/ansible_nim_info_file_AIX73TL1SP1] **************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"nim_file_info": "VARIABLE
IS NOT DEFINED!"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : Verify if alt_disk_install.rte fileset
is present] ***************************************
included:
/.ansible/collections/ansible_collections/ibm/power_aix/roles/nim_alt_disk_migration/tasks/validate_alt_disk_install_fileset.yml
for aixmig
TASK
[ibm.power_aix.nim_alt_disk_migration : Query bos.alt_disk_install.rte fileset
in NIM master] ************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : Check if 'bos.alt_disk_install.rte is
installed in NIM master] ***************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug] ***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg":
"'bos.alt_disk_install.rte' in NIM master is at level ['7.3.2.0']\n"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : Query bos.alt_disk_install.rte fileset
AIX73TL1SP1] **************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : fail]
************************************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg": "defined"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg":
"'bos.alt_disk_install.rte' in AIX73TL1SP1 is at level '7.3.1.0'\n"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : ibm.power_aix.nim_resource] **************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : include_tasks]
***************************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : ibm.power_aix.nim_resource]
**************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg":
"'bos.alt_disk_install.rte' in spotAIX73TL1SP1 is at level
'7.3.2.0'\n"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact] ********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : fail]
************************************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : fail]
************************************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : fail]
************************************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg": "Fileset
alt_disk_install.rte presence validation passed"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : Create SPOT resource if not specified] ***************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg": "SPOT resource
spotAIX73TL1SP1 specified for migration"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg": " Resources
spotAIX73TL1SP1 are valid and ready."
}
TASK
[ibm.power_aix.nim_alt_disk_migration : Fail if a NIM client LPAR is not
specified] **********************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg": "aixmig specified to
be migrated"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : Assert if the user does not input at
least one target_disk option.] **********************
ok:
[aixmig -> lpar1] => {
"changed": false,
"msg": "All assertions
passed"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : Fail if the user inputs the target_disk
with both: disk_size_policy and disk_name] *******
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : Fail if both target_disk
disk_size_policy and disk_name have no value] *******************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : Verify NIM master and client
connection] *************************************************
included:
/.ansible/collections/ansible_collections/ibm/power_aix/roles/nim_alt_disk_migration/tasks/validate_nim_connection.yml
for aixmig
TASK
[ibm.power_aix.nim_alt_disk_migration : check if client is defined on master]
****************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : get nimsh status on master]
**************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : validate nimsh state]
********************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : check if c_rsh is up and running]
********************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : get tftp status on master]
***************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : validate tftp status]
********************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : get bootpd status on master]
*************************************************************
ok: [aixmig
-> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : validate bootpd status]
******************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : get nimsh status on client]
**************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : validate nimsh status on client]
*********************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : get niminfo from client]
*****************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : get nim master host name]
****************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : validate client master hostname from
niminfo] ********************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg": "NIM master and
clients connection validation complete"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : Fetch client oslevel]
********************************************************************
included:
/.ansible/collections/ansible_collections/ibm/power_aix/roles/nim_alt_disk_migration/tasks/get_oslevel.yml
for aixmig
TASK
[ibm.power_aix.nim_alt_disk_migration : NIM check for client OS level]
***********************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"nim_check.nim_node.standalone[nim_client]": {
"Cstate": "ready for a
NIM operation",
"Cstate_result":
"reset",
"Mstate": "currently
running",
"cable_type1":
"N/A",
"class":
"machines",
"connect": "shell",
"cpuid":
"00F943F94C00",
"if1": "network0 aixmig
EEEB78881F04 ent0",
"ip": "aixmig",
"mgmt_profile1":
"pok-sse-hmc1 4 sys854",
"netboot_kernel":
"64",
"oslevel":
"7200-04-02-2028",
"platform": "chrp",
"prev_state": "not
running",
"type":
"standalone"
}
}
TASK
[ibm.power_aix.nim_alt_disk_migration : Parse OS level] **************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : Determine if OS level was successfully
fetched] ******************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : Determine if OS level is 7.1>]
***********************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg": "Client LPAR 'aixmig'
is at AIX level '7200-04-02-2028'"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : Read bos.mp64 version from file
/var/adm/ras/ansible_nim_info_file_AIX73TL1SP1] **********
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : Retrieve lpp_source bos.mp64 level]
******************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"lpp_source_fileset_level":
"7300"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : No need to migreate]
*********************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : Verify that the client LPAR is at least
a Power8 machine] ********************************
included:
/.ansible/collections/ansible_collections/ibm/power_aix/roles/nim_alt_disk_migration/tasks/validate_min_power_level.yml
for aixmig
TASK
[ibm.power_aix.nim_alt_disk_migration : Fetch Processor Type of aixmig LPAR]
*****************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : Validate Processor Type Level]
***********************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg": "aixmig has at least
a PowerPC_Power8 processor"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration :
ibm.power_aix.internal.nim_select_target_disk]
*******************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact] ********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration :
ibm.power_aix.internal.nim_select_target_disk]
*******************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : fail]
************************************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg": "hdisk0 of aixmig
will be used to create an alternate disk copy"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : Clear nimadm_options variable when
CacheVG and Bundle not defined] ***********************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : Add CacheVG to 'nimadm_options' when
nimadm_cache_vg configured] *************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : Add eFix Bundle to 'nimadm_options'
when nimadm_bundle configured] ***********************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : Display nimadm command]
******************************************************************
ok:
[aixmig -> lpar1] => {
"msg": "/usr/sbin/nimadm -c
aixmig -l AIX73TL1SP1 -s spotAIX73TL1SP1 -j nimadmvg -Y -d hdisk0"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : Migrate to alternate disk]
***************************************************************
changed:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg": [
"timeout = 14400 seconds or 4
hours ",
"Maximum retries: 241 of 60
seconds"
]
}
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"results": {
"ansible_job_id":
"j575666317950.22741414",
"changed": true,
"failed": 0,
"finished": 0,
"results_file":
"/.ansible_async/j575666317950.22741414",
"started": 1
}
}
TASK
[ibm.power_aix.nim_alt_disk_migration : Polling until migration finishes
(ignore FAILED RETRING messages)] ***********************
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (241 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (240 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (239 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (238 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (237 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (236 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (235 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (234 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (233 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (232 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (231 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (230 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (229 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (228 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (227 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (226 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (225 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (224 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (223 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (222 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (221 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (220 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (219 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (218 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (217 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (216 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (215 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (214 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (213 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (212 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (211 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (210 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (209 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (208 retries
left).
FAILED
- RETRYING: [aixmig -> lpar1]: Polling until migration finishes (ignore
FAILED RETRING messages) (207 retries
left).
changed:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg": "retry = 241"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : Rebooting aixmig]
************************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg": "'altinst_rootvg'
successfully created in 'aixmig'. Reboot 'aixmig' to boot into the alterate
disk.\n"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg": "MIGRATION
COMPLETE!!!"
}
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
ok:
[aixmig -> lpar1]
TASK
[ibm.power_aix.nim_alt_disk_migration : set_fact]
********************************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
skipping:
[aixmig]
TASK
[ibm.power_aix.nim_alt_disk_migration : debug]
***********************************************************************************
ok:
[aixmig -> lpar1] => {
"msg1": "\" -
Validation of resources: Completed! \\n- Migration of aixmig to 7300
Completed.\"\n"
}
TASK
[Debug: nimadm_results]
**********************************************************************************************************
ok:
[aixmig] => {
"nimadm_results": {
"changed": false,
"include_args": {
"apply": {
"delegate_to":
"lpar1"
},
"name":
"nim_alt_disk_migration"
}
}
}
PLAY
RECAP ****************************************************************************************************************************
aixmig : ok=82 changed=2
unreachable=0 failed=0 skipped=33
rescued=0 ignored=0
From IBMer, Rich Jefferies, regarding new nimadm options:
Your
"ask" is already included in the collection as part of the additions
I made for a previous requirement, however it is probably currently
undocumented.
There are three
additional options:
-
nimadm_cache_vg: Name of VG on NIM
Master to use for cacheVG
- nimadm_bundle:
Name of Bundle resource to install post upgrade
- nimadm_bidata:
Name of custom Bos Inst Data to use during upgrade
Below is an
example of how to invoke the options. I'd added the "default('N/A')"
to avoid errors if the variable was not defined, as the role is coded for
"N/A", but should also work with "default(omit)"
- name: Include nim_alt_disk_migration role
include_role:
name: nim_alt_disk_migration
apply:
delegate_to: "{{ NIM_Master }}"
connection: "{{ NIM_Conn
}}"
vars:
nim_client: "{{ NIM_Client
}}"
target_disk:
disk_name: "{{ Target_DISK.disk_name
}}"
force: "{{ NIMADM_Force
}}"
lpp_source: "{{ Target_LPPS
}}"
spot: "{{ Target_SPOT
}}"
nim_mast_lpp: "{{ NIM_Mast_LPP
}}"
nimadm_cache_vg: "{{ NIMADM_VG |
default('N/A') }}"
nimadm_bundle: "{{ Target_eFix
| default('N/A') }}"
nimadm_bidata: "{{ BOS_Inst_Data
| default('N/A') }}"
control_phases:
validate_nim_resources:
"{{ NIM_Res_Check }}"
perform_migration: "{{ NIM_Migration
}}
debug_skip_nimadm: "{{ Skip_nimadm
}}"