Class: Conjure::Provision::Instance

Inherits:
Object
  • Object
show all
Defined in:
lib/conjure/provision/instance.rb

Instance Method Summary collapse

Constructor Details

#initialize(app_name, rails_env, options = {}) ⇒ Instance

Returns a new instance of Instance.



11
12
13
14
15
# File 'lib/conjure/provision/instance.rb', line 11

def initialize(app_name, rails_env, options = {})
  @app_name = app_name
  @rails_env = rails_env
  @options = options
end

Instance Method Details

#provision(options = {}) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/conjure/provision/instance.rb', line 17

def provision(options = {})
  if options[:local]
    platform = LocalDocker.new
  else
    platform = Server.create "#{@app_name}-#{@rails_env}"
  end

  database = Postgres.new(platform)
  database.start

  webserver = Passenger.new(platform, database, @rails_env, @options)
  webserver.start
  passenger_ip = webserver.ip_address

  port = platform.ip_address ? "2222" : "22"
  ip_address = platform.ip_address || passenger_ip

  host = "root@#{ip_address} -p #{port}"

  sleep 1
  remote_command host, "/etc/init.d/nginx restart"
  {
    :ip_address => ip_address,
    :port => port,
    :user => "app",
    :rails_env => @rails_env
  }
end

#remote_command(host, command) ⇒ Object



46
47
48
# File 'lib/conjure/provision/instance.rb', line 46

def remote_command(host, command)
  `ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no #{host} #{command}`
end