quantum support
This commit is contained in:
@@ -7,7 +7,10 @@ mod 'puppetlabs/keystone', :git => 'git://github.com/bodepd/puppetlabs-keystone'
|
|||||||
mod 'puppetlabs/horizon', :git => 'git://github.com/bodepd/puppetlabs-horizon', :ref => 'folsom'
|
mod 'puppetlabs/horizon', :git => 'git://github.com/bodepd/puppetlabs-horizon', :ref => 'folsom'
|
||||||
mod 'puppetlabs/swift', :git => 'git://github.com/puppetlabs/puppetlabs-swift'
|
mod 'puppetlabs/swift', :git => 'git://github.com/puppetlabs/puppetlabs-swift'
|
||||||
mod 'bodepd/devstack', :git => 'git://github.com/bodepd/puppetlabs-devstack'
|
mod 'bodepd/devstack', :git => 'git://github.com/bodepd/puppetlabs-devstack'
|
||||||
|
mod 'puppet/cinder', :git => 'git://github.com/bodepd/puppet-cinder'
|
||||||
|
mod 'puppet/quantum', :git => 'git://github.com/EmilienM/openstack-quantum-puppet/'
|
||||||
# openstack middleware
|
# openstack middleware
|
||||||
|
mod 'puppet-vswitch', :git => 'https://github.com/ekarlso/puppet-vswitch'
|
||||||
mod 'puppetlabs/rabbitmq', :git => 'git://github.com/puppetlabs/puppetlabs-rabbitmq'
|
mod 'puppetlabs/rabbitmq', :git => 'git://github.com/puppetlabs/puppetlabs-rabbitmq'
|
||||||
mod 'puppetlabs/mysql', :git => 'git://github.com/puppetlabs/puppetlabs-mysql'
|
mod 'puppetlabs/mysql', :git => 'git://github.com/puppetlabs/puppetlabs-mysql'
|
||||||
mod 'puppetlabs/git', :git => 'git://github.com/puppetlabs/puppetlabs-git'
|
mod 'puppetlabs/git', :git => 'git://github.com/puppetlabs/puppetlabs-git'
|
||||||
@@ -22,4 +25,4 @@ mod 'puppetlabs/stdlib', :git => 'git://github.com/puppetlabs/puppetlabs-stdlib'
|
|||||||
mod 'puppetlabs/apt', :git => 'git://github.com/puppetlabs/puppetlabs-apt'
|
mod 'puppetlabs/apt', :git => 'git://github.com/puppetlabs/puppetlabs-apt'
|
||||||
mod 'ripienaar/concat', :git => 'git://github.com/ripienaar/puppet-concat'
|
mod 'ripienaar/concat', :git => 'git://github.com/ripienaar/puppet-concat'
|
||||||
mod 'duritong/sysctl', :git => 'git://github.com/duritong/puppet-sysctl.git'
|
mod 'duritong/sysctl', :git => 'git://github.com/duritong/puppet-sysctl.git'
|
||||||
mod 'cprice/inifile', :git => 'git://github.com/cprice-puppet/puppetlabs-inifile'
|
mod 'cprice/inifile', :git => 'git://github.com/bodepd/puppetlabs-inifile'
|
||||||
|
|||||||
13
Vagrantfile
vendored
13
Vagrantfile
vendored
@@ -52,7 +52,17 @@ Vagrant::Config.run do |config|
|
|||||||
'memory' => 512,
|
'memory' => 512,
|
||||||
'ip1' => '172.16.0.8'
|
'ip1' => '172.16.0.8'
|
||||||
}
|
}
|
||||||
#},
|
},
|
||||||
|
{'cinder' =>
|
||||||
|
{
|
||||||
|
'memory' => 512,
|
||||||
|
'ip1' => '172.16.0.9'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ 'quantum_agent' => {
|
||||||
|
'memory' => 512,
|
||||||
|
'ip1' => '172.16.0.10'
|
||||||
|
}
|
||||||
#{'compute_1' =>
|
#{'compute_1' =>
|
||||||
# {'ip1' => '172.16.0.4'}
|
# {'ip1' => '172.16.0.4'}
|
||||||
#},
|
#},
|
||||||
@@ -89,6 +99,7 @@ Vagrant::Config.run do |config|
|
|||||||
node_name = "#{name.gsub('_', '-')}-#{Time.now.strftime('%Y%m%d%m%s')}"
|
node_name = "#{name.gsub('_', '-')}-#{Time.now.strftime('%Y%m%d%m%s')}"
|
||||||
|
|
||||||
agent.vm.provision :shell, :inline => "apt-get update"
|
agent.vm.provision :shell, :inline => "apt-get update"
|
||||||
|
#agent.vm.provision :shell, :inline => "apt-get -y upgrade"
|
||||||
|
|
||||||
agent.vm.provision :puppet do |puppet|
|
agent.vm.provision :puppet do |puppet|
|
||||||
puppet.manifests_path = 'manifests'
|
puppet.manifests_path = 'manifests'
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ host {
|
|||||||
'glance': ip => '172.16.0.6';
|
'glance': ip => '172.16.0.6';
|
||||||
'keystone': ip => '172.16.0.7';
|
'keystone': ip => '172.16.0.7';
|
||||||
'mysql': ip => '172.16.0.8';
|
'mysql': ip => '172.16.0.8';
|
||||||
|
'cinderclient': ip => '172.16.0.9';
|
||||||
|
'quantumagent': ip => '172.16.0.10';
|
||||||
}
|
}
|
||||||
|
|
||||||
group { 'puppet':
|
group { 'puppet':
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ node /mysql/ {
|
|||||||
keystone_db_password => 'keystone_password',
|
keystone_db_password => 'keystone_password',
|
||||||
glance_db_password => 'glance_password',
|
glance_db_password => 'glance_password',
|
||||||
nova_db_password => 'nova_password',
|
nova_db_password => 'nova_password',
|
||||||
|
cinder_db_password => 'cinder_password',
|
||||||
allowed_hosts => ['keystone', 'glance', 'novacontroller', 'compute1', '%'],
|
allowed_hosts => ['keystone', 'glance', 'novacontroller', 'compute1', '%'],
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -67,7 +68,7 @@ node /mysql/ {
|
|||||||
|
|
||||||
node /keystone/ {
|
node /keystone/ {
|
||||||
|
|
||||||
nova_config {
|
keystone_config {
|
||||||
'DEFAULT/log_config': ensure => absent,
|
'DEFAULT/log_config': ensure => absent,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,6 +80,7 @@ node /keystone/ {
|
|||||||
admin_password => 'ChangeMe',
|
admin_password => 'ChangeMe',
|
||||||
glance_user_password => 'glance_password',
|
glance_user_password => 'glance_password',
|
||||||
nova_user_password => 'nova_password',
|
nova_user_password => 'nova_password',
|
||||||
|
cinder_user_password => 'cinder_password',
|
||||||
public_address => '172.16.0.7',
|
public_address => '172.16.0.7',
|
||||||
admin_tenant => 'admin',
|
admin_tenant => 'admin',
|
||||||
glance_public_address => '172.16.0.6',
|
glance_public_address => '172.16.0.6',
|
||||||
@@ -118,7 +120,7 @@ node /openstack-controller/ {
|
|||||||
#floating_range => $floating_network_range,
|
#floating_range => $floating_network_range,
|
||||||
# Required Network
|
# Required Network
|
||||||
public_address => '172.16.0.3',
|
public_address => '172.16.0.3',
|
||||||
public_interface => 'eth0',
|
public_interface => 'eth1',
|
||||||
private_interface => 'eth2',
|
private_interface => 'eth2',
|
||||||
# Required Database
|
# Required Database
|
||||||
mysql_root_password => 'root_password',
|
mysql_root_password => 'root_password',
|
||||||
@@ -133,11 +135,18 @@ node /openstack-controller/ {
|
|||||||
# Required Nov a
|
# Required Nov a
|
||||||
nova_db_password => 'nova_db_pass',
|
nova_db_password => 'nova_db_pass',
|
||||||
nova_user_password => 'nova_user_pass',
|
nova_user_password => 'nova_user_pass',
|
||||||
|
# cinder
|
||||||
|
cinder_db_password => 'cinder_db_pass',
|
||||||
|
cinder_user_password => 'cinder_user_pass',
|
||||||
|
# quantum
|
||||||
|
quantum_db_password => 'quantum_db_pass',
|
||||||
|
quantum_user_password => 'quantum_user_pass',
|
||||||
# Required Horizon
|
# Required Horizon
|
||||||
|
|
||||||
secret_key => 'dummy_secret_key',
|
secret_key => 'dummy_secret_key',
|
||||||
network_manager => 'nova.network.manager.FlatDHCPManager',
|
network_manager => 'nova.network.manager.FlatDHCPManager',
|
||||||
fixed_range => '10.0.0.0/24',
|
fixed_range => '10.0.0.0/24',
|
||||||
floating_range => '172.16.2.0/24',
|
floating_range => '172.16.0.64/25',
|
||||||
create_networks => true,
|
create_networks => true,
|
||||||
multi_host => true,
|
multi_host => true,
|
||||||
db_host => '127.0.0.1',
|
db_host => '127.0.0.1',
|
||||||
@@ -151,6 +160,7 @@ node /openstack-controller/ {
|
|||||||
glance_api_servers => '127.0.0.1:9292',
|
glance_api_servers => '127.0.0.1:9292',
|
||||||
purge_nova_config => false,
|
purge_nova_config => false,
|
||||||
rabbit_password => 'rabbit_password',
|
rabbit_password => 'rabbit_password',
|
||||||
|
rabbit_user => 'nova',
|
||||||
# Horizon
|
# Horizon
|
||||||
cache_server_ip => '127.0.0.1',
|
cache_server_ip => '127.0.0.1',
|
||||||
cache_server_port => '11211',
|
cache_server_port => '11211',
|
||||||
@@ -158,18 +168,74 @@ node /openstack-controller/ {
|
|||||||
quantum => false,
|
quantum => false,
|
||||||
horizon_app_links => undef,
|
horizon_app_links => undef,
|
||||||
# Genera
|
# Genera
|
||||||
verbose => false,
|
verbose => 'True',
|
||||||
export_resources => false,
|
export_resources => false,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# # set up a quantum server
|
||||||
|
class { 'quantum':
|
||||||
|
rabbit_user => 'nova',
|
||||||
|
rabbit_password => 'rabbit_password',
|
||||||
|
sql_connection => "mysql://quantum:quantum_db_pass@localhost/quantum?charset=utf8",
|
||||||
|
}
|
||||||
|
|
||||||
|
class { 'quantum::server':
|
||||||
|
keystone_password => 'quantum_user_pass',
|
||||||
|
}
|
||||||
|
|
||||||
|
class { 'quantum::plugins::ovs':
|
||||||
|
sql_connection => "mysql://quantum:quantum_db_pass@localhost/quantum?charset=utf8",
|
||||||
|
tenant_network_type => 'gre',
|
||||||
|
# I need to know what this does...
|
||||||
|
local_ip => '10.0.0.1',
|
||||||
|
}
|
||||||
|
|
||||||
|
class { 'nova::network::quantum':
|
||||||
|
#$fixed_range,
|
||||||
|
quantum_admin_password => 'quantum_user_pass',
|
||||||
|
#$use_dhcp = 'True',
|
||||||
|
#$public_interface = undef,
|
||||||
|
quantum_connection_host => 'localhost',
|
||||||
|
quantum_auth_strategy => 'keystone',
|
||||||
|
quantum_url => 'http://172.16.0.3:9696',
|
||||||
|
quantum_admin_tenant_name => 'services',
|
||||||
|
quantum_admin_username => 'quantum',
|
||||||
|
quantum_admin_auth_url => 'http://172.16.0.3:35357/v2.0'
|
||||||
|
}
|
||||||
|
|
||||||
|
package { 'python-cliff':
|
||||||
|
ensure => present,
|
||||||
|
}
|
||||||
|
|
||||||
class { 'openstack::auth_file':
|
class { 'openstack::auth_file':
|
||||||
admin_password => 'ChangeMe',
|
admin_password => 'ChangeMe',
|
||||||
keystone_admin_token => 'service_token',
|
keystone_admin_token => 'service_token',
|
||||||
controller_node => '127.0.0.1',
|
controller_node => '127.0.0.1',
|
||||||
admin_tenant => 'admin',
|
admin_tenant => 'admin',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
keystone_config {
|
||||||
|
'DEFAULT/log_config': ensure => absent,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
node /cinder/ {
|
||||||
|
|
||||||
|
|
||||||
|
class { 'cinder':
|
||||||
|
rabbit_password => 'rabbit_password',
|
||||||
|
rabbit_host => '172.16.0.3',
|
||||||
|
sql_connection => 'mysql://cinder:cinder_db_pass@172.16.0.3/cinder?charset=utf8',
|
||||||
|
verbose => 'True',
|
||||||
|
}
|
||||||
|
|
||||||
|
class { 'cinder::volume': }
|
||||||
|
|
||||||
|
class { 'cinder::volume::iscsi': }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
node /nova-controller/ {
|
node /nova-controller/ {
|
||||||
@@ -219,6 +285,16 @@ node /nova-controller/ {
|
|||||||
|
|
||||||
node /compute/ {
|
node /compute/ {
|
||||||
|
|
||||||
|
file_line { 'quemu_hack':
|
||||||
|
line => 'cgroup_device_acl = [
|
||||||
|
"/dev/null", "/dev/full", "/dev/zero",
|
||||||
|
"/dev/random", "/dev/urandom",
|
||||||
|
"/dev/ptmx", "/dev/kvm", "/dev/kqemu",
|
||||||
|
"/dev/rtc", "/dev/hpet", "/dev/net/tun",]',
|
||||||
|
path => '/etc/libvirt/qemu.conf',
|
||||||
|
ensure => present,
|
||||||
|
} ~> Service['libvirt']
|
||||||
|
|
||||||
# deploy a script that can be used to test nova
|
# deploy a script that can be used to test nova
|
||||||
class { 'openstack::test_file': }
|
class { 'openstack::test_file': }
|
||||||
|
|
||||||
@@ -229,14 +305,11 @@ node /compute/ {
|
|||||||
# $glance_api_addr = unique(query_nodes('Class[glance::api]', 'ipaddress_eth1'))
|
# $glance_api_addr = unique(query_nodes('Class[glance::api]', 'ipaddress_eth1'))
|
||||||
|
|
||||||
class { 'openstack::compute':
|
class { 'openstack::compute':
|
||||||
public_interface => 'eth1',
|
|
||||||
private_interface => 'eth2',
|
|
||||||
internal_address => $::ipaddress_eth1,
|
internal_address => $::ipaddress_eth1,
|
||||||
libvirt_type => 'qemu',
|
libvirt_type => 'qemu',
|
||||||
sql_connection => 'mysql://nova:nova_db_pass@172.16.0.3/nova',
|
sql_connection => 'mysql://nova:nova_db_pass@172.16.0.3/nova',
|
||||||
fixed_range => '10.0.0.0/24',
|
network_manager => 'nova.network.quantum.manager.QuantumManager',
|
||||||
network_manager => 'nova.network.manager.FlatDHCPManager',
|
#multi_host => true,
|
||||||
multi_host => true,
|
|
||||||
nova_user_password => 'nova_user_pass',
|
nova_user_password => 'nova_user_pass',
|
||||||
rabbit_host => '172.16.0.3',
|
rabbit_host => '172.16.0.3',
|
||||||
rabbit_password => 'rabbit_password',
|
rabbit_password => 'rabbit_password',
|
||||||
@@ -244,9 +317,59 @@ node /compute/ {
|
|||||||
vncproxy_host => '172.16.0.3',
|
vncproxy_host => '172.16.0.3',
|
||||||
vnc_enabled => true,
|
vnc_enabled => true,
|
||||||
verbose => true,
|
verbose => true,
|
||||||
manage_volumes => true,
|
|
||||||
nova_volume => 'nova-volumes'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class { 'openstack::cinder':
|
||||||
|
sql_connection => 'mysql://cinder:cinder_db_pass@172.16.0.3/cinder',
|
||||||
|
rabbit_host => '172.16.0.3',
|
||||||
|
rabbit_password => 'rabbit_password',
|
||||||
|
volume_group => 'precise64',
|
||||||
|
}
|
||||||
|
|
||||||
|
# manual steps
|
||||||
|
# apt-get update
|
||||||
|
# apt-get upgrade
|
||||||
|
# apt-get -y install linux-headers-3.2.0-23-generic
|
||||||
|
# apt-get -y install quantum-plugin-openvswitch-agent
|
||||||
|
# apt-get -y install openvswitch-datapath-dkms-source
|
||||||
|
# module-assistant auto-install openvswitch-datapath
|
||||||
|
# service openvswitch-switch restart
|
||||||
|
|
||||||
|
class { 'quantum':
|
||||||
|
verbose => 'True',
|
||||||
|
debug => 'True',
|
||||||
|
rabbit_host => '172.16.0.3',
|
||||||
|
rabbit_user => 'nova',
|
||||||
|
rabbit_password => 'rabbit_password',
|
||||||
|
sql_connection => "mysql://quantum:quantum_db_pass@172.16.0.3/quantum?charset=utf8",
|
||||||
|
}
|
||||||
|
|
||||||
|
class { 'quantum::agents::ovs':
|
||||||
|
bridge_uplinks => ['br-virtual:eth2'],
|
||||||
|
}
|
||||||
|
|
||||||
|
class { 'quantum::agents::dhcp': }
|
||||||
|
|
||||||
|
class { 'nova::compute::quantum': }
|
||||||
|
|
||||||
|
class { 'nova::network::quantum':
|
||||||
|
#$fixed_range,
|
||||||
|
quantum_admin_password => 'quantum_user_pass',
|
||||||
|
#$use_dhcp = 'True',
|
||||||
|
#$public_interface = undef,
|
||||||
|
quantum_connection_host => 'localhost',
|
||||||
|
quantum_auth_strategy => 'keystone',
|
||||||
|
quantum_url => 'http://172.16.0.3:9696',
|
||||||
|
quantum_admin_tenant_name => 'services',
|
||||||
|
quantum_admin_username => 'quantum',
|
||||||
|
quantum_admin_auth_url => 'http://172.16.0.3:35357/v2.0'
|
||||||
|
}
|
||||||
|
|
||||||
|
nova_config {
|
||||||
|
'linuxnet_interface_driver': value => 'nova.network.linux_net.LinuxOVSInterfaceDriver';
|
||||||
|
'linuxnet_ovs_integration_bridge': value => 'br-int';
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
node /devstack/ {
|
node /devstack/ {
|
||||||
|
|||||||
Reference in New Issue
Block a user