Puncte:1

Folosind așteptați pentru a automatiza instalarea Alpine Linux în FreeBSD în Bhyve

drapel mx

Încerc să automatizez instalarea Alpine Linux în vm-bhyve sub FreeBSD și mă aștept să mor la scurt timp după expirarea meniului de pornire și lansarea instalației Alpine Linux.

#!/usr/bin/env aștept
spawn vm install -f alpine alpine.iso # scurtat pentru concizie
așteptați "localhost login:"
trimite „root\r”
...

Acest lucru are ca rezultat următoarea eroare:

„în timpul executării
"trimite "root\r"

Bănuiesc că ori de câte ori ecranul se șterge și începe să pornească, asta derutează să te gândești că programul este gata? Și, ca urmare, scenariul moare.

Nu am codificat niciodată expect în acest mod înainte, este posibil să o fac cu expect?

De asemenea, am încercat să setez un timeout global înainte de a genera vm install cmd-ul care pornește și intră imediat în consolă pentru invitat, dar asta nu a schimbat nimic, așa că l-am exclus din scriptul de mai sus. Somnul în același loc nu a ajutat, doar a întârziat pornirea (și eșecul ulterior cu cantitatea pe care am stabilit-o pentru somn).

EDITAȚI | ×: Încerc să lansez programul de instalare în fundal, să dorm 30 de secunde, apoi să atașez o consolă. În acest moment, Așteaptă-te ar trebui să muncă.

drapel fo
Aș recomanda să folosiți `autoexpect` pentru a înregistra o instalare complet interactivă. Codul de așteptare rezultat este foarte pronunțat, dar poate fi curățat dacă este necesar.
drapel fo
În plus, în timp ce dezvoltați un script de așteptare, lansați-l cu `expect -d` pentru a activa ieșirea de depanare verbosă: acest lucru poate indica motivul pentru care modelele de așteptare nu se potrivesc (deseori există spații albe „ascunse”).
drapel mx
O idee grozavă, nu știam că există. Din păcate, și acesta moare, *cred* că nu trebuie să-i placă terminalul. A captat mai multe rezultate, așa cum ne așteptam .
Puncte:0
drapel mx

Îl funcționează în ambele cazuri (vm install -f și folosesc vm console pentru a se atașa la o VM care rulează).

Problema în cazul meu a fost că am început cu o configurație nouă și acea configurație nouă avea o setare invalidă (passthrough PCI). Am crezut că am pornit fără să mă aștept și că am funcționat; cu toate acestea, deja reimaginasem mașina și configurația mea a fost suprascrisă.

Folosirea așteptării automate mi-a permis să captez mai multe detalii pe care le-aș fi avut altfel și este o modalitate excelentă de a pregăti scripturile așteptate.

Acum, procesul pentru mine este să efectuez o instalare freebsd urmată de pornirea în sistem și, la pornire, să verific dacă există VM-uri, dacă nu, să le creez folosind expect.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.