Submit Search
Parascript
•
Download as ODP, PDF
•
1 like
•
1,334 views
Shoichi Masuhara
Follow
My first LT Kyoto.pm
Read less
Read more
1 of 27
Download now
Download to read offline
More Related Content
Parascript
1.
地味に便利な自作の鯖管コマンド
id:shoichimasuhara
2.
■ 自己紹介 はてなid:shoichimasuhara Twitter:@shoichimasuhara はてなバイト新入社員 (3月から) 鯖管 日頃はなぜかPerlの会社でRuby書いてます
3.
Kyoto.pmで鯖管?
4.
さて本題
5.
地味に便利な自作の鯖管コマンド っぽいものを作ってみた
6.
サーバってどうやって管理してますか?
(※インフラな人向け)
7.
■ 数百台ならまだしも 数千台オーダになると全台手作業とかムリ PuppetとかChefとか使ってますよね 設定ファイルをgitで管理とか サーバの設定がまちまちだと管理しにくい
8.
頑張っているものの
たまに
9.
「あれ、あのファイル、 入ってるホストと
入ってないホストが あるっぽいぞ? 今すぐリスト出せ」
10.
なんてことがあります
11.
そんな時には
12.
同時ログインSSHコマンド
13.
たとえば
14.
CSSH
15.
■ CSSH 使い方 ホストリスト渡すと一気にターミナルが開いて同時ロ
グインができる キーボードを打つと全台に入力される メリット 目視しながら同時にコマンド実行できる デメリット
16.
画面サイズ足りな
い
17.
■ 他… mssh Man見る限り機能が貧弱そう Gnu
parallelとかxargsとか コマンドライン書くのも覚えるのも面倒 他にも似たようなのはある Capistranoもできたような…? 調べるほど必要でもない…
18.
ということで作りました
19.
parascript
20.
なにはさてより D
E M O ります
21.
■ 基本設計 ssh batchモード
ssh -o BatchMode=yes StrictHostKeyCheckはしない… ssh -o StrictHostKeyChecking=no コマンドライン、スクリプトをbase64encode 向こう側でデコード echo $encoded_command |base64 -d -i|sh e c h o a G 9 z d G 5 h b W U = |b a s e 6 4 - d
22.
■ sudoするには sudo -S
でパスワードを標準入力 最後のshをsudoしたいけど、コマンド・スクリ プト本体を送るために標準入力使ってる なので実行するコマンド全部を文字列にし て、sh -c に食わせましょう まとめて書くとこんな感じ
23.
(passwd)→|sudo -S sh
-c 'echo d2hvYW1p|base64 -d -i|sh'
24.
■ SSH標準入出力と並列実行 パスワード入力の標準入力 結果の標準出力、標準エラー出力 これらを簡単に扱いたい → use
Net::SSH qw/ sshopen3 /; 並列実行 → ごく普通にParallel::ForkManager 結果とか
25.
■ 注意点・課題 base64コマンド必須 鍵認証前提 そのあたりの柔軟性どうしよう セキュリティ甘め デストリビューション混在時にちゃんと動作する
かどうか… すでにFreeBSDで不具合報告
26.
地味に便利です
27.
ご清聴ありがとうございました
Download