bring nova attrs into nova namespace

- edited attributes
- updated readme
- updated relevant recipes to use new attrs
- updated cookbook version
- updated libvirt template
This commit is contained in:
Darren Birkett
2012-04-26 13:06:47 +01:00
parent f8117afaff
commit 2616d09bcc
10 changed files with 69 additions and 72 deletions

View File

@@ -120,33 +120,33 @@ Attributes
* `nova["ec2"]["internalURL"]` - defines the url used to access the AWS EC2 compatible API for user functions from an internal network
* `nova["ec2"]["publicURL"]` - defines the url used to access the AWS EC2 compatible API for user functions from an external network
* `volume["api_port"]` - port on which nova volumes api runs
* `volume["ipaddress"]` - ip address where nova volumes api runs
* `volume["adminURL"]` - the url used to access the nova volumes API for admin functions
* `volume["internalURL"]` - the url used to access the nova volumes API for user functions from an internal network
* `volume["publicURL"]` - the url used to access the nova volumes API for user functions from an external network
* `nova["volume"]["api_port"]` - port on which nova volumes api runs
* `nova["volume"]["ipaddress"]` - ip address where nova volumes api runs
* `nova["volume"]["adminURL"]` - the url used to access the nova volumes API for admin functions
* `nova["volume"]["internalURL"]` - the url used to access the nova volumes API for user functions from an internal network
* `nova["volume"]["publicURL"]` - the url used to access the nova volumes API for user functions from an external network
* `public["label"]` - network label to be assigned to the public network on creation
* `public["ipv4_cidr"]` - network to be created (in cidr notation eg 192.168.100.0/24)
* `public["num_networks"]` - number of networks to be created
* `public["network_size"]` - number of IP addresses to be used in this network
* `public["bridge"]` - bridge to be created for accessing the vm network (eg br100)
* `public["bridge_dev"]` - physical device on which the bridge device should be attached (eg eth2)
* `public["dns1"]` - dns server 1
* `public["dns2"]` - dns server 2
* `nova["network"]["public"]["label"]` - network label to be assigned to the public network on creation
* `nova["network"]["public"]["ipv4_cidr"]` - network to be created (in cidr notation eg 192.168.100.0/24)
* `nova["network"]["public"]["num_networks"]` - number of networks to be created
* `nova["network"]["public"]["network_size"]` - number of IP addresses to be used in this network
* `nova["network"]["public"]["bridge"]` - bridge to be created for accessing the vm network (eg br100)
* `nova["network"]["public"]["bridge_dev"]` - physical device on which the bridge device should be attached (eg eth2)
* `nova["network"]["public"]["dns1"]` - dns server 1
* `nova["network"]["public"]["dns2"]` - dns server 2
* `private["label"]` - network label to be assigned to the private network on creation
* `private["ipv4_cidr"]` - network to be created (in cidr notation eg 192.168.200.0/24)
* `private["num_networks"]` - number of networks to be created
* `private["network_size"]` - number of IP addresses to be used in this network
* `private["bridge"]` - bridge to be created for accessing the vm network (eg br200)
* `private["bridge_dev"]` - physical device on which the bridge device should be attached (eg eth3)
* `nova["network"]["private"]["label"]` - network label to be assigned to the private network on creation
* `nova["network"]["private"]["ipv4_cidr"]` - network to be created (in cidr notation eg 192.168.200.0/24)
* `nova["network"]["private"]["num_networks"]` - number of networks to be created
* `nova["network"]["private"]["network_size"]` - number of IP addresses to be used in this network
* `nova["network"]["private"]["bridge"]` - bridge to be created for accessing the vm network (eg br200)
* `nova["network"]["private"]["bridge_dev"]` - physical device on which the bridge device should be attached (eg eth3)
* `virt_type` - what hypervisor software layer to use with libvirt (eg kvm, qemu)
* `nova["libvirt"]["virt_type"]` - what hypervisor software layer to use with libvirt (eg kvm, qemu)
* `libvirt["auth_tcp"]` - the type of authentication your libvirt layer requires
* `libvirt["ssh"]["private_key"]` - private key to use if using ssh authentication to your libvirt layer
* `libvirt["ssh"]["public_key"]` - public key to use if using ssh authentication to your libvirt layer
* `nova["libvirt"]["auth_tcp"]` - the type of authentication your libvirt layer requires
* `nova["libvirt"]["ssh"]["private_key"]` - private key to use if using ssh authentication to your libvirt layer
* `nova["libvirt"]["ssh"]["public_key"]` - public key to use if using ssh authentication to your libvirt layer
Templates
=====

View File

@@ -14,38 +14,35 @@ default["nova"]["ec2"]["adminURL"] = ""
default["nova"]["ec2"]["internalURL"] = ""
default["nova"]["ec2"]["publicURL"] = ""
# TODO: This needs to be moved into the nova namespace
default["volume"]["api_port"] = 8776
default["volume"]["ipaddress"] = node["controller_ipaddress"]
default["volume"]["adminURL"] = "http://#{default["controller_ipaddress"]}:#{default["volume"]["api_port"]}/v1"
default["volume"]["internalURL"] = default["volume"]["adminURL"]
default["volume"]["publicURL"] = default["volume"]["adminURL"]
default["nova"]["volume"]["api_port"] = 8776
default["nova"]["volume"]["ipaddress"] = node["controller_ipaddress"]
default["nova"]["volume"]["adminURL"] = "http://#{default["controller_ipaddress"]}:#{default["nova"]["volume"]["api_port"]}/v1"
default["nova"]["volume"]["internalURL"] = default["nova"]["volume"]["adminURL"]
default["nova"]["volume"]["publicURL"] = default["nova"]["volume"]["adminURL"]
# TODO: This needs to be moved into the nova namespace
default["public"]["label"] = "public"
default["public"]["ipv4_cidr"] = "192.168.100.0/24"
default["public"]["num_networks"] = "1"
default["public"]["network_size"] = "255"
default["public"]["bridge"] = "br100"
default["public"]["bridge_dev"] = "eth2"
default["public"]["dns1"] = "8.8.8.8"
default["public"]["dns2"] = "8.8.4.4"
default["nova"]["network"]["public"]["label"] = "public"
default["nova"]["network"]["public"]["ipv4_cidr"] = "192.168.100.0/24"
default["nova"]["network"]["public"]["num_networks"] = "1"
default["nova"]["network"]["public"]["network_size"] = "255"
default["nova"]["network"]["public"]["bridge"] = "br100"
default["nova"]["network"]["public"]["bridge_dev"] = "eth2"
default["nova"]["network"]["public"]["dns1"] = "8.8.8.8"
default["nova"]["network"]["public"]["dns2"] = "8.8.4.4"
# TODO: This needs to be moved into the nova namespace
default["private"]["label"] = "private"
default["private"]["ipv4_cidr"] = "192.168.200.0/24"
default["private"]["num_networks"] = "1"
default["private"]["network_size"] = "255"
default["private"]["bridge"] = "br200"
default["private"]["bridge_dev"] = "eth3"
default["nova"]["network"]["private"]["label"] = "private"
default["nova"]["network"]["private"]["ipv4_cidr"] = "192.168.200.0/24"
default["nova"]["network"]["private"]["num_networks"] = "1"
default["nova"]["network"]["private"]["network_size"] = "255"
default["nova"]["network"]["private"]["bridge"] = "br200"
default["nova"]["network"]["private"]["bridge_dev"] = "eth3"
default["controller_ipaddress"] = node["ipaddress"]
# TODO: This needs to be moved into the nova namespace
default["virt_type"] = "kvm"
default["libvirt"]["auth_tcp"] = "none"
default["libvirt"]["ssh"]["private_key"] = "-----BEGIN DSA PRIVATE KEY-----
default["nova"]["libvirt"]["virt_type"] = "kvm"
default["nova"]["libvirt"]["auth_tcp"] = "none"
default["nova"]["libvirt"]["ssh"]["private_key"] = "-----BEGIN DSA PRIVATE KEY-----
MIIBvAIBAAKBgQDUIz3rg0afavOwNeTJL/112U/l4B08kzZVx+QcflxllpW4sn/f
c+j+BeQ/sm2oW67vY9O/1GbN3FIN7Um3p0F9ycpfXpEiwk4UYneJtXFNhlu9rSrK
hWsEWENoKrCFhZ4Zuu8ads0DCMkU/ErumXMvJZQpSe+8CfguYSMbXvkYhQIVAPzY
@@ -57,4 +54,4 @@ CYiYhwoK8RM+z0TNXjBIWXpHwAqX5kFhg/xPySxWS58GePmPOXDbFEYq5FRWTx47
sQqRmVHmlZZ9AhsRfs65g4LlgJyBlWPeZ0xsfShYHKLKg5RrOGn90egCFQCcok5v
1TpUNWQC3NPFkwWHkp1zrg==
-----END DSA PRIVATE KEY-----"
default["libvirt"]["ssh"]["public_key"] = "ssh-dss AAAAB3NzaC1kc3MAAACBANQjPeuDRp9q87A15Mkv/XXZT+XgHTyTNlXH5Bx+XGWWlbiyf99z6P4F5D+ybahbru9j07/UZs3cUg3tSbenQX3Jyl9ekSLCThRid4m1cU2GW72tKsqFawRYQ2gqsIWFnhm67xp2zQMIyRT8Su6Zcy8llClJ77wJ+C5hIxte+RiFAAAAFQD82LMjyqjmt7HLIS6sD7pWReuJ2QAAAIAFjrS6pwVInxqA9jZhmYtOxD86tVtSyfBP5ER5eOpqh9S92UrjeRYbDwjW/0GuH7faYVxi7YvSLO/dm8f3B3Y4SJmcfG1kSiMAsF0owVFsLw8sLYibPfK83ASj5mSBKjkvM/2dJzI78kONvI4kA8SwK0pHGa2HhcFy5jmU8C1OUQAAAIEAtFtXDovPhgvLGhFrRZjBzp3HREWW1tihsWZA4qIFib+Rd+/s3lWGCYiYhwoK8RM+z0TNXjBIWXpHwAqX5kFhg/xPySxWS58GePmPOXDbFEYq5FRWTx47sQqRmVHmlZZ9AhsRfs65g4LlgJyBlWPeZ0xsfShYHKLKg5RrOGn90eg= root@example.com"
default["nova"]["libvirt"]["ssh"]["public_key"] = "ssh-dss AAAAB3NzaC1kc3MAAACBANQjPeuDRp9q87A15Mkv/XXZT+XgHTyTNlXH5Bx+XGWWlbiyf99z6P4F5D+ybahbru9j07/UZs3cUg3tSbenQX3Jyl9ekSLCThRid4m1cU2GW72tKsqFawRYQ2gqsIWFnhm67xp2zQMIyRT8Su6Zcy8llClJ77wJ+C5hIxte+RiFAAAAFQD82LMjyqjmt7HLIS6sD7pWReuJ2QAAAIAFjrS6pwVInxqA9jZhmYtOxD86tVtSyfBP5ER5eOpqh9S92UrjeRYbDwjW/0GuH7faYVxi7YvSLO/dm8f3B3Y4SJmcfG1kSiMAsF0owVFsLw8sLYibPfK83ASj5mSBKjkvM/2dJzI78kONvI4kA8SwK0pHGa2HhcFy5jmU8C1OUQAAAIEAtFtXDovPhgvLGhFrRZjBzp3HREWW1tihsWZA4qIFib+Rd+/s3lWGCYiYhwoK8RM+z0TNXjBIWXpHwAqX5kFhg/xPySxWS58GePmPOXDbFEYq5FRWTx47sQqRmVHmlZZ9AhsRfs65g4LlgJyBlWPeZ0xsfShYHKLKg5RrOGn90eg= root@example.com"

View File

@@ -2,7 +2,7 @@ maintainer "Rackspace Hosting, Inc."
license "Apache 2.0"
description "Installs and configures Openstack"
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version "1.0.1"
version "1.0.3"
# recipe "mysql", "Includes the client recipe to configure a client"
# recipe "mysql::client", "Installs packages required for mysql clients using run_action magic"

View File

@@ -60,13 +60,13 @@ else
# Lookup keystone api ip address
keystone, something, arbitrary_value = Chef::Search::Query.new.search(:node, "roles:keystone AND chef_environment:#{node.chef_environment}")
if keystone.length > 0
Chef::Log.info("api-os-volume/keystone: using search")
Chef::Log.info("nova::api-os-volume/keystone: using search")
keystone_api_ip = keystone[0]['keystone']['api_ipaddress']
keystone_service_port = keystone[0]['keystone']['service_port']
keystone_admin_port = keystone[0]['keystone']['admin_port']
keystone_admin_token = keystone[0]['keystone']['admin_token']
else
Chef::Log.info("api-os-volume/keystone: NOT using search")
Chef::Log.info("nova::api-os-volume/keystone: NOT using search")
keystone_api_ip = node['keystone']['api_ipaddress']
keystone_service_port = node['keystone']['service_port']
keystone_admin_port = node['keystone']['admin_port']

View File

@@ -36,9 +36,9 @@ else
nova_compute_package = "nova-compute"
nova_compute_service = nova_compute_package
nova_compute_package_options = "-o Dpkg::Options::='--force-confold' --force-yes"
if node["virt_type"] == "kvm"
if node["nova"]["libvirt"]["virt_type"] == "kvm"
nova_compute_package = "nova-compute-kvm"
elsif node["virt_type"] == "qemu"
elsif node["nova"]["libvirt"]["virt_type"] == "qemu"
nova_compute_package = "nova-compute-qemu"
end
end

View File

@@ -51,7 +51,7 @@ template "/var/lib/nova/.ssh/id_dsa.pub" do
group "nova"
mode "0644"
variables(
:public_key => node['libvirt']['ssh']['public_key']
:public_key => node["nova"]["libvirt"]["ssh"]["public_key"]
)
end
@@ -62,7 +62,7 @@ template "/var/lib/nova/.ssh/id_dsa" do
group "nova"
mode "0600"
variables(
:private_key => node['libvirt']['ssh']['private_key']
:private_key => node["nova"]["libvirt"]["ssh"]["private_key"]
)
end
@@ -81,7 +81,7 @@ template "/var/lib/nova/.ssh/authorized_keys" do
group "nova"
mode "0600"
variables(
:public_key => node['libvirt']['ssh']['public_key']
:public_key => node["nova"]["libvirt"]["ssh"]["public_key"]
)
end
@@ -94,7 +94,7 @@ template "/etc/libvirt/libvirtd.conf" do
group "root"
mode "0644"
variables(
:auth_tcp => node['libvirt']['auth_tcp']
:auth_tcp => node["nova"]["libvirt"]["auth_tcp"]
)
notifies :restart, resources(:service => libvirt_service), :immediately
end

View File

@@ -108,7 +108,7 @@ template "/etc/nova/nova.conf" do
:keystone_api_ipaddress => keystone_api_ip,
:glance_api_ipaddress => glance_api_ip,
:api_port => glance_api_port,
:ipv4_cidr => node["public"]["ipv4_cidr"],
:ipv4_cidr => node["nova"]["network"]["public"]["ipv4_cidr"],
:virt_type => node["virt_type"]
)
end

View File

@@ -65,21 +65,21 @@ execute "nova-manage db sync" do
end
execute "nova-manage network create --label=public" do
command "nova-manage network create --multi_host='T' --label=#{node["public"]["label"]} --fixed_range_v4=#{node["public"]["ipv4_cidr"]} --num_networks=#{node["public"]["num_networks"]} --network_size=#{node["public"]["network_size"]} --bridge=#{node["public"]["bridge"]} --bridge_interface=#{node["public"]["bridge_dev"]} --dns1=#{node["public"]["dns1"]} --dns2=#{node["public"]["dns2"]}"
command "nova-manage network create --multi_host='T' --label=#{node["nova"]["network"]["public"]["label"]} --fixed_range_v4=#{node["nova"]["network"]["public"]["ipv4_cidr"]} --num_networks=#{node["nova"]["network"]["public"]["num_networks"]} --network_size=#{node["nova"]["network"]["public"]["network_size"]} --bridge=#{node["nova"]["network"]["public"]["bridge"]} --bridge_interface=#{node["nova"]["network"]["public"]["bridge_dev"]} --dns1=#{node["nova"]["network"]["public"]["dns1"]} --dns2=#{node["nova"]["network"]["public"]["dns2"]}"
action :run
not_if "nova-manage network list | grep #{node["public"]["ipv4_cidr"]}"
not_if "nova-manage network list | grep #{node["nova"]["network"]["public"]["ipv4_cidr"]}"
end
execute "nova-manage network create --label=private" do
command "nova-manage network create --multi_host='T' --label=#{node["private"]["label"]} --fixed_range_v4=#{node["private"]["ipv4_cidr"]} --num_networks=#{node["private"]["num_networks"]} --network_size=#{node["private"]["network_size"]} --bridge=#{node["private"]["bridge"]} --bridge_interface=#{node["private"]["bridge_dev"]}"
command "nova-manage network create --multi_host='T' --label=#{node["nova"]["network"]["private"]["label"]} --fixed_range_v4=#{node["nova"]["network"]["private"]["ipv4_cidr"]} --num_networks=#{node["nova"]["network"]["private"]["num_networks"]} --network_size=#{node["nova"]["network"]["private"]["network_size"]} --bridge=#{node["nova"]["network"]["private"]["bridge"]} --bridge_interface=#{node["nova"]["network"]["private"]["bridge_dev"]}"
action :run
not_if "nova-manage network list | grep #{node["private"]["ipv4_cidr"]}"
not_if "nova-manage network list | grep #{node["nova"]["network"]["private"]["ipv4_cidr"]}"
end
if node.has_key?(:floating) and node["floating"].has_key?(:ipv4_cidr)
if node.has_key?(:floating) and node["nova"]["network"]["floating"].has_key?(:ipv4_cidr)
execute "nova-manage floating create" do
command "nova-manage floating create --ip_range=#{node["floating"]["ipv4_cidr"]}"
command "nova-manage floating create --ip_range=#{node["nova"]["network"]["floating"]["ipv4_cidr"]}"
action :run
not_if "nova-manage floating list"
end

View File

@@ -65,9 +65,9 @@ keystone_register "Register Volume Service" do
action :create_service
end
node["volume"]["adminURL"] = "http://#{node["volume"]["ipaddress"]}:#{node["volume"]["api_port"]}/v1/%(tenant_id)s"
node["volume"]["internalURL"] = node["volume"]["adminURL"]
node["volume"]["publicURL"] = node["volume"]["adminURL"]
node["nova"]["volume"]["adminURL"] = "http://#{node["nova"]["volume"]["ipaddress"]}:#{node["nova"]["volume"]["api_port"]}/v1/%(tenant_id)s"
node["nova"]["volume"]["internalURL"] = node["nova"]["volume"]["adminURL"]
node["nova"]["volume"]["publicURL"] = node["nova"]["volume"]["adminURL"]
# Register Image Endpoint
keystone_register "Register Volume Endpoint" do
@@ -78,8 +78,8 @@ keystone_register "Register Volume Endpoint" do
auth_token keystone_admin_token
service_type "volume"
endpoint_region "RegionOne"
endpoint_adminurl node["volume"]["adminURL"]
endpoint_internalurl node["volume"]["internalURL"]
endpoint_publicurl node["volume"]["publicURL"]
endpoint_adminurl node["nova"]["volume"]["adminURL"]
endpoint_internalurl node["nova"]["volume"]["internalURL"]
endpoint_publicurl node["nova"]["volume"]["publicURL"]
action :create_endpoint
end

View File

@@ -143,7 +143,7 @@ auth_unix_rw = "none"
# Don't do this outside of a dev/test scenario. For real world
# use, always enable SASL and use the GSSAPI or DIGEST-MD5
# mechanism in /etc/sasl2/libvirt.conf
auth_tcp = "<%= node[:libvirt][:auth_tcp] %>"
auth_tcp = "<%= node["nova"]["libvirt"]["auth_tcp"] %>"
# Change the authentication scheme for TLS sockets.
#