Spegnimento remoto via script di VMWare ESXi 4
Il sistema VMWare ESXi 4 – che per intenderci è la versione gratuita – non prevede un comodo sistema di spegnimento remoto. Anche le API destinate alla realizzazione di script in Perl non funzionano, specificatamente per motivi di licenza.
Con un pizzico di pazienza si può però comunque aggirare l’ostacolo. Vediamo come.
Attivazione SSH
Il primo requisito è quello di potersi collegare al server via ssh. Il server ESXi è sostanzialmente una distribuzione RedHat-like quindi possiamo ragionare come se stessimo lavorando su un server Linux.
Esistono diversi tutorial in rete su come attivare SSH su ESXi 3.5: non tenetene conto. Su ESXi 4 la cosa è molto più semplice.
Basta andare nel pannello iniziale del server ESXi, premere F2 per entrare in configurazione, selezionare “Troubleshooting options” e attivare l’opzione relativa al collegamento remoto via SSH.
A questo punto sarà possibile collegarsi via ssh all’host ESXi utilizzando lo stesso utente root che già usiamo per accedere al pannello di controllo.
Spegnimento remoto
Tramite ssh è possibile eseguire direttamente un comando remoto anzichè aprire una sessione interattiva; è sufficiente aggiungere alla fine della riga ssh tale comando, ad esempio:
ssh root@serveresxi poweroff
Disclaimer
Con il comando poweroff si avvia uno spegnimento regolare del server ESXi, ovvero prima viene inviato il comando di spegnimento a tutte le macchine virtuali e infine si spegne l’host stesso.
Chiave di accesso
Con quanto visto finora, ci verrà sempre richiesta la password per accedere. Se volessimo automatizzare il tutto, dobbiamo creare una forma di autenticazione tramite sistema a chiave pubblica / privata. Consultate questo articolo per tutti i dettagli.
Per ESXi, va solo tenuto presente che, a differenza di quanto avviene su un normale server Linux, la cartella principale del filesystem è anche definita come directory home dell’utente root. Quindi la sottocartella “.ssh”, che contiene il file “authorized_keys”, va creata al livello principale.
Escludendo provvisoriamente il comando poweroff per comodità e seguendo le istruzioni riportate nell’altro articolo, dovreste riuscire a connettervi in ssh senza bisogno di digitare la password. Attenzione: se dopo un riavvio dell’host ESXi non riuscite più a collegarvi, non state sbagliando: dovete solo continuare a leggere sotto.
Riavvio
L’host ESXi rigenera il proprio filesystem ad ogni riavvio. Ogni intruso, quale ad esempio la cartella .ssh creata prima, viene rimossa. Per fare in modo che tale cartella venga ricreata ad ogni avvio bisogna creare un file .tgz che contiene tale cartella:
tar -czf oem.tgz /.ssh
Questa operazione va fatta direttamente sul server ESXi.
Il file generato va spostato nella cartella bootbank, che contiene tutti i file di avvio. NOTA: se esiste già un file con tale nome, il contenuto dei due file va unito in modo che contenga sia la nostra cartella, sia quanto già presente.
E su Windows?
Come descritto nell’articolo che riguarda la creazione delle chiavi, chi vuole collegarsi da Windows può usare il programma putty per collegarsi utilizzando una chiave e inviando un comando. Se si vuole richiamare da un file batch questo comando, la procedura corretta è salvare i parametri in una sessione di putty (es. esx-poweroff) che può poi essere richiamata con il comando:
putty.exe -load esx-poweroff
Avvertenza: la maggior parte delle operazioni descritte richiedono una certa competenza sistemistica. Se non avete familiarità con l’utillizzo di ssh e della linea di comando Linux, probabilmente non è il caso che vi avventuriate in queste modifiche, rischiando di creare problemi al vostro host ESXi.