単一のコマンドまたはスクリプトで複数のLinuxシステムをシャットダウンするには?

単一のコマンドまたはスクリプトで複数のLinuxシステムをシャットダウンするには?

私は10台以上のLinuxマシンを持っています。単一のスクリプトを使用してすべてのシステムをシャットダウンするには?

パスワードとユーザーはすべてのコンピュータで同じです。

答え1

アンサーブルをお試しください。

アンサーブルインストール:

apt-get install ansible

ホストファイルにホストを追加します。

vim /etc/ansible/hosts
server1
server2
server3

SSHキーを生成し、リモートサーバーに追加します。

ssh-keygen
cat /etc/ansible/hosts | xargs -i ssh-copy-id {}

サーバーでshutdownを実行します。

ansible all -m shell -a "shutdown -h now"

シャットダウンの前後に次のコマンドを使用して、ホストの可用性を確認できます。

ansible all -m ping

ソース1ソース2

答え2

これを行う可能性はたくさんあります。

1つのオプションは、パスワードを要求せずにSSHにパスワードの代わりにSSHキーペアを使用することです。その後、次のことができます。

#!/bin/bash

for server; do ssh $server 'halt; exit'; done

使用法:

./script.bash server1 server2 1.2.3.4

または、次のツールを使用してより良いアプローチを使用することができます。またはパフパフ

答え3

ユーザー「shutdown」のSSHキーを設定します。 /etc/passwd を見ると、このユーザーのデフォルトシェルが /sbin/shutdown であることがわかります。したがって、ログイン中にシャットダウンコマンドが実行されます。

答え4

生地を使用しています(http://www.fabfile.org/)。 Pythonスクリプトを作成し、リモートシステムで実行できます。高速で、リモートシステム管理に適しています。

関連情報