Merge branch 'vlan' of https://github.com/jaypipes/cookbook-nova into jaypipes-vlan

This commit is contained in:
Jay Pipes
2012-10-23 13:06:14 -04:00
6 changed files with 201 additions and 76 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
*.swp

202
README.md
View File

@@ -108,94 +108,156 @@ nova-scheduler-patch
Attributes Attributes
========== ==========
* `nova["keystone_service_chef_role"]` - The name of the Chef role that sets up the Keystone Service API * `default["nova"]["keystone_service_chef_role"]` - The name of the Chef role that sets up the Keystone Service API
* `nova["nova_setup_chef_role"]` - The name of the Chef role that sets up Nova * `default["nova"]["nova_setup_chef_role"]` - The name of the Chef role that sets up Nova
* `nova["patch_files_on_disk"]` - Boolean for patching files on disk * `default["nova"]["patch_files_on_disk"]` - Boolean for patching files on disk
* `nova["db"]["name"]` - Name of nova database * `default["nova"]["db"]["name"]` - Name of nova database
* `nova["db"]["username"]` - Username for nova database access * `default["nova"]["db"]["username"]` - Username for nova database access
* `nova["db"]["password"]` - Password for nova database access * `default["nova"]["db"]["password"]` - Password for nova database access
NOTE: db password is no longer set statically in the attributes file, but securely/randomly in the nova-common recipe NOTE: db password is no longer set statically in the attributes file, but securely/randomly in the nova-common recipe
* `nova["service_tenant_name"]` - Tenant name used by nova when interacting with keystone * `default["nova"]["service_tenant_name"]` - Tenant name used by nova when interacting with keystone
* `nova["service_user"]` - User name used by nova when interacting with keystone * `default["nova"]["service_user"]` - User name used by nova when interacting with keystone
* `nova["service_pass"]` - User password used by nova when interacting with keystone * `default["nova"]["service_pass"]` - User password used by nova when interacting with keystone
NOTE: service password is no longer set statically in the attributes file, but securely/randomly in the *api recipes NOTE: service password is no longer set statically in the attributes file, but securely/randomly in the `*api` recipes
* `nova["service_role"]` - User role used by nova when interacting with keystone * `default["nova"]["service_role"]` - User role used by nova when interacting with keystone
* `nova["compute"]["api"]["protocol"]` - Protocol used for the OS API * `default["nova"]["compute"]["api"]["protocol"]` - Protocol used for the OS API
* `nova["compute"]["api"]["port"]` - Port on which OS API runs * `default["nova"]["compute"]["api"]["port"]` - Port on which OS API runs
* `nova["compute"]["api"]["version"]` - Version of the OS API used * `default["nova"]["compute"]["api"]["version"]` - Version of the OS API used
* `nova["compute"]["adminURL"]` - URL used to access the OS API for admin functions * `default["nova"]["compute"]["adminURL"]` - URL used to access the OS API for admin functions
* `nova["compute"]["internalURL"]` - URL used to access the OS API for user functions from an internal network * `default["nova"]["compute"]["internalURL"]` - URL used to access the OS API for user functions from an internal network
* `nova["compute"]["publicURL"]` - URL used to access the OS API for user functions from an external network * `default["nova"]["compute"]["publicURL"]` - URL used to access the OS API for user functions from an external network
* `nova["config"]["availability_zone"]` - Nova availability zone. Usually set at the node level to place a compute node in another az * `default["nova"]["config"]["availability_zone"]` - Nova availability zone. Usually set at the node level to place a compute node in another az
* `nova["config"]["default_schedule_zone"]` - The availability zone to schedule instances in when no az is specified in the request * `default["nova"]["config"]["default_schedule_zone"]` - The availability zone to schedule instances in when no az is specified in the request
* `nova["config"]["force_raw_images"]` - Convert all images used as backing files for instances to raw (we default to false) * `default["nova"]["config"]["force_raw_images"]` - Convert all images used as backing files for instances to raw (we default to false)
* `nova["config"]["allow_same_net_traffic"]` - Disable security groups for internal networks (we default to true) * `default["nova"]["config"]["allow_same_net_traffic"]` - Disable security groups for internal networks (we default to true)
* `nova["config"]["osapi_max_limit"]` - The maximum number of items returned in a single response from a collection resource (default is 1000) * `default["nova"]["config"]["osapi_max_limit"]` - The maximum number of items returned in a single response from a collection resource (default is 1000)
* `nova["config"]["cpu_allocation_ratio"]` - Virtual CPU to Physical CPU allocation ratio (default 16.0) * `default["nova"]["config"]["cpu_allocation_ratio"]` - Virtual CPU to Physical CPU allocation ratio (default 16.0)
* `nova["config"]["ram_allocation_ratio"]` - Virtual RAM to Physical RAM allocation ratio (default 1.5) * `default["nova"]["config"]["ram_allocation_ratio"]` - Virtual RAM to Physical RAM allocation ratio (default 1.5)
* `nova["config"]["snapshot_image_format"]` - Snapshot image format (valid options are : raw, qcow2, vmdk, vdi [we default to qcow2]). * `default["nova"]["config"]["snapshot_image_format"]` - Snapshot image format (valid options are : raw, qcow2, vmdk, vdi [we default to qcow2]).
* `nova["config"]["start_guests_on_host_boot"]` - Whether to restart guests when the host reboots * `default["nova"]["config"]["start_guests_on_host_boot"]` - Whether to restart guests when the host reboots
* `nova["config"]["resume_guests_state_on_host_boot"]` - Whether to start guests that were running before the host rebooted * `default["nova"]["config"]["resume_guests_state_on_host_boot"]` - Whether to start guests that were running before the host rebooted
* `nova["ec2"]["api"]["protocol"]` - Protocol used for the AWS EC2 compatible API Service Endpoint Attributes
* `nova["ec2"]["api"]["port"]` - Port on which AWS EC2 compatible API runs ---------------------------
* `nova["ec2"]["api"]["admin_path"]` - Path for admin functions in the AWS EC2 compatible API
* `nova["ec2"]["api"]["cloud_path"]` - Path for service functions in the AWS EC2 compatible API
* `nova["ec2"]["adminURL"]` - URL used to access the AWS EC2 compatible API for admin functions Each Nova service endpoint is listed as a Hash in the `default["nova"]["services"]` Hash. Each
* `nova["ec2"]["internalURL"]` - URL used to access the AWS EC2 compatible API for user functions from an internal network Hash that describes a service endpoint should contain **either** a `uri` key **OR** contain
* `nova["ec2"]["publicURL"]` - URL used to access the AWS EC2 compatible API for user functions from an external network keys for `scheme`, `port`, `path`, and `network`, where `network` is something like "public" or "private" and
refers to a Hash of network information that is used by the `osops-utils::ip_location` library to determine
an IP address in a named network.
* `nova["xvpvnc"]["proxy_bind_host"]` - IP address which the xvpvncproxy binds to Here are the defaults:
* `nova["xvpvnc"]["proxy_bind_port"]` - Port on which the xvpvncproxy runs
* `nova["xvpvnc"]["ip_address"]` - IP address for accessing the xvpvncproxy service
* `nova["xvpvnc"]["proxy_base_url"]` - Base URL returned for xvpvncproxy requests
* `nova["novnc"]["proxy_bind_port"]` - Port on which the novncproxy runs * `default["nova"]["services"]["api"]["scheme"]` = "http" - Protocol used for the OpenStack Compute API endpoint
* `nova["novnc"]["proxy_base_url"]` - Base URL returned for novncproxy requests * `default["nova"]["services"]["api"]["port"]` = "8774" - Port on which the OpenStack Compute API runs
* `default["nova"]["services"]["api"]["network"]` = "public" - The name of the network the IP address for this endpoint should come from
* `default["nova"]["services"]["api"]["path"]` = "/v2/`%(tenant_id)s`" - The path after host to this endpoint
* `nova["volume"]["api_port"]` - Port on which nova volumes API runs * `default["nova"]["services"]["ec2-public"]["scheme"]` = "http" - Protocol used for the AWS EC2 compatible API endpoint
* `nova["volume"]["ipaddress"]` - IP address where nova volumes API runs * `default["nova"]["services"]["ec2-public"]["port"]` = "8773" - Port on which AWS EC2 compatible API runs
* `nova["volume"]["adminURL"]` - URL used to access the nova volumes API for admin functions * `default["nova"]["services"]["ec2-public"]["network"]` = "public" - The name of the network the IP address for this endpoint should come from
* `nova["volume"]["internalURL"]` - URL used to access the nova volumes API for user functions from an internal network * `default["nova"]["services"]["ec2-public"]["path"]` = "/services/Cloud" - The path after host to this endpoint
* `nova["volume"]["publicURL"]` - URL used to access the nova volumes API for user functions from an external network
* `nova["network"]["public"]["label"]` - Network label to be assigned to the public network on creation * `default["nova"]["services"]["ec2-admin"]["scheme"]` = "http" - Protocol used for the AWS EC2 compatible Admin API endpoint
* `nova["network"]["public"]["ipv4_cidr"]` - Network to be created (in CIDR notation, e.g., 192.168.100.0/24) * `default["nova"]["services"]["ec2-admin"]["port"]` = "8773" - Port on which AWS EC2 compatible Admin API runs
* `nova["network"]["public"]["num_networks"]` - Number of networks to be created * `default["nova"]["services"]["ec2-admin"]["network"]` = "public" - The name of the network the IP address for this endpoint should come from
* `nova["network"]["public"]["network_size"]` - Number of IP addresses to be used in this network * `default["nova"]["services"]["ec2-admin"]["path"]` = "/services/Admin" - The path after host to this endpoint
* `nova["network"]["public"]["bridge"]` - Bridge to be created for accessing the VM network (e.g., br100)
* `nova["network"]["public"]["bridge_dev"]` - Physical device on which the bridge device should be attached (e.g., eth2)
* `nova["network"]["public"]["dns1"]` - DNS server 1
* `nova["network"]["public"]["dns2"]` - DNS server 2
* `nova["network"]["private"]["label"]` - Network label to be assigned to the private network on creation * `default["nova"]["services"]["xvpvnc"]["scheme"]` = "http" - Protocol used for the xvp VNC Proxy endpoint
* `nova["network"]["private"]["ipv4_cidr"]` - Network to be created (in CIDR notation e.g., 192.168.200.0/24) * `default["nova"]["services"]["xvpvnc"]["port"]` = "6081" - Port on which xvp VNC Proxy runs
* `nova["network"]["private"]["num_networks"]` - Number of networks to be created * `default["nova"]["services"]["xvpvnc"]["network"]` = "nova" - The name of the network the IP address for this endpoint should come from
* `nova["network"]["private"]["network_size"]` - Number of IP addresses to be used in this network * `default["nova"]["services"]["xvpvnc"]["path"]` = "/console" - The path after host to this endpoint
* `nova["network"]["private"]["bridge"]` - Bridge to be created for accessing the VM network (e.g., br200)
* `nova["network"]["private"]["bridge_dev"]` - Physical device on which the bridge device should be attached (e.g., eth3)
* `nova["libvirt"]["virt_type"]` - What hypervisor software layer to use with libvirt (e.g., kvm, qemu) * `default["nova"]["services"]["novnc"]["scheme"]` = "http" - Protocol used for the noVNC Proxy endpoint
* `default["nova"]["services"]["novnc"]["port"]` = "6080" - Port on which noVNC Proxy runs
* `default["nova"]["services"]["novnc"]["network"]` = "nova" - The name of the network the IP address for this endpoint should come from
* `default["nova"]["services"]["novnc"]["path"]` = `"/vnc_auto.html"` - The path after host to this endpoint
* `nova["libvirt"]["vncserver_listen"]` - IP address on the hypervisor that libvirt listens for VNC requests on * `default["nova"]["services"]["novnc-server"]["scheme"]` = "http" - Protocol used for the noVNC Server endpoint
* `nova["libvirt"]["vncserver_proxyclient_address"]` - IP address on the hypervisor that libvirt exposes for VNC requests on (should be the same as vncserver_listen) * `default["nova"]["services"]["novnc-server"]["port"]` = "6080" - Port on which noVNC Server runs
* `default["nova"]["services"]["novnc-server"]["network"]` = "nova" - The name of the network the IP address for this endpoint should come from
* `default["nova"]["services"]["novnc-server"]["path"]` = `"/vnc_auto.html"` - The path after host to this endpoint
* `nova["libvirt"]["auth_tcp"]` - Type of authentication your libvirt layer requires * `default["nova"]["services"]["volume"]["scheme"]` = "http" - Protocol used for the OpenStack Volume API endpoint
* `nova["libvirt"]["ssh"]["private_key"]` - Private key to use if using SSH authentication to your libvirt layer * `default["nova"]["services"]["volume"]["port"]` = "8776" - Port on which OpenStack Volume API runs
* `nova["libvirt"]["ssh"]["public_key"]` - Public key to use if using SSH authentication to your libvirt layer * `default["nova"]["services"]["volume"]["network"]` = "public" - The name of the network the IP address for this endpoint should come from
* `default["nova"]["services"]["volume"]["path"]` = "/v1/`%(tenant_id)s`" - The path after host to this endpoint
* `nova["scheduler"]["scheduler_driver"]` - the scheduler driver to use Networking Attributes
---------------------
Basic networking configuration is controlled with the following attributes:
* `default["nova"]["network"]["network_manager"]` - Defaults to "nova.network.manager.FlatDHCPManager". Set to "nova.network.manager.VlanManager" to configure VLAN Networking.
* `default["nova"]["network"]["fixed_range"]` - The CIDR for the network that VMs will be assigned to. In the case of VLAN Networking, this should be the network in which all VLAN networks that tenants are assigned will fit.
* `default["nova"]["network"]["dmz_cidr"]` - A CIDR for the range of IP addresses that will NOT be SNAT'ed by the nova network controller
* `default["nova"]["network"]["public_interface"]` - Defaults to eth0. Refers to the network interface used for VM addresses in the `fixed_range`.
* `default["nova"]["network"]["vlan_interface"]` - Defaults to eth0. Refers to the network interface used for VM addresses when VMs are assigned in a VLAN subnet.
You can have the cookbook automatically create networks in Nova for you by adding a Hash to the `default["nova"]["networks"]` Array.
**Note**: The `nova::nova-setup` recipe contains the code that creates these pre-defined networks.
Each Hash must contain the following keys:
* `ipv4_cidr` - The CIDR representation of the subnet. Supplied to the nova-manage network create command as `--fixed_ipv4_range`
* `label` - A name for the network
In addition to the above required keys in the Hash, the below keys are optional:
* `num_networks` - Passed as-is to `nova-manage network create` as the `--num_networks` option. This overrides the default `num_networks` nova.conf value.
* `network_size` - Passed as-is to `nova-manage network create` as the `--network_size` option. This overrides the default `network_size` nova.conf value.
* `bridge` - Passed as-is to `nova-manage network create` as the `--bridge` option.
* `bridge_interface` -- Passed as-is to `nova-manage network create` as the `--bridge_interface` option. This overrides the default `vlan_interface` nova.conf value.
* `dns1` - Passed as-is to `nova-manage network create` as the `--dns1` option.
* `dns2` - Passed as-is to `nova-manage network create` as the `--dns2` option.
* `multi_host` - Passed as-is to `nova-manage network create` as the `--multi_host` option. Values should be either 'T' or 'F'
* `vlan` - Passed as-is to `nova-manage network create` as the `--vlan` option. Should be the VLAN tag ID.
By default, the `default["nova"]["networks"]` array has two networks:
* `default["nova"]["networks"]["public"]["label"]` - Network label to be assigned to the public network on creation
* `default["nova"]["networks"]["public"]["ipv4_cidr"]` - Network to be created (in CIDR notation, e.g., 192.168.100.0/24)
* `default["nova"]["networks"]["public"]["num_networks"]` - Number of networks to be created
* `default["nova"]["networks"]["public"]["network_size"]` - Number of IP addresses to be used in this network
* `default["nova"]["networks"]["public"]["bridge"]` - Bridge to be created for accessing the VM network (e.g., br100)
* `default["nova"]["networks"]["public"]["bridge_dev"]` - Physical device on which the bridge device should be attached (e.g., eth2)
* `default["nova"]["networks"]["public"]["dns1"]` - DNS server 1
* `default["nova"]["networks"]["public"]["dns2"]` - DNS server 2
* `default["nova"]["networks"]["private"]["label"]` - Network label to be assigned to the private network on creation
* `default["nova"]["networks"]["private"]["ipv4_cidr"]` - Network to be created (in CIDR notation e.g., 192.168.200.0/24)
* `default["nova"]["networks"]["private"]["num_networks"]` - Number of networks to be created
* `default["nova"]["networks"]["private"]["network_size"]` - Number of IP addresses to be used in this network
* `default["nova"]["networks"]["private"]["bridge"]` - Bridge to be created for accessing the VM network (e.g., br200)
* `default["nova"]["networks"]["private"]["bridge_dev"]` - Physical device on which the bridge device should be attached (e.g., eth3)
Libvirt Configuration Attributes
---------------------------------
* `default["nova"]["libvirt"]["virt_type"]` - What hypervisor software layer to use with libvirt (e.g., kvm, qemu)
* `default["nova"]["libvirt"]["vncserver_listen"]` - IP address on the hypervisor that libvirt listens for VNC requests on
* `default["nova"]["libvirt"]["vncserver_proxyclient_address"]` - IP address on the hypervisor that libvirt exposes for VNC requests on (should be the same as `vncserver_listen`)
* `default["nova"]["libvirt"]["auth_tcp"]` - Type of authentication your libvirt layer requires
* `default["nova"]["libvirt"]["ssh"]["private_key"]` - Private key to use if using SSH authentication to your libvirt layer
* `default["nova"]["libvirt"]["ssh"]["public_key"]` - Public key to use if using SSH authentication to your libvirt layer
Scheduler Configuration Attributes
----------------------------------
* `default["nova"]["scheduler"]["scheduler_driver"]` - the scheduler driver to use
NOTE: The filter scheduler currently does not work with ec2. NOTE: The filter scheduler currently does not work with ec2.
* `nova["scheduler"]["default_filters"]` - a list of filters enabled for schedulers that support them. * `default["nova"]["scheduler"]["default_filters"]` - a list of filters enabled for schedulers that support them.
* `nova["syslog"]["use"]` - Should nova log to syslog? Syslog Configuration Attributes
* `nova["syslog"]["facility"]` - Which facility nova should use when logging in python style (for example, LOG_LOCAL1) -------------------------------
* `nova["syslog"]["config_facility"]` - Which facility nova should use when logging in rsyslog style (for example, local1)
* `default["nova"]["syslog"]["use"]` - Should nova log to syslog?
* `default["nova"]["syslog"]["facility"]` - Which facility nova should use when logging in python style (for example, `LOG_LOCAL1`)
* `default["nova"]["syslog"]["config_facility"]` - Which facility nova should use when logging in rsyslog style (for example, local1)
Templates Templates
===== =====

View File

@@ -70,7 +70,8 @@ default["nova"]["networks"] = [
"bridge" => "br100", "bridge" => "br100",
"bridge_dev" => "eth2", "bridge_dev" => "eth2",
"dns1" => "8.8.8.8", "dns1" => "8.8.8.8",
"dns2" => "8.8.4.4" "dns2" => "8.8.4.4",
"multi_host" => 'T'
}, },
{ {
"label" => "private", "label" => "private",
@@ -80,14 +81,53 @@ default["nova"]["networks"] = [
"bridge" => "br200", "bridge" => "br200",
"bridge_dev" => "eth3", "bridge_dev" => "eth3",
"dns1" => "8.8.8.8", "dns1" => "8.8.8.8",
"dns2" => "8.8.4.4" "dns2" => "8.8.4.4",
"multi_host" => 'T'
} }
] ]
# For VLAN Networking, do the following:
#
# default["nova"]["network"]["network_manager"] = "nova.network.manager.VlanManager"
# default["nova"]["network"]["vlan_interface"] = "eth1" # Or "eth2", "bond1", etc...
# # The fixed_range setting is the **entire** subnet/network that all your VLAN
# # networks will fit inside.
# default["nova"]["network"]["fixed_range"] = "10.0.0.0/8" # Or smaller for smaller deploys...
#
# In addition to the above, you typically either want to do one of the following:
#
# 1) Set default["nova"]["networks"] to an empty Array ([]) and create your
# VLAN networks (using nova-manage network create) **when you create a tenant**.
#
# 2) Set default["nova"]["networks"] to an Array of VLAN networks that get created
# **without a tenant assignment** for tenants to use when they are created later.
# Such an array might look like this:
#
# default["nova"]["networks"] = [
# {
# "label": "vlan100",
# "vlan": "100",
# "ipv4_cidr": "10.0.100.0/24"
# },
# {
# "label": "vlan101",
# "vlan": "101",
# "ipv4_cidr": "10.0.101.0/24"
# },
# {
# "label": "vlan102",
# "vlan": "102",
# "ipv4_cidr": "10.0.102.0/24"
# },
# ]
default["nova"]["network"]["fixed_range"] = default["nova"]["networks"][0]["ipv4_cidr"] default["nova"]["network"]["fixed_range"] = default["nova"]["networks"][0]["ipv4_cidr"]
# DMZ CIDR is a range of IP addresses that should not
# have their addresses SNAT'ed by the nova network controller
default["nova"]["network"]["dmz_cidr"] = "10.128.0.0/24" default["nova"]["network"]["dmz_cidr"] = "10.128.0.0/24"
default["nova"]["network"]["network_manager"] = "nova.network.manager.FlatDHCPManager" default["nova"]["network"]["network_manager"] = "nova.network.manager.FlatDHCPManager"
default["nova"]["network"]["public_interface"] = "eth0" default["nova"]["network"]["public_interface"] = "eth0"
default["nova"]["network"]["vlan_interface"] = "eth0"
default["nova"]["scheduler"]["scheduler_driver"] = "nova.scheduler.filter_scheduler.FilterScheduler" default["nova"]["scheduler"]["scheduler_driver"] = "nova.scheduler.filter_scheduler.FilterScheduler"
default["nova"]["scheduler"]["default_filters"] = ["AvailabilityZoneFilter", default["nova"]["scheduler"]["default_filters"] = ["AvailabilityZoneFilter",

View File

@@ -98,6 +98,7 @@ template "/etc/nova/nova.conf" do
"glance_api_port" => glance_endpoint["port"], "glance_api_port" => glance_endpoint["port"],
"iscsi_helper" => platform_options["iscsi_helper"], "iscsi_helper" => platform_options["iscsi_helper"],
"public_interface" => node["nova"]["network"]["public_interface"], "public_interface" => node["nova"]["network"]["public_interface"],
"vlan_interface" => node["nova"]["network"]["vlan_interface"],
"network_manager" => node["nova"]["network"]["network_manager"], "network_manager" => node["nova"]["network"]["network_manager"],
"scheduler_driver" => node["nova"]["scheduler"]["scheduler_driver"], "scheduler_driver" => node["nova"]["scheduler"]["scheduler_driver"],
"scheduler_default_filters" => node["nova"]["scheduler"]["default_filters"].join(","), "scheduler_default_filters" => node["nova"]["scheduler"]["default_filters"].join(","),

View File

@@ -52,7 +52,30 @@ end
node["nova"]["networks"].each do |net| node["nova"]["networks"].each do |net|
execute "nova-manage network create --label=#{net['label']}" do execute "nova-manage network create --label=#{net['label']}" do
command "nova-manage network create --multi_host='T' --label=#{net['label']} --fixed_range_v4=#{net['ipv4_cidr']} --num_networks=#{net['num_networks']} --network_size=#{net['network_size']} --bridge=#{net['bridge']} --bridge_interface=#{net['bridge_dev']} --dns1=#{net['dns1']} --dns2=#{net['dns2']}" # The only two required keys in each network Hash
# are "label" and "ipv4_cidr".
cmd = "nova-manage network create --label=#{net['label']} --fixed_range_v4=#{net['ipv4_cidr']}"
if net.has_key?("multi_host")
cmd += " --multi-host='#{net['multi_host']}'"
if net.has_key?("num_networks")
cmd += " --num-networks=#{net['num_networks']}"
if net.has_key?("network_size")
cmd += " --network-size=#{net['network_size']}"
if net.has_key?("bridge")
cmd += " --bridge=#{net['bridge']}"
# Older attributes have the key as "bridge_dev" instead
# of "bridge_interface"...
if net.has_key?("bridge_interface") or net.has_key?("bridge_dev")
val = net.has_key?("bridge_interface") ? net["bridge_interface"] : net["bridge_dev"]
cmd += " --bridge_interface=#{val}"
if net.has_key?("dns1")
cmd += " --dns1=#{net['dns1']}"
if net.has_key?("dns2")
cmd += " --dns2=#{net['dns2']}"
if net.has_key?("vlan")
cmd += " --vlan=#{net['vlan']}"
command cmd
action :run action :run
not_if "nova-manage network list | grep #{net['ipv4_cidr']}" not_if "nova-manage network list | grep #{net['ipv4_cidr']}"
end end
@@ -65,4 +88,3 @@ if node.has_key?(:floating) and node["nova"]["network"]["floating"].has_key?(:ip
not_if "nova-manage floating list" not_if "nova-manage floating list"
end end
end end

View File

@@ -34,8 +34,6 @@ default_schedule_zone=<%= @default_schedule_zone %>
##### NETWORK ##### ##### NETWORK #####
network_manager=<%= @network_manager %> network_manager=<%= @network_manager %>
#--flat_interface=eth1
#--flat_network_dhcp_start=10.20.1.2
public_interface=<%= @public_interface %> public_interface=<%= @public_interface %>
fixed_range=<%= @fixed_range %> fixed_range=<%= @fixed_range %>
dmz_cidr=<%= @dmz_cidr %> dmz_cidr=<%= @dmz_cidr %>
@@ -52,6 +50,7 @@ libvirt_use_virtio_for_bridges=false
<% else -%> <% else -%>
libvirt_use_virtio_for_bridges=true libvirt_use_virtio_for_bridges=true
<% end -%> <% end -%>
vlan_interface=<%= @vlan_interface %>
##### GLANCE ##### ##### GLANCE #####
image_service=nova.image.glance.GlanceImageService image_service=nova.image.glance.GlanceImageService