Further edits.
This commit is contained in:
@@ -68,6 +68,7 @@ class openstack::all (
|
||||
# Keystone
|
||||
$keystone_db_user = 'keystone',
|
||||
$keystone_db_dbname = 'keystone',
|
||||
$keystone_admin_tenant = 'admin',
|
||||
# Nova
|
||||
$nova_db_user = 'nova',
|
||||
$nova_db_dbname = 'nova',
|
||||
@@ -89,8 +90,13 @@ class openstack::all (
|
||||
$vnc_enabled = true,
|
||||
# General
|
||||
$enabled = true,
|
||||
$verbose = false
|
||||
) inherits openstack::params {
|
||||
$verbose = 'False'
|
||||
) {
|
||||
|
||||
# Ensure things are run in order
|
||||
Class['openstack::db::mysql'] -> Class['openstack::keystone']
|
||||
Class['openstack::db::mysql'] -> Class['openstack::glance']
|
||||
Class['openstack::db::mysql'] -> Class['openstack::nova::controller']
|
||||
|
||||
# set up mysql server
|
||||
case $db_type {
|
||||
@@ -122,11 +128,14 @@ class openstack::all (
|
||||
keystone_db_dbname => $keystone_db_dbname,
|
||||
keystone_db_user => $keystone_db_user,
|
||||
keystone_admin_token => $keystone_admin_token,
|
||||
keystone_admin_tenant => $keystone_admin_tenant,
|
||||
admin_email => $admin_email,
|
||||
admin_password => $admin_password,
|
||||
public_address => $public_address,
|
||||
internal_address => '127.0.0.1',
|
||||
admin_address => '127.0.0.1',
|
||||
admin_address => '127.0.0.1',
|
||||
glance_user_password => $glance_user_password,
|
||||
nova_user_password => $nova_user_password,
|
||||
}
|
||||
|
||||
######## GLANCE ##########
|
||||
@@ -138,9 +147,6 @@ class openstack::all (
|
||||
glance_db_dbname => $glance_db_dbname,
|
||||
glance_db_password => $glance_db_password,
|
||||
glance_user_password => $glance_user_password,
|
||||
public_address => $public_address,
|
||||
admin_address => '127.0.0.1',
|
||||
internal_address => '127.0.0.1',
|
||||
}
|
||||
|
||||
######## NOVA ###########
|
||||
@@ -208,11 +214,11 @@ class openstack::all (
|
||||
iscsi_ip_address => '127.0.0.1',
|
||||
# VNC
|
||||
vnc_enabled => $vnc_enabled,
|
||||
vncserver_listen => $vnc_server_listen,
|
||||
vncserver_proxyclient_address => '127.0.0.1',
|
||||
vncproxy_host => '127.0.0.1',
|
||||
vncproxy_host => $public_address,
|
||||
# Nova
|
||||
nova_user_password => $nova_user_password,
|
||||
# Rabbit
|
||||
rabbit_password => $rabbit_password,
|
||||
# General
|
||||
verbose => $verbose,
|
||||
exported_resources => false,
|
||||
@@ -230,6 +236,11 @@ class openstack::all (
|
||||
}
|
||||
|
||||
######## auth file ########
|
||||
class { 'openstack::auth_file': }
|
||||
class { 'openstack::auth_file':
|
||||
public_address => $public_address,
|
||||
admin_password => $admin_password,
|
||||
keystone_admin_token => $keystone_admin_token,
|
||||
admin_tenant => $keystone_admin_tenant,
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -5,10 +5,11 @@
|
||||
#
|
||||
class openstack::auth_file(
|
||||
$admin_password,
|
||||
$public_address,
|
||||
$controller_node = '127.0.0.1',
|
||||
$keystone_admin_token = 'keystone_admin_token',
|
||||
$admin_user = 'admin',
|
||||
$admin_tenant = 'openstack'
|
||||
$admin_tenant = 'admin'
|
||||
) {
|
||||
file { '/root/openrc':
|
||||
content =>
|
||||
|
@@ -1,161 +0,0 @@
|
||||
#
|
||||
# == Class: openstack::compute
|
||||
#
|
||||
# This class is intended to serve as
|
||||
# a way of deploying compute nodes.
|
||||
#
|
||||
# This currently makes the following assumptions:
|
||||
# - libvirt is used to manage the hypervisors
|
||||
# - flatdhcp networking is used
|
||||
# - glance is used as the backend for the image service
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# See params.pp
|
||||
#
|
||||
# === Examples
|
||||
#
|
||||
# class { 'openstack::compute':
|
||||
# internal_address => '192.168.1.12',
|
||||
# vncproxy_host => '192.168.1.1',
|
||||
# nova_user_password => 'changeme',
|
||||
# rabbit_password => 'changeme',
|
||||
# }
|
||||
#
|
||||
|
||||
class openstack::compute (
|
||||
# Network
|
||||
$public_address = undef,
|
||||
$public_interface = 'eth0',
|
||||
$private_interface = 'eth1',
|
||||
$fixed_range = '10.0.0.0/24',
|
||||
$network_manager = 'nova.network.manager.FlatDHCPManager',
|
||||
$multi_host = false,
|
||||
$network_config = {},
|
||||
# DB
|
||||
$sql_connection = false,
|
||||
# Nova
|
||||
$purge_nova_config = true,
|
||||
# Rabbit
|
||||
$rabbit_host = false,
|
||||
$rabbit_user = 'nova',
|
||||
# Glance
|
||||
$glance_api_servers = false,
|
||||
# Virtualization
|
||||
$libvirt_type = 'kvm',
|
||||
# VNC
|
||||
$vnc_enabled = true,
|
||||
$vncserver_listen = undef,
|
||||
$vncproxy_host = undef,
|
||||
$vncserver_proxyclient_address = undef,
|
||||
# Volumes
|
||||
$manage_volumes = true,
|
||||
$nova_volume = 'nova-volumes',
|
||||
# General
|
||||
$verbose = false,
|
||||
$exported_resources = true,
|
||||
$enabled = true,
|
||||
# Required Network
|
||||
$internal_address,
|
||||
# Required Nova
|
||||
$nova_user_password,
|
||||
# Required Rabbit
|
||||
$rabbit_password
|
||||
) inherits openstack::params {
|
||||
|
||||
#
|
||||
# indicates that all nova config entries that we did
|
||||
# not specifify in Puppet should be purged from file
|
||||
#
|
||||
if ($purge_nova_config) {
|
||||
resources { 'nova_config':
|
||||
purge => true,
|
||||
}
|
||||
}
|
||||
|
||||
if $exported_resources {
|
||||
Nova_config <<||>>
|
||||
$final_sql_connection = false
|
||||
$glance_connection = false
|
||||
$rabbit_connection = false
|
||||
} else {
|
||||
$final_sql_connection = $sql_connection
|
||||
$glance_connection = $glance_api_servers
|
||||
$rabbit_connection = $rabbit_host
|
||||
}
|
||||
|
||||
# Configure Nova
|
||||
if $enabled {
|
||||
class { 'nova':
|
||||
sql_connection => $final_sql_connection,
|
||||
rabbit_userid => $rabbit_user,
|
||||
rabbit_password => $rabbit_password,
|
||||
image_service => 'nova.image.glance.GlanceImageService',
|
||||
glance_api_servers => $glance_connection,
|
||||
verbose => $verbose,
|
||||
rabbit_host => $rabbit_connection,
|
||||
}
|
||||
}
|
||||
|
||||
# Configure VNC variables
|
||||
if ($vnc_enabled == true) {
|
||||
if ($vncserver_listen == undef) {
|
||||
$real_vncserver_listen = $internal_address
|
||||
} else {
|
||||
$real_vncserver_listen = $vncserver_listen
|
||||
}
|
||||
|
||||
if ($vncserver_proxyclient_address == undef) {
|
||||
$real_vncserver_proxyclient_address = $internal_address
|
||||
} else {
|
||||
$real_vncserver_proxyclient_address = $vncserver_proxyclient_address
|
||||
}
|
||||
|
||||
if ($vncproxy_host == undef) {
|
||||
if ($multi_host == true and $public_address != undef) {
|
||||
$real_vncproxy_host = $public_address
|
||||
} else {
|
||||
fail('vncproxy_host must be set.')
|
||||
}
|
||||
} else {
|
||||
# This should be the public IP of the cloud controller...
|
||||
$real_vncproxy_host = $vncproxy_host
|
||||
}
|
||||
} else {
|
||||
$real_vncserver_listen = undef
|
||||
$real_vncserver_proxyclient_address = undef
|
||||
$real_vncproxy_host = undef
|
||||
}
|
||||
|
||||
if $enabled {
|
||||
class { 'openstack::nova::compute':
|
||||
# Network
|
||||
public_address => $public_address,
|
||||
internal_address => $internal_address,
|
||||
private_interface => $private_interface,
|
||||
public_interface => $public_interface,
|
||||
fixed_range => $fixed_range,
|
||||
network_manager => $network_manager,
|
||||
network_config => $network_config,
|
||||
multi_host => $multi_host,
|
||||
# Virtualization
|
||||
libvirt_type => $libvirt_type,
|
||||
# Volumes
|
||||
nova_volume => $nova_volume,
|
||||
manage_volumes => $manage_volumes,
|
||||
iscsi_ip_address => $iscsi_ip_address,
|
||||
# VNC
|
||||
vnc_enabled => $vnc_enabled,
|
||||
vncserver_listen => $real_vncserver_listen,
|
||||
vncserver_proxyclient_address => $real_vncserver_proxyclient_address,
|
||||
vncproxy_host => $real_vncproxy_host,
|
||||
# Nova
|
||||
nova_user_password => $nova_user_password,
|
||||
# General
|
||||
verbose => $verbose,
|
||||
exported_resources => $exported_resources,
|
||||
enabled => $enabled,
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -23,11 +23,28 @@
|
||||
# }
|
||||
#
|
||||
class openstack::controller (
|
||||
# Required Network
|
||||
$public_address,
|
||||
# Required Database
|
||||
$mysql_root_password,
|
||||
# Required Keystone
|
||||
$admin_email,
|
||||
$admin_password,
|
||||
$keystone_db_password,
|
||||
$keystone_admin_token,
|
||||
# Required Glance
|
||||
$glance_db_password,
|
||||
$glance_user_password,
|
||||
# Required Nova
|
||||
$nova_db_password,
|
||||
$nova_user_password,
|
||||
# Required Horizon
|
||||
$secret_key,
|
||||
# Network
|
||||
$public_interface = 'eth0',
|
||||
$private_interface = 'eth1',
|
||||
$internal_address = undef,
|
||||
$admin_address = undef,
|
||||
$internal_address = $public_address,
|
||||
$admin_address = $public_address,
|
||||
$network_manager = 'nova.network.manager.FlatDHCPManager',
|
||||
$fixed_range = '10.0.0.0/24',
|
||||
$floating_range = false,
|
||||
@@ -44,6 +61,7 @@ class openstack::controller (
|
||||
# Keystone
|
||||
$keystone_db_user = 'keystone',
|
||||
$keystone_db_dbname = 'keystone',
|
||||
$keystone_admin_tenant = 'admin',
|
||||
# Glance
|
||||
$glance_db_user = 'glance',
|
||||
$glance_db_dbname = 'glance',
|
||||
@@ -64,100 +82,66 @@ class openstack::controller (
|
||||
# General
|
||||
$verbose = false,
|
||||
$exported_resources = true,
|
||||
$enabled = true,
|
||||
# Required Network
|
||||
$public_address,
|
||||
# Required Database
|
||||
$mysql_root_password,
|
||||
# Required Keystone
|
||||
$admin_email,
|
||||
$admin_password,
|
||||
$keystone_db_password,
|
||||
$keystone_admin_token,
|
||||
# Required Glance
|
||||
$glance_db_password,
|
||||
$glance_user_password,
|
||||
# Required Nova
|
||||
$nova_db_password,
|
||||
$nova_user_password,
|
||||
# Required Horizon
|
||||
$secret_key
|
||||
) inherits openstack::params {
|
||||
$enabled = true
|
||||
) {
|
||||
|
||||
|
||||
## NOTE Class['glance::db::mysql'] -> Class['glance::registry']
|
||||
## this dependency needs to exist (I forgot exactly why?)
|
||||
# the db migration needs to happen after the dbs are created
|
||||
|
||||
# Configure admin_address and internal address if needed.
|
||||
if (admin_address == undef) {
|
||||
$real_admin_address = $public_address
|
||||
} else {
|
||||
$real_admin_address = $admin_address
|
||||
}
|
||||
|
||||
if (internal_address == undef) {
|
||||
$real_internal_address = $public_address
|
||||
} else {
|
||||
$real_internal_address = $internal_address
|
||||
}
|
||||
# Ensure things are run in order
|
||||
Class['openstack::db::mysql'] -> Class['openstack::keystone']
|
||||
Class['openstack::db::mysql'] -> Class['openstack::glance']
|
||||
Class['openstack::db::mysql'] -> Class['openstack::nova::controller']
|
||||
|
||||
####### DATABASE SETUP ######
|
||||
if $enabled {
|
||||
# set up mysql server
|
||||
case $db_type {
|
||||
'mysql': {
|
||||
class { 'openstack::db::mysql':
|
||||
mysql_root_password => $mysql_root_password,
|
||||
mysql_bind_address => $mysql_bind_address,
|
||||
mysql_account_security => $mysql_account_security,
|
||||
allowed_hosts => $allowed_hosts,
|
||||
keystone_db_user => $keystone_db_user,
|
||||
keystone_db_password => $keystone_db_password,
|
||||
keystone_db_dbname => $keystone_db_dbname,
|
||||
glance_db_user => $glance_db_user,
|
||||
glance_db_password => $glance_db_password,
|
||||
glance_db_dbname => $glance_db_dbname,
|
||||
nova_db_user => $nova_db_user,
|
||||
nova_db_password => $nova_db_password,
|
||||
nova_db_dbname => $nova_db_dbname,
|
||||
}
|
||||
# set up mysql server
|
||||
case $db_type {
|
||||
'mysql': {
|
||||
class { 'openstack::db::mysql':
|
||||
mysql_root_password => $mysql_root_password,
|
||||
mysql_bind_address => $mysql_bind_address,
|
||||
mysql_account_security => $mysql_account_security,
|
||||
keystone_db_user => $keystone_db_user,
|
||||
keystone_db_password => $keystone_db_password,
|
||||
keystone_db_dbname => $keystone_db_dbname,
|
||||
glance_db_user => $glance_db_user,
|
||||
glance_db_password => $glance_db_password,
|
||||
glance_db_dbname => $glance_db_dbname,
|
||||
nova_db_user => $nova_db_user,
|
||||
nova_db_password => $nova_db_password,
|
||||
nova_db_dbname => $nova_db_dbname,
|
||||
allowed_hosts => $allowed_hosts,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
####### KEYSTONE ###########
|
||||
if ($enabled) {
|
||||
class { 'openstack::keystone':
|
||||
verbose => $verbose,
|
||||
db_type => $db_type,
|
||||
db_host => '127.0.0.1',
|
||||
keystone_db_password => $keystone_db_password,
|
||||
keystone_db_dbname => $keystone_db_dbname,
|
||||
keystone_db_user => $keystone_db_user,
|
||||
keystone_admin_token => $keystone_admin_token,
|
||||
admin_email => $admin_email,
|
||||
admin_password => $admin_password,
|
||||
public_address => $public_address,
|
||||
internal_address => $internal_address,
|
||||
admin_address => $admin_address,
|
||||
}
|
||||
class { 'openstack::keystone':
|
||||
verbose => $verbose,
|
||||
db_type => $db_type,
|
||||
db_host => '127.0.0.1',
|
||||
keystone_db_password => $keystone_db_password,
|
||||
keystone_db_dbname => $keystone_db_dbname,
|
||||
keystone_db_user => $keystone_db_user,
|
||||
keystone_admin_token => $keystone_admin_token,
|
||||
keystone_admin_tenant => $keystone_admin_tenant,
|
||||
admin_email => $admin_email,
|
||||
admin_password => $admin_password,
|
||||
public_address => $public_address,
|
||||
internal_address => $internal_address,
|
||||
admin_address => $admin_address,
|
||||
glance_user_password => $glance_user_password,
|
||||
nova_user_password => $nova_user_password,
|
||||
enabled => $enabled,
|
||||
}
|
||||
|
||||
######## BEGIN GLANCE ##########
|
||||
if ($enabled) {
|
||||
class { 'openstack::glance':
|
||||
verbose => $verbose,
|
||||
db_type => $db_type,
|
||||
db_host => '127.0.0.1',
|
||||
glance_db_user => $glance_db_user,
|
||||
glance_db_dbname => $glance_db_dbname,
|
||||
glance_db_password => $glance_db_password,
|
||||
glance_user_password => $glance_user_password,
|
||||
public_address => $public_address,
|
||||
admin_address => $admin_address,
|
||||
internal_address => $internal_addrss,
|
||||
}
|
||||
class { 'openstack::glance':
|
||||
verbose => $verbose,
|
||||
db_type => $db_type,
|
||||
db_host => '127.0.0.1',
|
||||
glance_db_user => $glance_db_user,
|
||||
glance_db_dbname => $glance_db_dbname,
|
||||
glance_db_password => $glance_db_password,
|
||||
glance_user_password => $glance_user_password,
|
||||
enabled => $enabled,
|
||||
}
|
||||
|
||||
######## BEGIN NOVA ###########
|
||||
@@ -171,39 +155,37 @@ class openstack::controller (
|
||||
}
|
||||
}
|
||||
|
||||
if $enabled {
|
||||
class { 'openstack::nova::controller':
|
||||
# Database
|
||||
db_host => '127.0.0.1',
|
||||
# Network
|
||||
network_manager => $network_manager,
|
||||
network_config => $network_config,
|
||||
private_interface => $private_interface,
|
||||
public_interface => $public_interface,
|
||||
floating_range => $floating_range,
|
||||
fixed_range => $fixed_range,
|
||||
public_address => $public_address,
|
||||
admin_address => $admin_address,
|
||||
internal_address => $internal_address,
|
||||
auto_assign_floating_ip => $auto_assign_floating_ip,
|
||||
create_networks => $create_networks,
|
||||
num_networks => $num_networks,
|
||||
multi_host => $multi_host,
|
||||
# Nova
|
||||
nova_user_password => $nova_user_password,
|
||||
nova_db_password => $nova_db_password,
|
||||
nova_db_user => $nova_db_user,
|
||||
nova_db_dbname => $nova_db_dbname,
|
||||
# Rabbit
|
||||
rabbit_user => $rabbit_user,
|
||||
rabbit_password => $rabbit_password,
|
||||
# Glance
|
||||
glance_api_servers => $glance_api_servers,
|
||||
# General
|
||||
verbose => $verbose,
|
||||
enabled => $enabled,
|
||||
exported_resources => $exported_resources,
|
||||
}
|
||||
class { 'openstack::nova::controller':
|
||||
# Database
|
||||
db_host => '127.0.0.1',
|
||||
# Network
|
||||
network_manager => $network_manager,
|
||||
network_config => $network_config,
|
||||
private_interface => $private_interface,
|
||||
public_interface => $public_interface,
|
||||
floating_range => $floating_range,
|
||||
fixed_range => $fixed_range,
|
||||
public_address => $public_address,
|
||||
admin_address => $admin_address,
|
||||
internal_address => $internal_address,
|
||||
auto_assign_floating_ip => $auto_assign_floating_ip,
|
||||
create_networks => $create_networks,
|
||||
num_networks => $num_networks,
|
||||
multi_host => $multi_host,
|
||||
# Nova
|
||||
nova_user_password => $nova_user_password,
|
||||
nova_db_password => $nova_db_password,
|
||||
nova_db_user => $nova_db_user,
|
||||
nova_db_dbname => $nova_db_dbname,
|
||||
# Rabbit
|
||||
rabbit_user => $rabbit_user,
|
||||
rabbit_password => $rabbit_password,
|
||||
# Glance
|
||||
glance_api_servers => $glance_api_servers,
|
||||
# General
|
||||
verbose => $verbose,
|
||||
enabled => $enabled,
|
||||
exported_resources => $exported_resources,
|
||||
}
|
||||
|
||||
######## Horizon ########
|
||||
@@ -217,5 +199,10 @@ class openstack::controller (
|
||||
}
|
||||
|
||||
######## auth file ########
|
||||
class { 'openstack::auth_file': }
|
||||
class { 'openstack::auth_file':
|
||||
public_address => $public_address,
|
||||
admin_password => $admin_password,
|
||||
keystone_admin_token => $keystone_admin_token,
|
||||
admin_tenant => $keystone_admin_tenant,
|
||||
}
|
||||
}
|
||||
|
@@ -25,7 +25,7 @@ class openstack::db::mysql (
|
||||
$mysql_root_password,
|
||||
$keystone_db_password,
|
||||
$glance_db_password,
|
||||
$nova_db_password
|
||||
$nova_db_password,
|
||||
# MySQL
|
||||
$mysql_bind_address = '0.0.0.0',
|
||||
$mysql_account_security = true,
|
||||
@@ -47,39 +47,36 @@ class openstack::db::mysql (
|
||||
config_hash => {
|
||||
'root_password' => $mysql_root_password,
|
||||
'bind_address' => $mysql_bind_address,
|
||||
}
|
||||
},
|
||||
enabled => $enabled,
|
||||
}
|
||||
|
||||
if $enabled {
|
||||
# If enabled, secure the mysql installation
|
||||
# This removes default users and guest access
|
||||
if $mysql_account_security {
|
||||
class { 'mysql::server::account_security': }
|
||||
}
|
||||
# This removes default users and guest access
|
||||
if $mysql_account_security {
|
||||
class { 'mysql::server::account_security': }
|
||||
}
|
||||
|
||||
# Create the Keystone db
|
||||
class { 'keystone::db::mysql':
|
||||
user => $keystone_db_user,
|
||||
password => $keystone_db_password,
|
||||
dbname => $keystone_db_dbname,
|
||||
allowed_hosts => $allowed_hosts,
|
||||
}
|
||||
# Create the Keystone db
|
||||
class { 'keystone::db::mysql':
|
||||
user => $keystone_db_user,
|
||||
password => $keystone_db_password,
|
||||
dbname => $keystone_db_dbname,
|
||||
allowed_hosts => $allowed_hosts,
|
||||
}
|
||||
|
||||
# Create the Glance db
|
||||
class { 'glance::db::mysql':
|
||||
user => $glance_db_user,
|
||||
password => $glance_db_password,
|
||||
dbname => $glance_db_dbname,
|
||||
allowed_hosts => $allowed_hosts,
|
||||
}
|
||||
# Create the Glance db
|
||||
class { 'glance::db::mysql':
|
||||
user => $glance_db_user,
|
||||
password => $glance_db_password,
|
||||
dbname => $glance_db_dbname,
|
||||
allowed_hosts => $allowed_hosts,
|
||||
}
|
||||
|
||||
# Create the Nova db
|
||||
class { 'nova::db::mysql':
|
||||
user => $nova_db_user,
|
||||
password => $nova_db_password,
|
||||
dbname => $nova_db_dbname,
|
||||
allowed_hosts => $allowed_hosts,
|
||||
}
|
||||
# Create the Nova db
|
||||
class { 'nova::db::mysql':
|
||||
user => $nova_db_user,
|
||||
password => $nova_db_password,
|
||||
dbname => $nova_db_dbname,
|
||||
allowed_hosts => $allowed_hosts,
|
||||
}
|
||||
}
|
||||
|
@@ -21,14 +21,15 @@
|
||||
# }
|
||||
|
||||
class openstack::glance (
|
||||
$keystone_host,
|
||||
$db_host,
|
||||
$glance_user_password,
|
||||
$glance_db_password,
|
||||
$keystone_host = '127.0.0.1',
|
||||
$auth_uri = "http://${keystone_host}:5000/",
|
||||
$db_type = 'mysql',
|
||||
$glance_db_user = 'glance',
|
||||
$glance_db_dbname = 'glance',
|
||||
$verbose = false,
|
||||
$verbose = 'False',
|
||||
$enabled = true
|
||||
) {
|
||||
|
||||
@@ -45,6 +46,8 @@ class openstack::glance (
|
||||
log_debug => $verbose,
|
||||
auth_type => 'keystone',
|
||||
auth_port => '35357',
|
||||
auth_uri => $auth_uri,
|
||||
auth_host => $keystone_host,
|
||||
keystone_tenant => 'services',
|
||||
keystone_user => 'glance',
|
||||
keystone_password => $glance_user_password,
|
||||
@@ -58,6 +61,7 @@ class openstack::glance (
|
||||
auth_host => $keystone_host,
|
||||
auth_port => '35357',
|
||||
auth_type => 'keystone',
|
||||
auth_uri => $auth_uri,
|
||||
keystone_tenant => 'services',
|
||||
keystone_user => 'glance',
|
||||
keystone_password => $glance_user_password,
|
||||
|
@@ -4,6 +4,10 @@
|
||||
# Class to install / configure horizon.
|
||||
# Will eventually include apache and ssl.
|
||||
#
|
||||
# NOTE: Will the inclusion of memcache be an issue?
|
||||
# Such as if the server already has memcache installed?
|
||||
# -jtopjian
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# See params.pp
|
||||
@@ -16,12 +20,17 @@
|
||||
#
|
||||
|
||||
class openstack::horizon (
|
||||
$cache_server_ip = '127.0.0.1',
|
||||
$cache_server_port = '11211',
|
||||
$swift = false,
|
||||
$quantum = false,
|
||||
$horizon_app_links = undef,
|
||||
$secret_key
|
||||
$secret_key,
|
||||
$cache_server_ip = '127.0.0.1',
|
||||
$cache_server_port = '11211',
|
||||
$swift = false,
|
||||
$quantum = false,
|
||||
$horizon_app_links = undef,
|
||||
$keystone_host = '127.0.0.1',
|
||||
$keystone_scheme = 'http',
|
||||
$keystone_default_role = 'Member',
|
||||
$django_debug = 'False',
|
||||
$api_result_limit = 1000
|
||||
) {
|
||||
|
||||
class { 'memcached':
|
||||
@@ -31,9 +40,14 @@ class openstack::horizon (
|
||||
}
|
||||
|
||||
class { '::horizon':
|
||||
secret_key => $secret_key,
|
||||
swift => $swift,
|
||||
quantum => $quantum,
|
||||
horizon_app_links => $horizon_app_links,
|
||||
secret_key => $secret_key,
|
||||
swift => $swift,
|
||||
quantum => $quantum,
|
||||
horizon_app_links => $horizon_app_links,
|
||||
keystone_host => $keystone_host,
|
||||
keystone_scheme => $keystone_scheme,
|
||||
keystone_default_role => $keystone_default_role,
|
||||
django_debug => $django_debug,
|
||||
api_result_limit => $api_result_limit,
|
||||
}
|
||||
}
|
||||
|
@@ -19,33 +19,26 @@
|
||||
# }
|
||||
|
||||
class openstack::keystone (
|
||||
$db_type = 'mysql',
|
||||
$keystone_db_user = 'keystone',
|
||||
$keystone_db_dbname = 'keystone',
|
||||
$keystone_admin_tenant = 'admin',
|
||||
$admin_address = undef,
|
||||
$internal_address = undef,
|
||||
$verbose = false,
|
||||
$db_host,
|
||||
$keystone_db_password,
|
||||
$keystone_admin_token,
|
||||
$admin_email,
|
||||
$admin_password,
|
||||
$public_address
|
||||
) inherits openstack::params {
|
||||
|
||||
# Configure admin_address and internal address if needed.
|
||||
if (admin_address == undef) {
|
||||
$real_admin_address = $public_address
|
||||
} else {
|
||||
$real_admin_address = $admin_address
|
||||
}
|
||||
|
||||
if (internal_address == undef) {
|
||||
$real_internal_address = $public_address
|
||||
} else {
|
||||
$real_internal_address = $internal_address
|
||||
}
|
||||
$glance_user_password,
|
||||
$nova_user_password,
|
||||
$public_address,
|
||||
$db_type = 'mysql',
|
||||
$keystone_db_user = 'keystone',
|
||||
$keystone_db_dbname = 'keystone',
|
||||
$keystone_admin_tenant = 'admin',
|
||||
$verbose = 'False',
|
||||
$bind_host = '0.0.0.0',
|
||||
$admin_address = $public_address,
|
||||
$internal_address = $public_address,
|
||||
$glance = true,
|
||||
$nova = true,
|
||||
$enabled = true,
|
||||
) {
|
||||
|
||||
# Install and configure Keystone
|
||||
class { '::keystone':
|
||||
@@ -53,6 +46,7 @@ class openstack::keystone (
|
||||
log_debug => $verbose,
|
||||
catalog_type => 'sql',
|
||||
admin_token => $keystone_admin_token,
|
||||
enabled => $enabled,
|
||||
}
|
||||
|
||||
# Setup the admin user
|
||||
@@ -65,16 +59,28 @@ class openstack::keystone (
|
||||
# Setup the Keystone Identity Endpoint
|
||||
class { 'keystone::endpoint':
|
||||
public_address => $public_address,
|
||||
admin_address => $real_admin_address,
|
||||
internal_address => $real_internal_address,
|
||||
admin_address => $admin_address,
|
||||
internal_address => $internal_address,
|
||||
}
|
||||
|
||||
# Configure Glance to use Keystone
|
||||
class { 'glance::keystone::auth':
|
||||
password => $glance_user_password,
|
||||
public_address => $public_address,
|
||||
admin_address => $real_admin_address,
|
||||
internal_address => $real_internal_address,
|
||||
# Configure Glance endpoint in Keystone
|
||||
if $glance {
|
||||
class { 'glance::keystone::auth':
|
||||
password => $glance_user_password,
|
||||
public_address => $public_address,
|
||||
admin_address => $admin_address,
|
||||
internal_address => $internal_address,
|
||||
}
|
||||
}
|
||||
|
||||
# Configure Nova endpoint in Keystone
|
||||
if $nova {
|
||||
class { 'nova::keystone::auth':
|
||||
password => $nova_user_password,
|
||||
public_address => $public_address,
|
||||
admin_address => $admin_address,
|
||||
internal_address => $internal_address,
|
||||
}
|
||||
}
|
||||
|
||||
# Configure the Keystone database
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# == Class: openstack::nova::compute
|
||||
# == Class: openstack::compute
|
||||
#
|
||||
# Manifest to install/configure nova-compute and nova-volume
|
||||
#
|
||||
@@ -15,18 +15,13 @@
|
||||
# nova_user_password => 'changeme',
|
||||
# }
|
||||
|
||||
# NOTE this file should not actually change from the old openstack::compute
|
||||
# class its worth doing a diff of the old file to better understadn the differneces
|
||||
|
||||
#
|
||||
# NOTE move this to openstack::compute
|
||||
# NOTE grab all of the missing logic from openstack::compute
|
||||
|
||||
class openstack::nova::compute (
|
||||
# Required Network
|
||||
$internal_address,
|
||||
# Required Nova
|
||||
$nova_user_password,
|
||||
# Required Rabbit
|
||||
$rabbit_password,
|
||||
# Network
|
||||
$public_address = undef,
|
||||
$public_interface = 'eth0',
|
||||
@@ -35,6 +30,15 @@ class openstack::nova::compute (
|
||||
$network_manager = 'nova.network.manager.FlatDHCPManager',
|
||||
$network_config = {},
|
||||
$multi_host = false,
|
||||
# DB
|
||||
$sql_connection = false,
|
||||
# Nova
|
||||
$purge_nova_config = true,
|
||||
# Rabbit
|
||||
$rabbit_host = false,
|
||||
$rabbit_user = 'nova',
|
||||
# Glance
|
||||
$glance_api_servers = false,
|
||||
# Virtualization
|
||||
$libvirt_type = 'kvm',
|
||||
# Volumes
|
||||
@@ -43,7 +47,6 @@ class openstack::nova::compute (
|
||||
$iscsi_ip_address = $internal_address,
|
||||
# VNC
|
||||
$vnc_enabled = true,
|
||||
$vncserver_proxyclient_address = undef,
|
||||
$vncproxy_host = undef,
|
||||
# General
|
||||
$verbose = false,
|
||||
@@ -51,9 +54,45 @@ class openstack::nova::compute (
|
||||
$enabled = true
|
||||
) {
|
||||
|
||||
#
|
||||
# indicates that all nova config entries that we did
|
||||
# not specifify in Puppet should be purged from file
|
||||
#
|
||||
if ! defined( Resources[nova_config] ) {
|
||||
if ($purge_nova_config) {
|
||||
resources { 'nova_config':
|
||||
purge => true,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if $exported_resources {
|
||||
Nova_config <<||>>
|
||||
$final_sql_connection = false
|
||||
$glance_connection = false
|
||||
$rabbit_connection = false
|
||||
} else {
|
||||
$final_sql_connection = $sql_connection
|
||||
$glance_connection = $glance_api_servers
|
||||
$rabbit_connection = $rabbit_host
|
||||
}
|
||||
|
||||
# Configure Nova
|
||||
if ! defined( Class[nova] ) {
|
||||
class { 'nova':
|
||||
sql_connection => $final_sql_connection,
|
||||
rabbit_userid => $rabbit_user,
|
||||
rabbit_password => $rabbit_password,
|
||||
image_service => 'nova.image.glance.GlanceImageService',
|
||||
glance_api_servers => $glance_connection,
|
||||
verbose => $verbose,
|
||||
rabbit_host => $rabbit_connection,
|
||||
}
|
||||
}
|
||||
|
||||
# Install / configure nova-compute
|
||||
class { '::nova::compute':
|
||||
enabled => true,
|
||||
enabled => $enabled,
|
||||
vnc_enabled => $vnc_enabled,
|
||||
vncserver_proxyclient_address => $internal_address,
|
||||
vncproxy_host => $vncproxy_host,
|
||||
@@ -62,7 +101,7 @@ class openstack::nova::compute (
|
||||
# Configure libvirt for nova-compute
|
||||
class { 'nova::compute::libvirt':
|
||||
libvirt_type => $libvirt_type,
|
||||
vncserver_listen => $real_vncserver_listen,
|
||||
vncserver_listen => $internal_address,
|
||||
}
|
||||
|
||||
# if the compute node should be configured as a multi-host
|
||||
@@ -92,6 +131,7 @@ class openstack::nova::compute (
|
||||
}
|
||||
|
||||
# set up configuration for networking
|
||||
# NOTE should the if block be removed? -jtopjian
|
||||
if $enable_network_service {
|
||||
class { 'nova::network':
|
||||
private_interface => $private_interface,
|
||||
|
@@ -58,7 +58,7 @@ class openstack::nova::controller (
|
||||
$nova_user_password,
|
||||
$nova_db_password,
|
||||
|
||||
) inherits openstack::params {
|
||||
) {
|
||||
|
||||
# Configure admin_address and internal address if needed.
|
||||
if (admin_address == undef) {
|
||||
@@ -114,14 +114,6 @@ class openstack::nova::controller (
|
||||
enabled => $enabled,
|
||||
}
|
||||
|
||||
# Configure Nova to use Keystone
|
||||
class { 'nova::keystone::auth':
|
||||
password => $nova_user_password,
|
||||
public_address => $public_address,
|
||||
admin_address => $admin_address,
|
||||
internal_address => $internal_address,
|
||||
}
|
||||
|
||||
# Configure Nova
|
||||
class { 'nova':
|
||||
sql_connection => $sql_connection,
|
||||
@@ -181,9 +173,10 @@ class openstack::nova::controller (
|
||||
'nova::cert',
|
||||
'nova::consoleauth'
|
||||
]:
|
||||
enabled => true
|
||||
enabled => $enabled,
|
||||
}
|
||||
|
||||
# NOTE should this just be enabled => $vnc_enabled? -jtopjian
|
||||
if $vnc_enabled {
|
||||
class { 'nova::vncproxy':
|
||||
enabled => true,
|
||||
|
@@ -1,4 +1,4 @@
|
||||
class { 'openstack::compute':
|
||||
class { 'openstack::nova::compute':
|
||||
exported_resources => false,
|
||||
sql_connection => 'mysql://foo:bar@192.168.1.1/nova',
|
||||
glance_api_servers => '192.168.1.1:9292',
|
||||
|
Reference in New Issue
Block a user