Class: Chef::Knife::ServerBootstrapOpenstack

Inherits:
Chef::Knife
  • Object
show all
Includes:
ServerBootstrapBase
Defined in:
lib/chef/knife/server_bootstrap_openstack.rb

Overview

Provisions an OpenStack instance and sets up an Open Source Chef Server.

Instance Method Summary collapse

Methods included from ServerBootstrapBase

included

Instance Method Details

#openstack_bootstrapObject



62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/chef/knife/server_bootstrap_openstack.rb', line 62

def openstack_bootstrap
  ENV["WEBUI_PASSWORD"] = config_val(:webui_password)
  ENV["AMQP_PASSWORD"] = config_val(:amqp_password)
  ENV["NO_TEST"] = "1" if config[:no_test]
  bootstrap = Chef::Knife::OpenstackServerCreate.new
  Chef::Knife::OpenstackServerCreate.options.keys.each do |attr|
    val = config_val(attr)
    next if val.nil?

    bootstrap.config[attr] = val
  end
  bootstrap.config[:distro] = bootstrap_distro
  bootstrap
end

#openstack_connectionObject



77
78
79
80
81
82
83
84
85
86
# File 'lib/chef/knife/server_bootstrap_openstack.rb', line 77

def openstack_connection
  @openstack_connection ||= Fog::Compute.new(
    :provider => :openstack,
    :openstack_username => config_val(:openstack_username),
    :openstack_password => config_val(:openstack_password),
    :openstack_auth_url => config_val(:openstack_auth_url),
    :openstack_tenant => config_val(:openstack_tenant),
    :openstack_region => config_val(:openstack_region)
  )
end

#runObject



54
55
56
57
58
59
60
# File 'lib/chef/knife/server_bootstrap_openstack.rb', line 54

def run
  super
  openstack_bootstrap.run
  fetch_validation_key
  create_root_client
  install_client_key
end

#server_ip_addressObject



88
89
90
91
92
93
94
# File 'lib/chef/knife/server_bootstrap_openstack.rb', line 88

def server_ip_address
  server = openstack_connection.servers.find do |s|
    s.status == 1 && s.name == config_val(:openstack_node_name)
  end

  server && server.public_ip_address
end