távoli parancsfuttatás linuxon

Adott a szitu, hogy több gépes szerverkörnyezetben szeretnénk egy gépről vezérelni a dolgokat, esetleg egy scripttel szeretnénk minden gépen minden komponenst elindítani/leállítani. Lehetne Java-san ügyeskedni, de minek túlbonyolítani a dolgot, a következő workflow működik (linuxon):

  1. Legyen ssh hozzáférés minden gépre (meglepő, mi ?!?)

  2. Generáljunk ssh kulcsot, és másoljuk szét a publikus párt a slave-ekre (nyomjuk bele az authorized_keys fájlba), a masteren (amin a távirányítószkript fog futni) meg legyen meg a privát.

  3. Ha sudo-zni kéne egy command futtatásához, akkor a sudoers fájlban / visudo-val kapcsoltathatjuk ki rá a password kérést

  4. Figyeljünk, hogy a sudoers fájlban ne legyen benne a távoli sudozás letiltása.

  5. Távoli parancsfuttatás:

    ssh user@hostname 'cmd'
    ssh user@hostname 'sudo cmd'



Mindegyik ponthoz rengeteg leírás áll rendelkezésre, ezért csak négy apró megjegyzés:

  • baromira figyeljünk a kulcsok, a .ssh könyvtár és az authorized_keys fájl jogosultságára; ha túl megengedő, akkor nem fog működni. Debugolásban segít az ssh '-v' kapcsolója.

  • sudoers fájlt sose szerkesszük közvetlenül, a visudo levalidálja mentés előtt, ezért használjuk inkább azt

  • Ha nem akarunk vi-jal szívni a visudo használatakor:

    export EDITOR=nano


  • A következő sor a sudoers fájlban éri el azt, hogy "ssh user@hostname 'sudo cmd'" parancs nem lesz engedélyezve, tehát a távoli parancsfuttatás.

    Defaults requiretty

    Ezt kikommentezve vagy kitörölve hívhatunk sudo-t távolról.

0 megjegyzés:

Megjegyzés küldése

top