Vzdálené ne-interaktivní vypnutí serveru

Rhinox

Vzdálené ne-interaktivní vypnutí serveru
« kdy: 15. 01. 2014, 10:06:35 »
Hledam spusob jak bych mohl z jednoho "master-serveru A" neinteraktivne (tedy pres skript) vypnout jinej "slave-server B". Presneji receno jde mi o takove "davkove" vypnuti priblizne ~20 "slave-serveru" najednou, ale pro tenhle priklad muzeme zustat u jednoho "slave-serveru".

Zatim me napadlo jenom to, ze na slave-serveru "B" (to je ten kterej chci takhle vypnout) udelam uzivatele a dam mu jako shell 'sbin/shutdown -h now'. Na master-serveru "A" se pak spusti skript kterej se pres ssh (treba s keyfiles) pripoji na slave-server "B" kde cekam ze se ihned po nalogovani spusti shutdown. Nevim jestli to takhle muze fungovat. Nebo ma nekdo nake lepsi reseni?
« Poslední změna: 15. 01. 2014, 16:01:58 od Roman Bořánek »


dustin

Re:Vzdalene ne-interaktivni vypnuti serveru...
« Odpověď #1 kdy: 15. 01. 2014, 13:12:12 »
Jistě, přesně tak. Přes SSH s klíči zavolat shutdown (halt).

Pro stejnou funcionalitu (vypnutí po automatizovaném zazálohování) na win instaluji cygwin. CLI nástroj od MS pro vypnutí win jsem jinde nenašel, ale možná jsem se jen špatně koukal.

anonym

Re:Vzdalene ne-interaktivni vypnuti serveru...
« Odpověď #2 kdy: 15. 01. 2014, 13:24:24 »
IPMI

zalezi jak "jemne" ho chces vypnout

Cek

Re:Vzdalene ne-interaktivni vypnuti serveru...
« Odpověď #3 kdy: 15. 01. 2014, 15:56:23 »
Jistě, přesně tak. Přes SSH s klíči zavolat shutdown (halt).

Pro stejnou funcionalitu (vypnutí po automatizovaném zazálohování) na win instaluji cygwin. CLI nástroj od MS pro vypnutí win jsem jinde nenašel, ale možná jsem se jen špatně koukal.

Hm, co treba "shutdown"? ;-), standardni komponenta windows....
Je potreba mit jenom prislusna prava na cilovem compu.

mkmm

Re:Vzdálené ne-interaktivní vypnutí serveru
« Odpověď #4 kdy: 15. 01. 2014, 16:19:07 »
Nebo jestli nechces vytvaret noveho uzivatele a pouzivas klice, muzes z toho skriptu rovnou rozeslat prikazy na slave servery. Pokud mas v ssh povolene prihlasovani jako root, staci rozeslat prikazy:

Kód: [Vybrat]
ssh -t root@slave "/sbin/shutdown -h now"
Pokud nemas povolene prihlaseni jako root, je treba nastavit uzivateli (prikazem sudo visudo), aby se u konkretniho prikazu nevyzadovalo heslo (napr. %sudo ALL=(ALL:ALL) NOPASSWD: /sbin/shutdown -h now) a potom rozeslat prikazy:

Kód: [Vybrat]
ssh -t uzivatel@slave "sudo -n /sbin/shutdown -h now"
Nebo muzes vytvorit dalsi, jednoucelove klice a na slave serverech pridas do ~/.ssh/authorized_keys prikaz command="...". Format souboru authorized_keys je pekne popsany vcetne prikladu v man sshd. Pak se staci pripojit s tim klicem na slave servery (ssh -i nazevklice uzivatel@slave) a vykona se presne ten zadany prikaz bez ohledu na aktualni prikaz ve volani.


Rhinox

Re:Vzdálené ne-interaktivní vypnutí serveru
« Odpověď #5 kdy: 15. 01. 2014, 20:09:43 »
Kód: [Vybrat]
ssh -t uzivatel@slave "sudo -n /sbin/shutdown -h now"

Ja chtel dat "/sbin/shutdown" jako shell proto, aby se s timhle uctem nedalo nic delat, i kdyby se nejak l/p (nebo keys) proflaklo. Nanejvys shodit servr. Nic jineho. Zadnej domovskej adresar, zadny soubory, nic. Jestli nebude fungovat /sbin/shutdown jako shell, pak to samozrejme budu muset udelat pres sudo nebo shutdown.allow

Lol Phirae

Re:Vzdálené ne-interaktivní vypnutí serveru
« Odpověď #6 kdy: 15. 01. 2014, 20:55:45 »
Ja chtel dat "/sbin/shutdown" jako shell proto, aby se s timhle uctem nedalo nic delat, i kdyby se nejak l/p (nebo keys) proflaklo. Nanejvys shodit servr. Nic jineho. Zadnej domovskej adresar, zadny soubory, nic.

No, tak si hlavně do konfigurace dej něco jako

Kód: [Vybrat]
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no

jinak to nebude moc platné.  ;)

Jestli nebude fungovat /sbin/shutdown jako shell

... tak zkus /etc/shells

j

Re:Vzdalene ne-interaktivni vypnuti serveru...
« Odpověď #7 kdy: 16. 01. 2014, 10:16:21 »
Jistě, přesně tak. Přes SSH s klíči zavolat shutdown (halt).

Pro stejnou funcionalitu (vypnutí po automatizovaném zazálohování) na win instaluji cygwin. CLI nástroj od MS pro vypnutí win jsem jinde nenašel, ale možná jsem se jen špatně koukal.

Pokud mas na widlich povoleny RPC ... tak je na dalku sejmes uplne vpohode (teda ... pokud pri tom nevytuhnou). Ovsem zdaleka nejlepsi je mit prislusne vybavenej HW (= nejaka ta karticka) a vypinat to z toho - posle to shutdown systemu ... a kdyz se mu nechce, tak ho proste vypne stejne jako kdybys ho vyrval ze site ;D.

Cek

Re:Vzdalene ne-interaktivni vypnuti serveru...
« Odpověď #8 kdy: 16. 01. 2014, 10:46:52 »
Jistě, přesně tak. Přes SSH s klíči zavolat shutdown (halt).

Pro stejnou funcionalitu (vypnutí po automatizovaném zazálohování) na win instaluji cygwin. CLI nástroj od MS pro vypnutí win jsem jinde nenašel, ale možná jsem se jen špatně koukal.

Pokud mas na widlich povoleny RPC ... tak je na dalku sejmes uplne vpohode (teda ... pokud pri tom nevytuhnou). Ovsem zdaleka nejlepsi je mit prislusne vybavenej HW (= nejaka ta karticka) a vypinat to z toho - posle to shutdown systemu ... a kdyz se mu nechce, tak ho proste vypne stejne jako kdybys ho vyrval ze site ;D.

V pripade uplne nouze a nereagovani: Virtualy jdou sestrelit v pohode z virtualizacniho prostredi, a na fyzicke stroje mi prijde jednodussi pouzivat nejake zasuvky ovladatelne po netu - jen pozor na to, ze neni dobre switch, do ktereho jsou zasuvky zapojeny, davat zrovna do tech samych zasuvek....ehm....no, kazdy si rad udela vylet autem, ne? :-D
U jednoho serveru karta - no proc ne?, u vice je to uz asi jednodussi reseni.