makotan _at_ gmail dot com

複数のサーバに一気にコマンドを送り込む

一個前のやつはこのために書いたと言っても過言じゃない位気に入った機能

makotanって名前のnodeのカレントディレクトリの一覧を見る

knife ssh "name:makotan" "ls -al" -i hoge.pem -x makotan

"name:makotan" はノードを探すコマンド(前回のネタ)
"ls -al" は実行するコマンド
-i hoge.pem はログインに必要なpemファイル
-x makotan はログインするユーザ
結果的にこんなコマンドと同じ

ssh -i hoge.pem makotan@server-makotan.home
ls -al
exit

これを使うと単発のコマンドならログインせずに実行可能
sudo rebootって書けばリブートするし、 sudo chef-client って書けばchef-clientがそのnodeで実行できる
便利やん!

特定のroleを持つnodeのrecipeを更新する

本番サーバなどで通常はchefを常駐させてないけど、メンテナンスで一気に更新したいときとかにはこのパターンかな

knife ssh "role:makotan" "sudo chef-client" -i hoge.pem -x makotan

結果は手元のコンソールに全部出るのでログが必要ならそれで代用
roleがmakotanのnodeにログインしてrecipeで更新できる
特定の環境を指定して実行なんて事も検索条件次第で設定可能
nodeの詳細情報を取得できるのでOSがUbuntuだけとかって事も簡単なので、Ubuntuだけ sudo apt-get updateなんてことも出来る


参考

毎度の事ながらここに全部書いてる
http://docs.opscode.com/knife_ssh.html
あと、複数サーバの同時実行もできるみたい

感想

複数台のサーバにログインして云々を対応してくれるツール類は結構あるけど、検索条件次第でいろんな事が自由に出来るツールは良いな〜って思った。
これなら少ないメンテナンス時間で複数サーバを一気に修正するのも楽だね〜