Webby でウェブサイトの deploy
Webbyで生成したウェブサイトを、 ウェブサーバにdeploy(アップロード)する方法は二つある。 rsync を使ったタスクと、sshを使ったタスクだ。
webby deploy:rsync # Deploy to the server using rsync
webby deploy:ssh # Deploy to the server using ssh
使い方は簡単で、どちらを使うにしても Sitefile に以下の記述をすれば良い。
SITE.user = 'username' # アップロードするユーザ名。
SITE.host = 'www.fraction.jp' # アップロードするサーバのホスト名。
SITE.remote_dir = '/var/www/html' # アップロード先。
実際にソースを見てみる。
deploy:rsync
deploy.rake 6-11行目
desc 'Deploy to the server using rsync'
task :rsync do
cmd = "rsync #{SITE.rsync_args.join(' ')} "
cmd << "#{SITE.output_dir}/ #{SITE.user}@#{SITE.host}:#{SITE.remote_dir}"
sh cmd
end
普通に rsync コマンドを発行している。
rsync にオプションを渡したい場合は、SITE.rsync_args にオプションを追加すれば良いことがわかる。
例えば delete オプションをつけたい場合は Sitefile で、
SITE.rsync_args << '--delete'
と書けばよい。
デフォルトで -av がついてるので、私は特にオプションは追加していない。
webby.rb 56-60行目
# Items used to deploy the website
:user => ENV['USER'] || ENV['USERNAME'],
:host => 'example.com',
:remote_dir => '/not/a/valid/dir',
:rsync_args => %w(-av),
deploy:ssh
deploy.rake 13-18行目
desc 'Deploy to the server using ssh'
task :ssh do
Rake::SshDirPublisher.new(
"#{SITE.user}@#{SITE.host}", SITE.remote_dir, SITE.output_dir
).upload
end
Rake::SshDirPublisher を使ってファイルをアップロードしてる。
これはそのまんまですな。
個人的には deploy:rsync にsshオプションつけて使った方が良い気がする。
環境
- Webby 0.9.2