|
| 1 | +# Ansible Role: nim_alt_disk_migration |
| 2 | +The [IBM Power Systems AIX](../../README.md) collection provides an |
| 3 | +[Ansible role](https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html), |
| 4 | +referred to as `nim_alt_disk_migration`, which assists in automating in migration in |
| 5 | +migration of AIX 7.1/7.2 to AIX 7.3. |
| 6 | + |
| 7 | +For guides and reference, see the [Docs Site](https://ibm.github.io/ansible-power-aix/roles.html). |
| 8 | + |
| 9 | +## Requirements |
| 10 | + |
| 11 | +None. |
| 12 | + |
| 13 | +## Role Variables |
| 14 | + |
| 15 | + |
| 16 | +Available variables are listed below, along with default values: |
| 17 | + |
| 18 | +<table> |
| 19 | + <thead> |
| 20 | + <tr> |
| 21 | + <th colspan="6"> Role Variables </th> |
| 22 | + </tr> |
| 23 | + </thead> |
| 24 | + <tbody> |
| 25 | + <tr> |
| 26 | + <td><b> Variable </b></td> |
| 27 | + <td><b> Suboptions </b></td> |
| 28 | + <td><b> Required </b></td> |
| 29 | + <td><b> Default </b></td> |
| 30 | + <td><b> Choices </b></td> |
| 31 | + <td><b> Comments </b></td> |
| 32 | + </tr> |
| 33 | + <tr> |
| 34 | + <td><b> nim_client </b></td> |
| 35 | + <td> </td> |
| 36 | + <td> true </td> |
| 37 | + <td> </td> |
| 38 | + <td> </td> |
| 39 | + <td> |
| 40 | + Specifies a NIM object name that is associated to the |
| 41 | + NIM client machine to be migrated. |
| 42 | + </td> |
| 43 | + </tr> |
| 44 | + <tr> |
| 45 | + <td><b> target_disk </b></td> |
| 46 | + <td> </td> |
| 47 | + <td> true </td> |
| 48 | + <td> </td> |
| 49 | + <td> </td> |
| 50 | + <td> </td> |
| 51 | + </tr> |
| 52 | + <tr> |
| 53 | + <td> </td> |
| 54 | + <td><b> disk_name </b></td> |
| 55 | + <td> </td> |
| 56 | + <td> </td> |
| 57 | + <td> </td> |
| 58 | + <td> |
| 59 | + Specifies the physical volume by name where |
| 60 | + the alternate disk will be created. |
| 61 | + </td> |
| 62 | + </tr> |
| 63 | + <tr> |
| 64 | + <td> </td> |
| 65 | + <td><b> disk_size_policy </b></td> |
| 66 | + <td> </td> |
| 67 | + <td> </td> |
| 68 | + <td> |
| 69 | + minimize, |
| 70 | + upper, |
| 71 | + lower, |
| 72 | + nearest |
| 73 | + </td> |
| 74 | + <td> |
| 75 | + Specifies the disk size policy to automatically |
| 76 | + determine a valid physical volume that fits the |
| 77 | + policy where the alternate disk will be created. |
| 78 | + If an alternate disk named '<i>altinst_rootvg</i>' or |
| 79 | + '<i>old_rootvg</i>' exists, the role will fail unless |
| 80 | + force option is used. |
| 81 | + </td> |
| 82 | + </tr> |
| 83 | + <tr> |
| 84 | + <td> </td> |
| 85 | + <td><b> force </b></td> |
| 86 | + <td> </td> |
| 87 | + <td> false </td> |
| 88 | + <td> </td> |
| 89 | + <td> |
| 90 | + If physical volume specified by <b>target_disk.disk_name</b> |
| 91 | + belongs to '<i>altinst_rootvg</i>', '<i>old_rootvg</i>', or a |
| 92 | + varied on volume group then that physical volume will be |
| 93 | + cleaned up. |
| 94 | + If <b>target_disk.disk_size_policy</b> is specified and an |
| 95 | + alternate disk named '<i>altinst_rootvg</i>' or '<i>old_rootvg</i>' |
| 96 | + already exists, then it will clean up the physical volume |
| 97 | + it occupies. |
| 98 | + </td> |
| 99 | + </tr> |
| 100 | + <tr> |
| 101 | + <td><b> lpp_source </b></td> |
| 102 | + <td> </td> |
| 103 | + <td> true </td> |
| 104 | + <td> </td> |
| 105 | + <td> </td> |
| 106 | + <td> |
| 107 | + Specifies a NIM object name associated to a |
| 108 | + LPP resource for the desired level of migration. |
| 109 | + </td> |
| 110 | + </tr> |
| 111 | + <tr> |
| 112 | + <td><b> spot </b></td> |
| 113 | + <td> </td> |
| 114 | + <td> false </td> |
| 115 | + <td> </td> |
| 116 | + <td> </td> |
| 117 | + <td> |
| 118 | + Specifies a NIM object name associated to a SPOT |
| 119 | + resource. |
| 120 | + </td> |
| 121 | + </tr> |
| 122 | + <tr> |
| 123 | + <td><b> reboot_client </b></td> |
| 124 | + <td> </td> |
| 125 | + <td> false </td> |
| 126 | + <td> false </td> |
| 127 | + <td> </td> |
| 128 | + <td> |
| 129 | + Specifies if the NIM client LPAR will be |
| 130 | + automatically rebooted after successfully |
| 131 | + creating the alternate disk. |
| 132 | + </td> |
| 133 | + </tr> |
| 134 | + <tr> |
| 135 | + <td><b> control_phases </b></td> |
| 136 | + <td> </td> |
| 137 | + <td> false </td> |
| 138 | + <td> </td> |
| 139 | + <td> </td> |
| 140 | + <td> </td> |
| 141 | + </tr> |
| 142 | + <tr> |
| 143 | + <td> </td> |
| 144 | + <td><b> validate_nim_resources </b></td> |
| 145 | + <td> </td> |
| 146 | + <td> true </td> |
| 147 | + <td> </td> |
| 148 | + <td> |
| 149 | + If set to false, then it will skip |
| 150 | + validation of NIM resources. |
| 151 | + </td> |
| 152 | + </tr> |
| 153 | + <tr> |
| 154 | + <td> </td> |
| 155 | + <td><b> perform_migration </b></td> |
| 156 | + <td> </td> |
| 157 | + <td> true </td> |
| 158 | + <td> </td> |
| 159 | + <td> |
| 160 | + If set to false, then it will skip |
| 161 | + the actual migration task |
| 162 | + </td> |
| 163 | + </tr> |
| 164 | + </tbody> |
| 165 | +</table> |
| 166 | + |
| 167 | +**NOTES**: |
| 168 | +- ***minimize*** disk size policy chooses smallest disk that can be selected. |
| 169 | +- ***upper*** disk size policy chooses the first disk found bigger than the rootvg disk. |
| 170 | +- ***lower*** disk size policy chooses a disk that is less than rootvg disk size but big |
| 171 | +enough to contain the used PPs. |
| 172 | +- ***nearest*** disk size policy chooses a disk closest to the rootvg disk in terms of size. |
| 173 | +- if ***upper*** or ***lower*** cannot be satisfied, it will default to *minimize*. |
| 174 | +- if you are using the role to ONLY validate the NIM resources then the **nim_client** |
| 175 | +variable is not required. |
| 176 | +- if a **spot** is not specified, one will be automatically created using the specified |
| 177 | +**lpp_source**. |
| 178 | + |
| 179 | +## Dependencies |
| 180 | + |
| 181 | +None. |
| 182 | + |
| 183 | +## Example Playbook |
| 184 | + |
| 185 | +``` |
| 186 | +- name: Perfrom an alternate disk migration using hdisk1. Let the role build the SPOT. |
| 187 | + hosts: aix |
| 188 | + gather_facts: no |
| 189 | + tasks: |
| 190 | + - include_role: |
| 191 | + name: nim_alt_disk_migration |
| 192 | + vars: |
| 193 | + nim_client: p9zpa-ansible-test1 |
| 194 | + target_disk: |
| 195 | + disk_name: hdisk1 |
| 196 | + lpp_source: lpp_2134A_730 |
| 197 | +``` |
| 198 | + |
| 199 | +``` |
| 200 | +- name: Perform an alternate disk migration and let the role choose the disk. |
| 201 | + hosts: aix |
| 202 | + gather_facts: no |
| 203 | + tasks: |
| 204 | + - include_role: |
| 205 | + name: nim_alt_disk_migration |
| 206 | + vars: |
| 207 | + nim_client: p9zpa-ansible-test1 |
| 208 | + target_disk: |
| 209 | + disk_size_policy: minimize |
| 210 | + lpp_source: lpp_2134A_730 |
| 211 | + spot: spot_2134A_730 |
| 212 | +``` |
| 213 | + |
| 214 | +``` |
| 215 | +# Useful when migrating multiple nodes concurrently. Use first the role to perform the |
| 216 | +# validation of the resources only once. Then you can migrate the nodes without doing verifications. |
| 217 | + |
| 218 | +- name: Validate the nim lpp and spot resources and exit the playbook. |
| 219 | + hosts: aix |
| 220 | + gather_facts: no |
| 221 | + tasks: |
| 222 | + - include_role: |
| 223 | + name: nim_alt_disk_migration |
| 224 | + vars: |
| 225 | + lpp_source: lpp_2134A_730 |
| 226 | + spot: spot_2134A_730 |
| 227 | + control_phases: |
| 228 | + validate_nim_resources: true |
| 229 | + perform_nim_migration: false |
| 230 | +``` |
| 231 | + |
| 232 | +``` |
| 233 | +# Useful when migrating multiple nodes concurrently. The role will prevent the validation |
| 234 | +# of the resources and just perform the migration. The role still will perform specific |
| 235 | +# validations for the nim client such as connectity, OS level and valid hardware platform |
| 236 | +# for the OS. |
| 237 | + |
| 238 | +- name: Perform an alternate disk without the lpp or spot resources validation. |
| 239 | + hosts: aix |
| 240 | + gather_facts: no |
| 241 | + tasks: |
| 242 | + - include_role: |
| 243 | + name: nim_alt_disk_migration |
| 244 | + vars: |
| 245 | + nim_client: p9zpa-ansible-test1 |
| 246 | + target_disk: |
| 247 | + disk_size_policy: minimize |
| 248 | + lpp_source: lpp_2134A_730 |
| 249 | + spot: spot_2134A_730 |
| 250 | + control_phases: |
| 251 | + validate_nim_resources: false |
| 252 | + perform_nim_migration: true |
| 253 | +``` |
| 254 | + |
| 255 | +``` |
| 256 | +# For debugging purposes: debug_skip_nimadm: true |
| 257 | +# Similar to modules "check_mode". Useful to execute all the validations and just exit before |
| 258 | +# performing the migration. |
| 259 | + |
| 260 | +- name: Preview an alternate disk migration. Exit before running nimadm |
| 261 | + hosts: aix |
| 262 | + gather_facts: no |
| 263 | + tasks: |
| 264 | + - include_role: |
| 265 | + name: nim_alt_disk_migration |
| 266 | + vars: |
| 267 | + nim_client: p9zpa-ansible-test1 |
| 268 | + target_disk: |
| 269 | + disk_size_policy: minimize |
| 270 | + lpp_source: lpp_2134A_730 |
| 271 | + spot: spot_2134A_730 |
| 272 | + control_phases: |
| 273 | + validate_nim_resources: true |
| 274 | + perform_nim_migration: true |
| 275 | + debug_skip_nimadm: true |
| 276 | +``` |
| 277 | + |
| 278 | +## Copyright |
| 279 | +© Copyright IBM Corporation 2022 |
0 commit comments