Sha256: 1e156c7a02cd72d64c3fbb2f66d09b73bd93f3bc5ff7babb4fd9db3a08d450fc

Contents?: true

Size: 1.54 KB

Versions: 2

Compression:

Stored size: 1.54 KB

Contents

set :proxy_files, fetch(:proxy_files,{})
namespace :setup do
  task :proxy do
    on roles(:proxy) do
      install "nginx"

      upload_as :root, file("lb-sysctl.conf"), "/etc/sysctl.d/20-web.conf"
      sudo :sysctl, "-p", "/etc/sysctl.d/20-web.conf"
      sudo :mkdir, "-p", "/etc/nginx/servers"
      upload_as :root, file("nginx/lb-nginx.conf", user: fetch(:user)), "/etc/nginx/nginx.conf", mode: 644

      sudo :rm, "-f", *%w[fastcgi_params proxy_params scgi_params uwsgi_params].map do |file|
        file.prepend("/etc/nginx/")
      end
      sudo :rm, "-rf", *%w[sites-available sites-enabled conf.d].map { |file| file.prepend("/etc/nginx/") }

      sudo "bash -c 'nginx -s reload || service nginx restart'"
    end
  end
end

after "setup:system", "setup:proxy"

namespace :deploy do
  namespace :application do
    task :proxy do
      on roles(:proxy) do
        shared_path = Pathname.new("/etc/nginx/servers/#{fetch(:application)}-#{fetch(:framework_env)}")

        sudo :mkdir, "-p", shared_path
        sudo :chown, "-R", fetch(:user), shared_path

        ssl_certificate = fetch(:ssl_certificate)
        upload_as :root, StringIO.new(ssl_certificate), shared_path.join("ssl.pem") if ssl_certificate
        fetch(:proxy_files).each_pair do |file, remote_file|
          upload_as :root, file(file), shared_path.join(remote_file)
        end

        upload_as :root, file("nginx/lb-application.conf", ssl: ssl_certificate), shared_path.join("nginx.conf")

        sudo "bash -c 'nginx -s reload || service nginx restart'"
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
capistrano-cluster-0.0.18 tasks/roles/proxy.rake
capistrano-cluster-0.0.17 tasks/roles/proxy.rake