Fórum Root.cz

Hlavní témata => Server => Téma založeno: rado3105 12. 06. 2016, 17:07:11

Název: Spouštění virtuálů při bootu bez roota
Přispěvatel: rado3105 12. 06. 2016, 17:07:11
Ako je mozne spustat virtualne stroje po boote v debian jessie? Metoda v starsich debianoch cez autostart uz nefunguje.

Skusal som aj cez crontab, kde som dal:

Kód: [Vybrat]
@reboot r-c vboxmanage startvm arch-serv -type headless
avsak nespustilo ho...neriesil to niekto?
vdaka
Název: Re:D. jessie ako spustat Virtualne stroje po boote - nie ako root
Přispěvatel: JardaP . 12. 06. 2016, 17:16:40
Muzete migrovat na Devuan, tam vam to nejspis porad bude chodit po staru. https://talk.devuan.org/t/migrating-from-debian-to-a-minimalist-devuan/181
Název: Re:D. jessie ako spustat Virtualne stroje po boote - nie ako root
Přispěvatel: Lol Phirae 12. 06. 2016, 17:34:43
Zeptej se Lennarta  ;D :D :P
Název: Re:D. jessie ako spustat Virtualne stroje po boote - nie ako root
Přispěvatel: JardaP . 12. 06. 2016, 18:13:14
Otazka je, jestli to ten otlemeny debil vi. Ono je mozne, ze se jedna o funkcionalitu, ktera byla zrusena, protoze ji Poettering na desktopu nepotrebuje.
Název: Re:D. jessie ako spustat Virtualne stroje po boote - nie ako root
Přispěvatel: Jenda 12. 06. 2016, 19:05:04
Mně v Jessie normálně funguje /etc/rc.local.
Název: Re:D. jessie ako spustat Virtualne stroje po boote - nie ako root
Přispěvatel: ZAJDAN 12. 06. 2016, 19:17:52
ja to na Jessie resim tak, ze jsem si pro kazdy virtual vytvoril script:

#! /bin/sh
#[microsoft windows server 2008 + SQL]
VBoxHeadless -s SQL


pridelil mu prava na sousteni a tento script mam namapovanej v autostart
dneska bych tu uz ale resil, take pres zmineny rc.local
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: rado3105 14. 06. 2016, 00:38:41
Skusal som rc.local:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
VBoxHeadless --startvm arch-serv
exit 0

a nespusti to masinu s nazvom arch-serv, je tam nieco zle?
Masinu spustim len ako uzivatel...je mozne cez rc.local to nespustat ako root ale ako uzivatel?
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: JardaP . 14. 06. 2016, 00:53:20
VBoxHeadless --startvm arch-serv
exit 0

a nespusti to masinu s nazvom arch-serv, je tam nieco zle

Prikaz VBoxHeadless mate uveden bez cesty. Stejne jako v cronu, tady nemuzete spolehat na to, ze je nastavene prostredi, jake mate v terminalu, kdyz to spustite rucne, protoze nastaveno neni.
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: nobody(ten pravej) 14. 06. 2016, 14:08:46
obecne lze pustit z root(ci jine) session neco jako (jiny)uzivatel takto:

Kód: [Vybrat]
su -c "nejakej prikaz treba s parametrama" jmeno_uzivatelenebo
Kód: [Vybrat]
sudo -u jmeno_uzivatele nejakej prikaz treba s parametrama
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: black3r 14. 06. 2016, 16:16:17
Jessie pouziva systemd.., na pustanie servicov po starte sa da pouzit ten..., service fily sa vytvaraju do /etc/systemd/system/meno_sluzby.service, priklad suboru:
Kód: [Vybrat]
[Unit]
Description=Spusti virtual

[Service]
User=meno_pouzivatela
Type=simple
ExecStart=/usr/bin/VBoxHeadless --startvm arch-serv

[Install]
WantedBy=multi-user.target

Na zapnutie sluzby sluzi systemctl start meno_sluzby, na zapnutie toho aby sa pustala po starte systemmu prikaz systemctl enable meno_sluzby..,

Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: rado3105 14. 06. 2016, 20:32:22
Jessie pouziva systemd.., na pustanie servicov po starte sa da pouzit ten..., service fily sa vytvaraju do /etc/systemd/system/meno_sluzby.service, priklad suboru:
Kód: [Vybrat]
[Unit]
Description=Spusti virtual

[Service]
User=meno_pouzivatela
Type=simple
ExecStart=/usr/bin/VBoxHeadless --startvm arch-serv

[Install]
WantedBy=multi-user.target

Na zapnutie sluzby sluzi systemctl start meno_sluzby, na zapnutie toho aby sa pustala po starte systemmu prikaz systemctl enable meno_sluzby..,

Velka vdaka funguje to, pre jeden prikaz.


Skusam vsak jednym service pustat viac strojov a nedari sa:
Citace
[Unit]
Description=Virtualbox-auto

[Service]
User=r-c
Type=oneshot
ExecStart=/bin/bash -c "/usr/bin/VBoxHeadless --startvm win-serv; /usr/bin/VBoxHeadless --startvm d1; /usr/bin/VBoxHeadless --startvm arch-serv"

[Install]
WantedBy=multi-user.target

Je mozne urobit samostatne service pre kazdy virtual, avsak zaujima ma ci je mozne nahadzat do jedneho systemd.servicu aj viac prikazov...

vdaka
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: JardaP . 14. 06. 2016, 22:50:56
Je mozne urobit samostatne service pre kazdy virtual, avsak zaujima ma ci je mozne nahadzat do jedneho systemd.servicu aj viac prikazov...

Tak si precrete ten serial, co tu ted bezi: "Nebojte se systemd". Tam se tusim psalo, ze prikazu muzete napsat, kolik se vam zachce a oddelovat je strednikem (bacha, mezery pred a po).

Ale nevim, proc byste tam chtel treba mit vice virtualu. Predstave si, jak jeden z nich potrebujete restartovat....
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: Sten 14. 06. 2016, 23:16:40
Přesně na tohle slouží v systemd šablony: napíšete jeden @.service soubor a ten pak používáte pro libovolný počet skutečných služeb :)
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: Lol Phirae 14. 06. 2016, 23:17:33
Predstave si, jak jeden z nich potrebujete restartovat....

No a? Tak normálně rebutneš celej server, ne... zvykej si, že to funguje jako ve Windows.   ;D :P
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: Sten 14. 06. 2016, 23:25:05
/etc/systemd/system/virtualbox@.service

Kód: [Vybrat]
[Unit]
Description=Virtual Box: %I

[Service]
User=meno_pouzivatela
Type=simple
ExecStart=/usr/bin/VBoxHeadless --startvm %i
ExecStop=/usr/bin/VBoxHeadless --controlvm %i poweroff

[Install]
WantedBy=multi-user.target

Pak je můžete spouštět systemctl start virtualbox@win-serv či povolit při startu systemctl enable virtualbox@d1.
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: rado3105 15. 06. 2016, 07:42:03
Je mozne urobit samostatne service pre kazdy virtual, avsak zaujima ma ci je mozne nahadzat do jedneho systemd.servicu aj viac prikazov...

Tak si precrete ten serial, co tu ted bezi: "Nebojte se systemd". Tam se tusim psalo, ze prikazu muzete napsat, kolik se vam zachce a oddelovat je strednikem (bacha, mezery pred a po).

Ale nevim, proc byste tam chtel treba mit vice virtualu. Predstave si, jak jeden z nich potrebujete restartovat....

Preco by mal byt problem s restartom? restartujem to priamo z virtualneho stroja alebo cez controlvm?
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: JardaP . 15. 06. 2016, 08:24:15
Preco by mal byt problem s restartom? restartujem to priamo z virtualneho stroja alebo cez controlvm?

Jo, ale proc se potom srat se systemd a nenastartovat to z rc.local?
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: rado3105 15. 06. 2016, 11:03:26
Preco by mal byt problem s restartom? restartujem to priamo z virtualneho stroja alebo cez controlvm?

Jo, ale proc se potom srat se systemd a nenastartovat to z rc.local?

pisal som vyssie ze z rc.local mi to nespustilo...systemd mi zatial funguje...

Kód: [Vybrat]
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/etc/bin/VBoxHeadless --startvm arch-serv
exit 0
- toto v rc.local to nespusti...
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: JardaP . 15. 06. 2016, 12:08:47
pisal som vyssie ze z rc.local mi to nespustilo...systemd mi zatial funguje...

Tak jestli mate v konfiguraku sluzby pro systemd /bin/bash -c "/usr/bin/VBoxHeadless, zatimco v rc.local mate /etc/bin/VBoxHeadless, tak se tomu moc nedivim.
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: nobody(ten pravej) 15. 06. 2016, 22:00:03
JardaP: :-D to je asi marne :) ty mu radis dat celou cestu, on da jinou, ja mu radim aby kdyz chce poustet jako jinej user to zadal pres su -c "prikaz" uzivatel a on to tam stale necha poustet jako root... ;)
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: JardaP . 15. 06. 2016, 22:51:58
Me by zajimalo, kde vzal to /etc/bin. To jsem na Linuxu jeste nezahledl. To existuje? Ani na Googlu to nejak neznaji.
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: ByCzech 16. 06. 2016, 01:08:44
Me by zajimalo, kde vzal to /etc/bin. To jsem na Linuxu jeste nezahledl. To existuje? Ani na Googlu to nejak neznaji.

Někomu prostě není shůry dáno, tak bere kde to jde :-D
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: rado3105 17. 06. 2016, 11:27:11
Kód: [Vybrat]
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

su -c "/usr/bin/VBoxHeadless --startvm win-serv" r-c && su -c "/usr/bin/VBoxHea$
exit 0

Toto mi funguje avsak spusti len prvy prikaz - win-serv...druhy uz nie...

Ako je mozne spustat dva naraz alebo s odstupom?
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: ZAJDAN 17. 06. 2016, 11:43:41
osobne bych to do toho rc.local nandal obycejne bez su a bez spojovani:

VBoxheadless -s machine1
VBoxheadless -s machine2

ja treba ani nepotrebuju zadavat celou cestu /usr/bin, ale VBoxheadless volám napřímo, pač standardní instalace Vboxu  si to sama nandá do path
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: ZAJDAN 17. 06. 2016, 11:56:59
beru zpet...to su tam musis dat, kdyz to chces spoustet jako uzivatel
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: Lol Phirae 17. 06. 2016, 12:24:23
Toto mi funguje avsak spusti len prvy prikaz - win-serv...druhy uz nie...

Tak si přečti ten druhý "příkaz" co si tam namastil... doporučuju přečíst tak 80x, možná se ti pak konečně rozbřeskne.
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: JardaP . 17. 06. 2016, 12:34:25
Kód: [Vybrat]
[quote author=rado3105 link=topic=13385.msg169381#msg169381 date=1466155631]
su -c "/usr/bin/VBoxHeadless --startvm win-serv" r-c && su -c "/usr/bin/VBoxHea$
exit 0

Toto mi funguje avsak spusti len prvy prikaz - win-serv...druhy uz nie...
[/quote]

Co takle nacpat ty prikazy do skriptu a volat ten anebo do rc.local dat tech prikazu vice, jeden prikaz na radek.

Ovsem pozor, pokud jeden z tech prikazu krachne, rc.local se ukonci a nasledujici take nenabehnou. Takze bych to asi uvedl prikazem set +e. Za poslednim spoustecim prikladem, pokud tam nekdy hodlate jeste pridat a chcete obnovit defaultni chovani, muzete dat set -e. Nebo muzete zmenit #!/bin/sh -e na #!/bin/sh, pokud nicemu nevadi, ze nastaveni bude platne hned od zacatku. Tedy doufam, ze +e je pak default - pokud neni, tak by to asi melo byt #!/bin/sh +e.

Vase reseni s && neni moc chytre, protoze pri neuspechu prvniho prikazu se neprovadi zbytek, ledaze by to bylo vasim zamerem. Pokud ne, dejte tam stredniky.
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: Lol Phirae 17. 06. 2016, 12:37:22
Vase reseni s && neni moc chytre, protoze pri neuspechu prvniho prikazu se neprovadi zbytek, ledaze by to bylo vasim zamerem. Pokud ne, dejte tam stredniky.

Vono se stejně nic neprovede, protože ten matlas není schopnej napsat správně ani jeden řádek, viz

Kód: [Vybrat]
"/usr/bin/VBoxHea$
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: rado3105 17. 06. 2016, 13:49:39
Kód: [Vybrat]
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

su -c "/usr/bin/VBoxHeadless --startvm win-serv" r-c && su -c "/usr/bin/VBoxHeadless --startvm arch-serv" r-c
exit 0

Zle som to vybral, prikaz bol zadany dobre akurat sirka terminalu nebola dostatocna a doplnilo si tam co dpolnilo. Preto znova zadavam vystup.

Mal som tie prikazy pod sebou, ten druhy - pod nebralo.
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: JardaP . 17. 06. 2016, 13:59:03
No, trea ten prvni prikaz vraci nenulovy exit kod, takze at tak, ci onak se nasledujici neprovedou. Man sh, ctete -e a &&.

Dejte do skriptu set +e, prikazy jeden pekne pod druhy a mohl byste si pod kazdy prikaz dat neco jako echo "Nazev virtualniho stroje: " $?>>/tmp/exitstatus, abyste se mohl podivat.
Název: Re:Spouštění virtuálů při bootu bez roota
Přispěvatel: nobody(ten pravej) 17. 06. 2016, 18:30:38
jeste to tu nepadlo, ale tohle je take reseni :)
1. migrovat z VBox do QEMU/KVM+Virt-Manger/libvirt
2. ve Virt-Manager aktivovat pro danej virtual "poustet pri startu"

z principu je zde vzdy jako headless + moznost spice remote ktere se na lokalu chova jako by slo o prime okno aka VirtualBox, libvirt navic resi regulerni automaticke vypinani vsech virtualu pri shutdown/restartu host systemu ;)