: O. Yuanying

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