Windows PowerShell se basa en la automatización. Estuve revisando algunos videos del Sistema de Computación Unificada de Cisco (UCS), y me encontré con algunas secciones en las que el presentador dice algo como «y ahora hazlo por cada…». Hice una pausa la primera vez que escuché eso para hacer un poco de matemáticas mentales, y luego me dije a mí mismo: «Tengo que hacer un guión de eso».
Cisco UCS PowerTools
He hablado de Cisco UCS y PowerShell en este blog antes, y he proporcionado una visión general de las PowerTools, el emulador de UCS y también el bastante práctico ConvertTo-UcsCmdlet.
Desafortunadamente, la documentación de ayuda incorporada que viene con las PowerTools es un poco pobre, pero con la ayuda del ConvertTo-UcsCmdlet, pude averiguar algunos de los cmdlets que necesitaba para hacer ciertas cosas.
Emulador Cisco UCS
Usaré el emulador Cisco UCS para ejecutar mis comandos contra. Algunos de los resultados no fueron exactamente como esperaba, y no pude hacer una ejecución completa de los videos de Cisco porque no se puede aplicar una actualización de firmware al emulador, por ejemplo.
Lo primero es lo primero: ¿Dónde están mis refuerzos?
Usaré el emulador Cisco UCS para hacer los ejercicios aquí. Asumamos que ya me he conectado (mira Connect-Ucs en mi otro post si necesitas un repaso).
Entonces, todo lo que necesito hacer para tomar una copia de seguridad como en el video de Cisco es emitir el comando:
Decidí guardar los resultados del comando en una variable. Necesitaba revisar las notas de ayuda del cmdlet para encontrar el interruptor PreservedPooledValues, ya que la UCS Manager UI lo denomina «Preserve Identities».
Comprobando el estado actual
A continuación, el vídeo recomienda comprobar el estado de cada una de las interconexiones de la tela. No creo que algunos de los nombres de sus cmdlets sean realmente fáciles de usar, pero finalmente me encontré con esto:
Podría haber cavado un poco más profundo o filtrado los resultados. Me preocupa principalmente el estado de los objetos llamados «Interconexión de Tejidos» en la salida anterior.
Después, el video de Cisco te instruye para que compruebes cosas como el almacenamiento local y el estado de alta disponibilidad de las interconexiones de la tela. Busqué por todos lados y no pude encontrar una manera de obtener esto de PowerShell. También revisé brevemente la información del API XML, pero no tuve suerte.
Comprobando los módulos IO
El video de Cisco luego pide que verifiques el estado de los módulos IO, lo cual es fácil:
Los módulos IO del chasis se anotan como «UCS-IOM» arriba, mientras que los otros están asociados a conmutadores virtuales Cisco Nexus (todos forman parte de la configuración por defecto del emulador UCS).
Verificación del estado de otros componentes
Algunas cosas más a comprobar incluyen el estado de los servidores (alias «blades»), adaptadores, Ethernet virtual e interfaces de canal de fibra.
Estoy mostrando todos estos cheques abajo. Ya que ocuparían bastante espacio, en lugar de listar todo decidí listar sólo algo que fuera una excepción. Esto fue muy fácil de hacer tratando de coincidir donde el valor de la propiedad de «OperState» no era «operable» como se muestra:
Una vez más, ya que esto está usando el emulador Cisco UCS, podría esperar ver algo un poco diferente en un entorno de producción suponiendo que en realidad está totalmente aprovisionado.
¡No reinicie las cuchillas!
En el segundo video de Cisco, hay una diapositiva que advierte sobre la política de mantenimiento del firmware. Básicamente, se le advierte sobre esta política que se establece como «inmediata» o «reconocimiento del usuario». Si entiendes las implicaciones de la primera, y tienes ventanas de mantenimiento estrictas, definitivamente quieres asegurarte de que entiendes esta en un ambiente de producción.
Abajo, sólo estoy jugando con mis perfiles y políticas, pero lo importante de notar en el valor de la propiedad «UptimeDisr» es que tengo esta política de mantenimiento establecida en «user-ack», que básicamente significa «prompt me before you disrupt service».
Probablemente querrá que todos sus perfiles tengan este requisito de reconocimiento de usuario antes de empezar a aplicar cualquier actualización de firmware a cualquiera de sus cuchillas.
¿Qué más es posible?
He cubierto cómo automatizar algunas de las comprobaciones que se recomiendan en el vídeo. Definitivamente puedes llevar esto varios pasos más allá. Por ejemplo, podrías automatizar la comprobación de las versiones de actualización del firmware, posiblemente de esta manera:
Otras cosas que podrían ser útiles son guardar la salida de los comandos anteriores para producir un informe o para ayudar a comparar el estado anterior y posterior.
Imagina si tuvieras el Microsoft Hyper-V o la virtualización de VMware corriendo en una plataforma Cisco UCS. No sólo podría automatizar la aplicación de parches y la actualización a nivel de hardware utilizando PowerShell, sino que también podría interactuar con la plataforma de virtualización para desplazar las máquinas virtuales mientras se reinician los blades para aplicar las actualizaciones de firmware. Con PowerShell usted puede hacer todo esto sin ningún tiempo de inactividad.
Su prueba incluye el acceso a nuestro curso de Implementación del Sistema de Comunicaciones Unificadas de Cisco!