$db_host = 'db' $db_username = 'nova' $db_name = 'nova' $db_password = 'password' $rabbit_user = 'nova' $rabbit_password = 'nova' $rabbit_vhost = '/' $rabbit_host = 'rabbitmq' $rabbit_port = '5672' resources { 'nova_config': purge => true, } node db { class { 'mysql::server': config_hash => {'bind_address' => '0.0.0.0'} } class { 'mysql::ruby': } class { 'nova::db': password => $db_password, dbname => $db_user, user => $db_name, host => $clientcert, # does glance need access? allowed_hosts => ['controller', 'glance'], } } node controller { class { 'nova::controller': db_password => $db_password, db_name => $db_name, db_user => $db_username, db_host => $db_host, rabbit_password => $rabbit_password, rabbit_port => $rabbit_port, rabbit_userid => $rabbit_user, rabbit_virtual_host => $rabbit_vhost, rabbit_host => $rabbit_host, image_service => 'nova.image.glance.GlanceImageService', glance_api_servers => 'glance:9292', glance_host => 'glance', glance_port => '9292', libvirt_type => 'qemu', } } node compute { } node glance { # set up glance server class { 'glance::api': swift_store_user => 'foo_user', swift_store_key => 'foo_pass', } class { 'glance::registry': } } node rabbitmq { class { 'nova::rabbitmq': userid => $rabbit_user, password => $rabbit_password, port => $rabbit_port, virtual_host => $rabbit_vhost, } } node puppetmaster { class { 'concat::setup': } class { 'mysql::server': config_hash => {'bind_address' => '127.0.0.1'} } class { 'mysql::ruby': } package { 'activerecord': ensure => '2.3.5', provider => 'gem', } class { 'puppet::master': modulepath => '/vagrant/modules', manifest => '/vagrant/manifests/site.pp', storeconfigs => true, storeconfigs_dbuser => 'dan', storeconfigs_dbpassword => 'foo', storeconfigs_dbadapter => 'mysql', storeconfigs_dbserver => 'localhost', storeconfigs_dbsocket => '/var/run/mysqld/mysqld.sock', version => installed, puppet_master_package => 'puppet', package_provider => 'gem', autosign => 'true', certname => $clientcert, } } node all { # # This manifest installs all of the nova # components on one node. class { 'mysql::server': } class { 'nova::all': db_password => 'password', db_name => 'nova', db_user => 'nova', db_host => 'localhost', rabbit_password => 'rabbitpassword', rabbit_port => '5672', rabbit_userid => 'rabbit_user', rabbit_virtual_host => '/', rabbit_host => 'localhost', image_service => 'nova.image.glance.GlanceImageService', glance_host => 'localhost', glance_port => '9292', libvirt_type => 'qemu', } } node default { fail("could not find a matching node entry for ${clientcert}") }