Sha256: 71e2cc874ac9be2f6073dc22e0761b7ef4fb3dc62b922bcbe23c6fc0ed1c1d60

Contents?: true

Size: 1.62 KB

Versions: 5

Compression:

Stored size: 1.62 KB

Contents

module Pvcglue
  class Packages
    class Web < Pvcglue::Packages

      def installed?
        false
      end

      def install!
        Pvcglue::Packages::DirBase.apply(minion)
        Pvcglue::Packages::DirShared.apply(minion)
        Pvcglue::Packages::Rvm.apply(minion)
        Pvcglue::Packages::Ruby.apply(minion)
        Pvcglue::Packages::Bundler.apply(minion)
        Pvcglue::Packages::Secrets.apply(minion)
        connection.write_to_file_from_template(:root, 'web.nginx.conf.erb', '/etc/nginx/nginx.conf')

        set_passenger_ruby # needs to be set before rendering 'web.sites-enabled.erb'
        connection.write_to_file_from_template(:root, 'web.sites-enabled.erb', "/etc/nginx/sites-enabled/#{Pvcglue.cloud.app_and_stage_name}")


      end

      def post_install_check?
        result = connection.run_get_stdout(:root, '', 'service nginx restart')
        if $?.exitstatus == 0
          # Pvcglue.logger.debug { result }
          true
        else
          Pvcglue.logger.error { 'Unable to (re)start nginx.  Getting status...' }
          result = connection.run_get_stdout(:root, '', 'systemctl status nginx.service')
          puts result
          false
        end

        # TODO:  Ping the server as a double check.
      end

      def set_passenger_ruby
        info = connection.run_get_stdout!(user_name, '', "rvm use #{Pvcglue.configuration.ruby_version} && $(which passenger-config) --ruby-command")
        if info =~ /passenger_ruby (.*)/
          Pvcglue.cloud.passenger_ruby = $1
        else
          raise "'passenger_ruby' not found." unless Pvcglue.cloud.passenger_ruby
        end

      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
pvcglue-0.9.4 lib/pvcglue/packages/web.rb
pvcglue-0.9.3 lib/pvcglue/packages/web.rb
pvcglue-0.9.2 lib/pvcglue/packages/web.rb
pvcglue-0.9.1 lib/pvcglue/packages/web.rb
pvcglue-0.9.0 lib/pvcglue/packages/web.rb