¿Tienes que actualizar decenas de servidores VIOS y no sabes por dónde empezar? Con Ansible y este tutorial, podrás hacerlo sin morir en el intento. ¡Empecemos!
¿Qué necesitas?
- Un backup reciente (usa
viosbr
omksysb
) - Un disco adicional en cada VIOS (ej:
hdisk1
) - La imagen
.mksysb
de la nueva versión en un servidor NFS - Ansible configurado en tu máquina de control
Pasos para la actualización masiva
1. Verificar versión actual
- name: Verificar versión del VIOS ansible.builtin.command: cmd: /usr/ios/cli/ioscli ioslevel register: ioslevel changed_when: false - name: Abortar si ya está actualizado when: "ioslevel.stdout is version(target_level, '>=')" block: - debug: msg: "¡Ya tienes la versión {{ ioslevel.stdout }}! No es necesario actualizar." - meta: end_play
2. Preparar disco de actualización
- name: Detectar discos disponibles setup: gather_subset: devices - name: Validar estado del disco meta: end_play when: ansible_facts.devices[alt_hdisk].state != 'Available' - name: Limpiar disco command: "chpv -C {{ alt_hdisk }}"
3. Copiar archivos clave
- name: Copiar lista de archivos a preservar copy: src: filelist dest: /tmp/filelist - name: Copiar script post-instalación copy: src: postupgrade.sh dest: /tmp/postupgrade.sh mode: "0755"
Ejemplo de Script Post-Upgrade
#!/bin/ksh /usr/ios/cli/ioscli license -accept /usr/ios/cli/ioscli rules -o modify -t disk/fcp/mpioosdisk -a reserve_policy=no_reserve mkuser ansible chuser su=true root echo 'ansible:abc123' | chpasswd -c mkdir -p /home/ansible/.ssh echo 'ssh-rsa TU_CLAVE_PUBLICA' >/home/ansible/.ssh/authorized_keys
4. Montar imagen de actualización
- name: Montar NFS con imagen mksysb ibm.power_aix.mount: state: mount node: "{{ nfs_server }}" mount_dir: "{{ nfs_repo }}" mount_over_dir: /mnt - name: Verificar imagen stat: path: "/mnt/{{ mksysb }}" register: mksysb_stat - name: Abortar si falta la imagen when: not mksysb_stat.stat.exists block: - debug: msg: "¡Imagen no encontrada! Verifica la ruta {{ nfs_server }}:{{ nfs_repo }}/{{ mksysb }}" - meta: end_play
5. Iniciar actualización
- name: Ejecutar viosupgrade ibm.power_vios.viosupgrade: cluster: false filename: /tmp/filelist post_install_binary: /tmp/postupgrade.sh image_file: "/mnt/{{ mksysb }}" mksysb_install_disks: "{{ alt_hdisk }}" wait_reboot: true
6. Verificar finalización
- name: Esperar reinicio wait_for_connection: delay: 300 timeout: 2400 - name: Confirmar éxito wait_for: path: /home/ios/logs/viosupg_status.log search_regex: "COMPLETED"
Consejos finales
- Si usas Shared Storage Pools, cambia
cluster: true
en el paso 5 - Prueba primero con 2-3 servidores antes del despliegue masivo
- Revisa los logs en
/home/ios/logs/
si algo falla