使用puppet自动安装openstack
1.安装puppet$ sudo apt-get install puppet-common
2. 更新puppet apt repository
$ wgethttp://apt.puppetlabs.com/puppetlabs-release-precise.deb
$ sudo dpkg -i puppetlabs-release-precise.deb
$ sudoapt-get update
3. 安装MYSQL
在用户根目录下创建一个新的mysql.pp文件:
include mysql
include mysql::server
include mysql::config
mysql::db { 'testdb':
user => 'user',
password => 'passw0rd',
}
使用以下命令自动安装mysql服务:
$puppet apply mysql.pp
4. 安装Keystone
在用户根目录下创建一个新的keystone.pp文件:
class { 'mysql::server': }
class { 'keystone::db::mysql':
user =>'keystone',
password =>'passw0rd',
charset =>'utf8',
allowed_hosts =>'localhost'
}
class { 'keystone':
verbose => True,
catalog_type => 'sql',
admin_token =>'c490e66cc19c1c9fc334',
token_format =>'UUID',
sql_connection =>'mysql://keystone:passw0rd@localhost/keystone'
}
keystone_tenant { 'admin':
ensure =>present,
enabled => True,
description =>"Tenant for the Admin",
}
keystone_tenant { 'service':
ensure =>present,
enabled => True,
description =>"Tenant for the OpenStack services",
}
keystone_user { 'admin':
ensure =>present,
enabled => True,
tenant =>"admin",
email =>"admin@sample.com",
password => "passw0rd",
}
keystone_role { ['admin', 'Member','_member_']:
ensure =>present,
}
keystone_user_role { 'admin@admin':
ensure =>present,
roles =>'admin',
}
class { 'keystone::endpoint':
public_address =>'127.0.0.1',
admin_address =>'127.0.0.1',
internal_address =>'127.0.0.1',
}
使用以下命令自动安装keystone服务:
$puppet module install puppetlabs/keystone
$puppet apply keystone.pp
5. 安装Glance
在用户根目录下创建一个新的glance.pp文件:
class { 'mysql::server': }
class { 'glance::api':
verbose => true,
keystone_tenant =>'service',
keystone_user =>'glance',
keystone_password =>'passw0rd',
sql_connection => 'mysql://glance:passw0rd@127.0.0.1/glance',
}
class { 'glance::registry':
verbose => true,
keystone_tenant =>'service',
keystone_user =>'glance',
keystone_password =>'passw0rd',
sql_connection =>'mysql://glance:passw0rd@127.0.0.1/glance',
}
class { 'glance::backend::file': }
class { 'glance::db::mysql':
password =>'passw0rd',
allowed_hosts =>'localhost',
}
class { 'glance::keystone::auth':
password =>'passw0rd',
email =>'glance@example.com',
public_address =>'127.0.0.1',
admin_address =>'127.0.0.1',
internal_address =>'127.0.0.1',
tenant =>'service',
}
使用以下命令自动安装glance服务:
$puppet module install puppetlabs/glance
$puppet apply glance.pp
6. 安装Nova
在用户根目录下创建一个新的nova.pp文件:
class { 'mysql::server': }
class { 'nova::rabbitmq':
userid => 'guest',
password => 'guest',
enabled => true,
}
class { 'nova::db::mysql':
user =>'nova',
password =>'passw0rd',
allowed_hosts =>'127.0.0.1',
charset =>'utf8',
}
class { 'nova::keystone::auth':
password =>'passw0rd',
email => 'nova@example.com',
public_address =>'127.0.0.1',
admin_address =>'127.0.0.1',
internal_address =>'127.0.0.1',
tenant =>'service',
}
class { 'nova':
sql_connection =>'mysql://nova:passw0rd@127.0.0.1/nova',
rabbit_userid =>'guest',
rabbit_password =>'guest',
image_service =>'nova.image.glance.GlanceImageService',
glance_api_servers =>'127.0.0.1:9292',
verbose => true,
rabbit_host =>'127.0.0.1',
}
class { 'nova::api':
enabled => true,
admin_tenant_name =>'service',
admin_user =>'nova',
admin_password =>'passw0rd'
}
class{ 'nova::compute':
enabled => true,
vnc_enabled => true,
}
class{ 'nova::compute::libvirt':
libvirt_type => 'qemu',
migration_support => false,
}
class{ 'nova::network':
private_interface => 'eth0',
public_interface => 'eth0',
fixed_range => '10.0.0.0/24',
floating_range => false,
create_networks => true,
enabled => true,
install_service => true,
}
class{ [
'nova::scheduler',
'nova::objectstore',
'nova::cert',
'nova::consoleauth',
'nova::conductor'
]:
enabled => true,
}
class{ 'nova::client': }
使用以下命令自动安装nova服务:
$puppet module install puppetlabs/nova
$puppet apply nova.pp
7. 安装Horizon
在用户根目录下创建一个新的horizon.pp文件:
class { 'memcached':
listen_ip =>'127.0.0.1',
tcp_port =>'11211',
udp_port =>'11211',
}
class { '::horizon':
cache_server_ip =>'127.0.0.1',
cache_server_port =>'11211',
secret_key =>'12345',
swift => false,
django_debug =>'True',
api_result_limit =>'1000',
}
使用以下命令自动安装horizon服务:
$puppet module install puppetlabs/horizon
$puppet apply horizon.pp
页:
[1]