またまたCapistrano
前に散々capistranoで悩んでから,はや4年.
Solaris9+Capistranoはダメだった - なぜか数学者にはワイン好きが多い
またまた,使います.
gemでFreeBSDにサクッとインストールしてみます.
ドキュメントでは
Installation
Add this line to your application's Gemfile:
gem 'capistrano', '~> 3.2.0'
And then execute:
$ bundle install
とbundlerでバージョン3.2.0以上を入れるようになっていますが,gem searchしても指定バージョンが入るようなので,gemで入れてみます.
$ gem search ^capistrano$ *** REMOTE GEMS *** capistrano (3.2.1) $ sudo su $ gem install capistrano --no-doc --no-ri Fetching: net-ssh-2.9.1.gem (100%) Successfully installed net-ssh-2.9.1 Fetching: colorize-0.7.3.gem (100%) Successfully installed colorize-0.7.3 Fetching: sshkit-1.5.1.gem (100%) Successfully installed sshkit-1.5.1 Fetching: capistrano-3.2.1.gem (100%) Capistrano 3.1 has some breaking changes, like `deploy:restart` callback should be added manually to your deploy.rb. Please, check the CHANGELOG: http://goo.gl/SxB0lr If you're upgrading Capistrano from 2.x, we recommend to read the upgrade guide: http://goo.gl/4536kB Successfully installed capistrano-3.2.1 Done installing documentation for net-ssh, colorize, sshkit, capistrano (0 sec). 4 gems installed
なんかメッセージが最期に出ました.
バージョンが上がってずいぶん変わったよって言っているみたいなので,深く気にしないでおきます.
入ったみたいです.
$ cap --version Capistrano Version: 3.2.1 (Rake Version: 10.1.0)
サーバ監視スクリプトという名目のテストプロジェクトを作成.
$ mkdir -v servers mkdir: created directory `servers' $ cd servers/ $ cap install mkdir -p config/deploy create config/deploy.rb create config/deploy/staging.rb create config/deploy/production.rb mkdir -p lib/capistrano/tasks Capified
config/deploy/production.rbにサーバを追加.
server "myserver501", user: "hadoop", roles: [:hadoop, :client] server "myserver502", user: "hadoop", roles: [:hadoop, :client]
Capfileに適当な処理を追加.
desc "Disk Info" task :disk do on roles(:all) do |host| execute "df -h" end end
実行.
$ sudo -u hadoop /usr/local/bin/cap production disk INFO[7cbc909f] Running /usr/bin/env df -h on myserver502 DEBUG[7cbc909f] Command: df -h INFO[a79eb9b6] Running /usr/bin/env df -h on myserver501 DEBUG[a79eb9b6] Command: df -h DEBUG[7cbc909f] Filesystem Size Used Avail Use% Mounted on DEBUG[7cbc909f] /dev/sda1 7.9G 863M 7.1G 11% / DEBUG[7cbc909f] tmpfs 3.9G 0 3.9G 0% /dev/shm DEBUG[7cbc909f] /dev/sda10 232G 110G 122G 48% /home DEBUG[7cbc909f] /dev/sda5 4.0G 142M 3.8G 4% /tmp DEBUG[7cbc909f] /dev/sda3 20G 7.7G 13G 39% /usr DEBUG[7cbc909f] /dev/sda6 4.0G 2.2G 1.8G 55% /var INFO[7cbc909f] Finished in 0.120 seconds with exit status 0 (successful). DEBUG[a79eb9b6] Filesystem Size Used Avail Use% Mounted on DEBUG[a79eb9b6] /dev/sda2 267G 101G 167G 38% / DEBUG[a79eb9b6] tmpfs 3.9G 0 3.9G 0% /dev/shm INFO[a79eb9b6] Finished in 0.148 seconds with exit status 0 (successful).
むちゃくちゃ見辛いw
ここを変更.
task :disk do on roles(:all) do |host| ↓ task :disk do on roles(:all), in: :sequence do |host|
実行.
$ sudo -u hadoop /usr/local/bin/cap production disk INFO[2d2bd683] Running /usr/bin/env df -h on myserver501 DEBUG[2d2bd683] Command: df -h DEBUG[2d2bd683] Filesystem Size Used Avail Use% Mounted on DEBUG[2d2bd683] /dev/sda2 267G 101G 167G 38% / DEBUG[2d2bd683] tmpfs 3.9G 0 3.9G 0% /dev/shm INFO[2d2bd683] Finished in 0.144 seconds with exit status 0 (successful). INFO[f96460ee] Running /usr/bin/env df -h on myserver502 DEBUG[f96460ee] Command: df -h DEBUG[f96460ee] Filesystem Size Used Avail Use% Mounted on DEBUG[f96460ee] /dev/sda1 7.9G 864M 7.1G 11% / DEBUG[f96460ee] tmpfs 3.9G 0 3.9G 0% /dev/shm DEBUG[f96460ee] /dev/sda10 232G 111G 121G 48% /home DEBUG[f96460ee] /dev/sda5 4.0G 142M 3.8G 4% /tmp DEBUG[f96460ee] /dev/sda3 20G 7.7G 13G 39% /usr DEBUG[f96460ee] /dev/sda6 4.0G 2.2G 1.8G 55% /var INFO[f96460ee] Finished in 0.194 seconds with exit status 0 (successful).
イイネ!