« Capistrano を使ってみる | メイン | Capistrano でssh ユーザの自動作成 »
2009年5月20日
Capistrano を使ってみる 定常作業の自動化
昨日テストで書いてたのだが、実際に使ってみると複数処理してるときにうまくいかなかった。
動くまでのメモ。
数百台試しに(ntpq -pのみ)やったけど普通に動くようになった。
もう少しrole をうまく使うことと、定常的にやっている作業の自動化をいろいろ作ろうと思う。
さすがにcrontab -l を見る作業を数百台、手動ログインで確認したら疲れるよね。
そのときにCapistrano が便利です。
自分の記事にPuppet を載せていますが、Puppet ,Ruby を数百台インストールして動作確認
を行うことを考えると結構きつい気がしてきました。
Ruby はできるだけやる内容を明確に書くだけって話でPuppet もRuby で作っていると
言われているが、使っている会社(オープンソース系)で利用されていますが、
情報もあまり無いような。(あるにはあるが使えるかは別)
自分としては、実際に使えて自分の時間を増やすことのできるこのようなツールの
使い方は公開していこうと思います。(自分の仕事が減ったらさむいが)
いろいろやっててて実際にntpd の再起動 と、 ntpq -p 動くようにしたときのdeploy.rb
set :application, "ntp restart"
set :user, "hideki"
#set :password, "hogehoge"
set :use_sudo, false
set :default_run_options, :max_hosts => 1
default_run_options[:pty] = true
ssh_options[:config]=false
ssh_options[:auth_methods] = "publickey"
#ssh_options[:verbose] = :debugr
ssh_options[:forward_agent] = true
role :server do
[
"192.168.2.1",
"192.168.2.2",
"192.168.2.3",
"192.168.2.4",
]
end
task :ntpd_restart, :roles => [:server] do
sudo "/etc/init.d/ntpd restart"
end
task :ntpq_chk, :roles => [:server] do
run "/usr/sbin/ntpq -p"
end
[ntpd の再起動]
cap -f deploy.rb ntpd_restart
Password: (sudo のパスワードを 入力)
[ntpq -p で動作確認]
cap -f deploy.rb ntpq_chk
一番最初に複数、role, roles で複数書いた場合に、動かないときがあった。
動く時もあったのですが、原因がわからずにいました。
ssh_options[:verbose] = :debug を追加することによってどこで止まっているかわかった。
run , sudo で実行してる際に複数動いてるとうまくいってなかったのですが、
:max_hosts => n を追加したところうまく動くようになった。
パラで動く必要は全然ないので、:max_hosts => 1 で問題ないのですが、数字を増やしたら
また動かなかった。実行環境によるのかもしれません。
set :default_run_options, :max_hosts => 1 で動かないとき、
task :ntpq_chk, :max_hosts => 1, :roles => [:server] do としても使えるのでこっちで実行。
投稿者 hideki : 2009年5月20日 00:10
トラックバック
このエントリーのトラックバックURL:
http://zephel.com/hideki/cgi-bin/mt/mt-tb.fcgi/2565