Non è la prima volta che in Altralogica sperimentiamo problemi con le istanze di EC2. Qualche anno fa c’era stato un disservizio piuttosto pesante nel data center Irlandese mentre ieri, nostro malgrado, ci siamo imbattuti in un altro problema piuttosto pesante.
Di fatto, di recente, Amazon ha cominciato ad aggiornare il proprio parco macchine host su cui girano le virtual machine di EC2. Il che è un bene perché l’hardware nuovo è più veloce. Peccato, però, che non abbiano avvisato nessuno che le istanze Windows un po’ vecchiotte (per intenderci qualsiasi cosa precedente a Windows Server 2012, non parliamo di sistemi arcaici) non hanno i driver di rete per i nuovi host.
Questo cosa significa? Che se, per caso, quando riavviamo un’istanza, questa viene fatta partire su un host nuovo, la nostra virtual machine non andrà!
E’ incomprensibile come un colosso come Amazon non avvisi i propri clienti in queste situazioni. Ad ogni modo, dopo una concitata sessione al telefono con il loro staff tecnico, siamo riusciti a venirne a capo.
Riporto qui sotto la soluzione per chi, come me, dovesse incappare in questo problema di punto in bianco e non sappia da che parte guardare per trovare aiuto.
- Scaricare l’ultima versione di EC2Config da qui: http://aws.amazon.com/developertools/5562082477397515
- Scaricare i driver aggiornati della scheda di rete Citrix (contiene anche lo script per eliminare i vecchi driver RedHat): http://aws.amazon.com/developertools/2187524384750206
- Stoppare l’istanza che non parte più.
- Fare un detach del volume root della macchina.
- Lanciare un’istanza (anche t1.micro o m1.small, non importa) di Windows 2003 su cui andrà montato il disco di root che non parte. E’ importante che sia un’istanza di 2003 perché così non fa casino con il disco di boot. Per trovarla, basta cercare Windows_Server-2003-R2_SP2 nelle community AMI.
- Fare un attach del volume di root alla nuova istanza.
- Collegarsi alla macchina Windows 2003. Il disco dovrebbe già essere visibile. Se non lo fosse, basta usare il Disk Manager per metterlo online ed assegnargli una lettera di unità.
- Scaricare i due pacchetti di cui sopra su questa macchina e copiarli in una cartella citrix sul disco della macchina che non parte. (ad es. E:\citrix). Mettete pure tutti i file insieme, tanto non c’è nulla con lo stesso nome.
- Date permessi full control all’utente everyone per quella cartella, giusto a scanso di equivoci
- Lanciate regedit
- Aprite il ramo HKEY_LOCAL_MACHINE
- Dal menù file selezionare Load Hive…
- Selezionate il file SOFTWARE dalla cartella E:\Windows\System32\config (ricordate che E: è il percorso assegnato nel mio caso, nel vostro potrebbe essere differente)
- Chiamate questo hive 00Software
- Navigate in HKEY_LOCAL_MACHINE\00Software\
Microsoft\Windows\ CurrentVersion\RunOnce - Create una nuova chiave di tipo stringa e chiamatela 01EC2Config e come valore mettete c:\citrix\ec2install -q
- Create una nuova chiave di tipo stringa e chiamatela 02RHPurge e come valore mettete C:\WINDOWS\system32\
WindowsPowerShell\v1.0\ powershell.exe -file C:\citrix\Purge.ps1 - Create una nuova chiave di tipo stringa e chiamatela 03Citrix e come valore mettete C:\citrix\Citrix_Xensetup.exe /S
- A questo punto navigate in HKEY_LOCAL_MACHINE\00Software\
Microsoft\WindowsNT\ CurrentVersion\Winlogon - Create una nuova chiave di tipo stringa e chiamatela AutoAdminLogon e come valore mettete 1
- Create una nuova chiave di tipo stringa e chiamatela DefaultUsername e come valore mettete Administrator
- Create una nuova chiave di tipo stringa e chiamatela DefaultPassword e come valore mettete la vostra password di Administrator (va messa in chiaro)
- A questo punto tornate su 00Software e andate su File -> Unload Hive..
- Chiudete regedit e fate il logoff dalla macchina Windows 2003.
- A questo punto, dalla console di EC2, fate un detach del disco dalla macchina Windows 2003 e fate un attach sulla vostra vecchia macchina che non parte più, mettendo come nome del device /dev/sda1
- Riavviate la vostra vecchia istanza e lasciatela andare per qualche minuto. Si dovrà riavviare un paio di volte (di solito è automatico) togliere i vecchi driver di rete, installare quelli nuovi ed aggiornare EC2Config. Una volta finito sarà di nuovo online.
- Buona fortuna!