Further edits.
This commit is contained in:
@@ -68,6 +68,7 @@ class openstack::all (
|
|||||||
# Keystone
|
# Keystone
|
||||||
$keystone_db_user = 'keystone',
|
$keystone_db_user = 'keystone',
|
||||||
$keystone_db_dbname = 'keystone',
|
$keystone_db_dbname = 'keystone',
|
||||||
|
$keystone_admin_tenant = 'admin',
|
||||||
# Nova
|
# Nova
|
||||||
$nova_db_user = 'nova',
|
$nova_db_user = 'nova',
|
||||||
$nova_db_dbname = 'nova',
|
$nova_db_dbname = 'nova',
|
||||||
@@ -89,8 +90,13 @@ class openstack::all (
|
|||||||
$vnc_enabled = true,
|
$vnc_enabled = true,
|
||||||
# General
|
# General
|
||||||
$enabled = true,
|
$enabled = true,
|
||||||
$verbose = false
|
$verbose = 'False'
|
||||||
) inherits openstack::params {
|
) {
|
||||||
|
|
||||||
|
# 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
|
# set up mysql server
|
||||||
case $db_type {
|
case $db_type {
|
||||||
@@ -122,11 +128,14 @@ class openstack::all (
|
|||||||
keystone_db_dbname => $keystone_db_dbname,
|
keystone_db_dbname => $keystone_db_dbname,
|
||||||
keystone_db_user => $keystone_db_user,
|
keystone_db_user => $keystone_db_user,
|
||||||
keystone_admin_token => $keystone_admin_token,
|
keystone_admin_token => $keystone_admin_token,
|
||||||
|
keystone_admin_tenant => $keystone_admin_tenant,
|
||||||
admin_email => $admin_email,
|
admin_email => $admin_email,
|
||||||
admin_password => $admin_password,
|
admin_password => $admin_password,
|
||||||
public_address => $public_address,
|
public_address => $public_address,
|
||||||
internal_address => '127.0.0.1',
|
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 ##########
|
######## GLANCE ##########
|
||||||
@@ -138,9 +147,6 @@ class openstack::all (
|
|||||||
glance_db_dbname => $glance_db_dbname,
|
glance_db_dbname => $glance_db_dbname,
|
||||||
glance_db_password => $glance_db_password,
|
glance_db_password => $glance_db_password,
|
||||||
glance_user_password => $glance_user_password,
|
glance_user_password => $glance_user_password,
|
||||||
public_address => $public_address,
|
|
||||||
admin_address => '127.0.0.1',
|
|
||||||
internal_address => '127.0.0.1',
|
|
||||||
}
|
}
|
||||||
|
|
||||||
######## NOVA ###########
|
######## NOVA ###########
|
||||||
@@ -208,11 +214,11 @@ class openstack::all (
|
|||||||
iscsi_ip_address => '127.0.0.1',
|
iscsi_ip_address => '127.0.0.1',
|
||||||
# VNC
|
# VNC
|
||||||
vnc_enabled => $vnc_enabled,
|
vnc_enabled => $vnc_enabled,
|
||||||
vncserver_listen => $vnc_server_listen,
|
vncproxy_host => $public_address,
|
||||||
vncserver_proxyclient_address => '127.0.0.1',
|
|
||||||
vncproxy_host => '127.0.0.1',
|
|
||||||
# Nova
|
# Nova
|
||||||
nova_user_password => $nova_user_password,
|
nova_user_password => $nova_user_password,
|
||||||
|
# Rabbit
|
||||||
|
rabbit_password => $rabbit_password,
|
||||||
# General
|
# General
|
||||||
verbose => $verbose,
|
verbose => $verbose,
|
||||||
exported_resources => false,
|
exported_resources => false,
|
||||||
@@ -230,6 +236,11 @@ class openstack::all (
|
|||||||
}
|
}
|
||||||
|
|
||||||
######## auth file ########
|
######## 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(
|
class openstack::auth_file(
|
||||||
$admin_password,
|
$admin_password,
|
||||||
|
$public_address,
|
||||||
$controller_node = '127.0.0.1',
|
$controller_node = '127.0.0.1',
|
||||||
$keystone_admin_token = 'keystone_admin_token',
|
$keystone_admin_token = 'keystone_admin_token',
|
||||||
$admin_user = 'admin',
|
$admin_user = 'admin',
|
||||||
$admin_tenant = 'openstack'
|
$admin_tenant = 'admin'
|
||||||
) {
|
) {
|
||||||
file { '/root/openrc':
|
file { '/root/openrc':
|
||||||
content =>
|
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 (
|
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
|
# Network
|
||||||
$public_interface = 'eth0',
|
$public_interface = 'eth0',
|
||||||
$private_interface = 'eth1',
|
$private_interface = 'eth1',
|
||||||
$internal_address = undef,
|
$internal_address = $public_address,
|
||||||
$admin_address = undef,
|
$admin_address = $public_address,
|
||||||
$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 = false,
|
$floating_range = false,
|
||||||
@@ -44,6 +61,7 @@ class openstack::controller (
|
|||||||
# Keystone
|
# Keystone
|
||||||
$keystone_db_user = 'keystone',
|
$keystone_db_user = 'keystone',
|
||||||
$keystone_db_dbname = 'keystone',
|
$keystone_db_dbname = 'keystone',
|
||||||
|
$keystone_admin_tenant = 'admin',
|
||||||
# Glance
|
# Glance
|
||||||
$glance_db_user = 'glance',
|
$glance_db_user = 'glance',
|
||||||
$glance_db_dbname = 'glance',
|
$glance_db_dbname = 'glance',
|
||||||
@@ -64,46 +82,15 @@ class openstack::controller (
|
|||||||
# General
|
# General
|
||||||
$verbose = false,
|
$verbose = false,
|
||||||
$exported_resources = true,
|
$exported_resources = true,
|
||||||
$enabled = 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 {
|
|
||||||
|
|
||||||
|
# Ensure things are run in order
|
||||||
## NOTE Class['glance::db::mysql'] -> Class['glance::registry']
|
Class['openstack::db::mysql'] -> Class['openstack::keystone']
|
||||||
## this dependency needs to exist (I forgot exactly why?)
|
Class['openstack::db::mysql'] -> Class['openstack::glance']
|
||||||
# the db migration needs to happen after the dbs are created
|
Class['openstack::db::mysql'] -> Class['openstack::nova::controller']
|
||||||
|
|
||||||
# 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
|
|
||||||
}
|
|
||||||
|
|
||||||
####### DATABASE SETUP ######
|
####### DATABASE SETUP ######
|
||||||
if $enabled {
|
|
||||||
# set up mysql server
|
# set up mysql server
|
||||||
case $db_type {
|
case $db_type {
|
||||||
'mysql': {
|
'mysql': {
|
||||||
@@ -111,7 +98,6 @@ class openstack::controller (
|
|||||||
mysql_root_password => $mysql_root_password,
|
mysql_root_password => $mysql_root_password,
|
||||||
mysql_bind_address => $mysql_bind_address,
|
mysql_bind_address => $mysql_bind_address,
|
||||||
mysql_account_security => $mysql_account_security,
|
mysql_account_security => $mysql_account_security,
|
||||||
allowed_hosts => $allowed_hosts,
|
|
||||||
keystone_db_user => $keystone_db_user,
|
keystone_db_user => $keystone_db_user,
|
||||||
keystone_db_password => $keystone_db_password,
|
keystone_db_password => $keystone_db_password,
|
||||||
keystone_db_dbname => $keystone_db_dbname,
|
keystone_db_dbname => $keystone_db_dbname,
|
||||||
@@ -121,13 +107,12 @@ class openstack::controller (
|
|||||||
nova_db_user => $nova_db_user,
|
nova_db_user => $nova_db_user,
|
||||||
nova_db_password => $nova_db_password,
|
nova_db_password => $nova_db_password,
|
||||||
nova_db_dbname => $nova_db_dbname,
|
nova_db_dbname => $nova_db_dbname,
|
||||||
}
|
allowed_hosts => $allowed_hosts,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
####### KEYSTONE ###########
|
####### KEYSTONE ###########
|
||||||
if ($enabled) {
|
|
||||||
class { 'openstack::keystone':
|
class { 'openstack::keystone':
|
||||||
verbose => $verbose,
|
verbose => $verbose,
|
||||||
db_type => $db_type,
|
db_type => $db_type,
|
||||||
@@ -136,16 +121,18 @@ class openstack::controller (
|
|||||||
keystone_db_dbname => $keystone_db_dbname,
|
keystone_db_dbname => $keystone_db_dbname,
|
||||||
keystone_db_user => $keystone_db_user,
|
keystone_db_user => $keystone_db_user,
|
||||||
keystone_admin_token => $keystone_admin_token,
|
keystone_admin_token => $keystone_admin_token,
|
||||||
|
keystone_admin_tenant => $keystone_admin_tenant,
|
||||||
admin_email => $admin_email,
|
admin_email => $admin_email,
|
||||||
admin_password => $admin_password,
|
admin_password => $admin_password,
|
||||||
public_address => $public_address,
|
public_address => $public_address,
|
||||||
internal_address => $internal_address,
|
internal_address => $internal_address,
|
||||||
admin_address => $admin_address,
|
admin_address => $admin_address,
|
||||||
}
|
glance_user_password => $glance_user_password,
|
||||||
|
nova_user_password => $nova_user_password,
|
||||||
|
enabled => $enabled,
|
||||||
}
|
}
|
||||||
|
|
||||||
######## BEGIN GLANCE ##########
|
######## BEGIN GLANCE ##########
|
||||||
if ($enabled) {
|
|
||||||
class { 'openstack::glance':
|
class { 'openstack::glance':
|
||||||
verbose => $verbose,
|
verbose => $verbose,
|
||||||
db_type => $db_type,
|
db_type => $db_type,
|
||||||
@@ -154,10 +141,7 @@ class openstack::controller (
|
|||||||
glance_db_dbname => $glance_db_dbname,
|
glance_db_dbname => $glance_db_dbname,
|
||||||
glance_db_password => $glance_db_password,
|
glance_db_password => $glance_db_password,
|
||||||
glance_user_password => $glance_user_password,
|
glance_user_password => $glance_user_password,
|
||||||
public_address => $public_address,
|
enabled => $enabled,
|
||||||
admin_address => $admin_address,
|
|
||||||
internal_address => $internal_addrss,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
######## BEGIN NOVA ###########
|
######## BEGIN NOVA ###########
|
||||||
@@ -171,7 +155,6 @@ class openstack::controller (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if $enabled {
|
|
||||||
class { 'openstack::nova::controller':
|
class { 'openstack::nova::controller':
|
||||||
# Database
|
# Database
|
||||||
db_host => '127.0.0.1',
|
db_host => '127.0.0.1',
|
||||||
@@ -204,7 +187,6 @@ class openstack::controller (
|
|||||||
enabled => $enabled,
|
enabled => $enabled,
|
||||||
exported_resources => $exported_resources,
|
exported_resources => $exported_resources,
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
######## Horizon ########
|
######## Horizon ########
|
||||||
class { 'openstack::horizon':
|
class { 'openstack::horizon':
|
||||||
@@ -217,5 +199,10 @@ class openstack::controller (
|
|||||||
}
|
}
|
||||||
|
|
||||||
######## auth file ########
|
######## 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,
|
$mysql_root_password,
|
||||||
$keystone_db_password,
|
$keystone_db_password,
|
||||||
$glance_db_password,
|
$glance_db_password,
|
||||||
$nova_db_password
|
$nova_db_password,
|
||||||
# MySQL
|
# MySQL
|
||||||
$mysql_bind_address = '0.0.0.0',
|
$mysql_bind_address = '0.0.0.0',
|
||||||
$mysql_account_security = true,
|
$mysql_account_security = true,
|
||||||
@@ -47,12 +47,10 @@ class openstack::db::mysql (
|
|||||||
config_hash => {
|
config_hash => {
|
||||||
'root_password' => $mysql_root_password,
|
'root_password' => $mysql_root_password,
|
||||||
'bind_address' => $mysql_bind_address,
|
'bind_address' => $mysql_bind_address,
|
||||||
}
|
},
|
||||||
enabled => $enabled,
|
enabled => $enabled,
|
||||||
}
|
}
|
||||||
|
|
||||||
if $enabled {
|
|
||||||
# If enabled, secure the mysql installation
|
|
||||||
# This removes default users and guest access
|
# This removes default users and guest access
|
||||||
if $mysql_account_security {
|
if $mysql_account_security {
|
||||||
class { 'mysql::server::account_security': }
|
class { 'mysql::server::account_security': }
|
||||||
@@ -82,4 +80,3 @@ class openstack::db::mysql (
|
|||||||
allowed_hosts => $allowed_hosts,
|
allowed_hosts => $allowed_hosts,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@@ -21,14 +21,15 @@
|
|||||||
# }
|
# }
|
||||||
|
|
||||||
class openstack::glance (
|
class openstack::glance (
|
||||||
$keystone_host,
|
|
||||||
$db_host,
|
$db_host,
|
||||||
$glance_user_password,
|
$glance_user_password,
|
||||||
$glance_db_password,
|
$glance_db_password,
|
||||||
|
$keystone_host = '127.0.0.1',
|
||||||
|
$auth_uri = "http://${keystone_host}:5000/",
|
||||||
$db_type = 'mysql',
|
$db_type = 'mysql',
|
||||||
$glance_db_user = 'glance',
|
$glance_db_user = 'glance',
|
||||||
$glance_db_dbname = 'glance',
|
$glance_db_dbname = 'glance',
|
||||||
$verbose = false,
|
$verbose = 'False',
|
||||||
$enabled = true
|
$enabled = true
|
||||||
) {
|
) {
|
||||||
|
|
||||||
@@ -45,6 +46,8 @@ class openstack::glance (
|
|||||||
log_debug => $verbose,
|
log_debug => $verbose,
|
||||||
auth_type => 'keystone',
|
auth_type => 'keystone',
|
||||||
auth_port => '35357',
|
auth_port => '35357',
|
||||||
|
auth_uri => $auth_uri,
|
||||||
|
auth_host => $keystone_host,
|
||||||
keystone_tenant => 'services',
|
keystone_tenant => 'services',
|
||||||
keystone_user => 'glance',
|
keystone_user => 'glance',
|
||||||
keystone_password => $glance_user_password,
|
keystone_password => $glance_user_password,
|
||||||
@@ -58,6 +61,7 @@ class openstack::glance (
|
|||||||
auth_host => $keystone_host,
|
auth_host => $keystone_host,
|
||||||
auth_port => '35357',
|
auth_port => '35357',
|
||||||
auth_type => 'keystone',
|
auth_type => 'keystone',
|
||||||
|
auth_uri => $auth_uri,
|
||||||
keystone_tenant => 'services',
|
keystone_tenant => 'services',
|
||||||
keystone_user => 'glance',
|
keystone_user => 'glance',
|
||||||
keystone_password => $glance_user_password,
|
keystone_password => $glance_user_password,
|
||||||
|
@@ -4,6 +4,10 @@
|
|||||||
# Class to install / configure horizon.
|
# Class to install / configure horizon.
|
||||||
# Will eventually include apache and ssl.
|
# 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
|
# === Parameters
|
||||||
#
|
#
|
||||||
# See params.pp
|
# See params.pp
|
||||||
@@ -16,12 +20,17 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
class openstack::horizon (
|
class openstack::horizon (
|
||||||
|
$secret_key,
|
||||||
$cache_server_ip = '127.0.0.1',
|
$cache_server_ip = '127.0.0.1',
|
||||||
$cache_server_port = '11211',
|
$cache_server_port = '11211',
|
||||||
$swift = false,
|
$swift = false,
|
||||||
$quantum = false,
|
$quantum = false,
|
||||||
$horizon_app_links = undef,
|
$horizon_app_links = undef,
|
||||||
$secret_key
|
$keystone_host = '127.0.0.1',
|
||||||
|
$keystone_scheme = 'http',
|
||||||
|
$keystone_default_role = 'Member',
|
||||||
|
$django_debug = 'False',
|
||||||
|
$api_result_limit = 1000
|
||||||
) {
|
) {
|
||||||
|
|
||||||
class { 'memcached':
|
class { 'memcached':
|
||||||
@@ -35,5 +44,10 @@ class openstack::horizon (
|
|||||||
swift => $swift,
|
swift => $swift,
|
||||||
quantum => $quantum,
|
quantum => $quantum,
|
||||||
horizon_app_links => $horizon_app_links,
|
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 (
|
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,
|
$db_host,
|
||||||
$keystone_db_password,
|
$keystone_db_password,
|
||||||
$keystone_admin_token,
|
$keystone_admin_token,
|
||||||
$admin_email,
|
$admin_email,
|
||||||
$admin_password,
|
$admin_password,
|
||||||
$public_address
|
$glance_user_password,
|
||||||
) inherits openstack::params {
|
$nova_user_password,
|
||||||
|
$public_address,
|
||||||
# Configure admin_address and internal address if needed.
|
$db_type = 'mysql',
|
||||||
if (admin_address == undef) {
|
$keystone_db_user = 'keystone',
|
||||||
$real_admin_address = $public_address
|
$keystone_db_dbname = 'keystone',
|
||||||
} else {
|
$keystone_admin_tenant = 'admin',
|
||||||
$real_admin_address = $admin_address
|
$verbose = 'False',
|
||||||
}
|
$bind_host = '0.0.0.0',
|
||||||
|
$admin_address = $public_address,
|
||||||
if (internal_address == undef) {
|
$internal_address = $public_address,
|
||||||
$real_internal_address = $public_address
|
$glance = true,
|
||||||
} else {
|
$nova = true,
|
||||||
$real_internal_address = $internal_address
|
$enabled = true,
|
||||||
}
|
) {
|
||||||
|
|
||||||
# Install and configure Keystone
|
# Install and configure Keystone
|
||||||
class { '::keystone':
|
class { '::keystone':
|
||||||
@@ -53,6 +46,7 @@ class openstack::keystone (
|
|||||||
log_debug => $verbose,
|
log_debug => $verbose,
|
||||||
catalog_type => 'sql',
|
catalog_type => 'sql',
|
||||||
admin_token => $keystone_admin_token,
|
admin_token => $keystone_admin_token,
|
||||||
|
enabled => $enabled,
|
||||||
}
|
}
|
||||||
|
|
||||||
# Setup the admin user
|
# Setup the admin user
|
||||||
@@ -65,16 +59,28 @@ class openstack::keystone (
|
|||||||
# Setup the Keystone Identity Endpoint
|
# Setup the Keystone Identity Endpoint
|
||||||
class { 'keystone::endpoint':
|
class { 'keystone::endpoint':
|
||||||
public_address => $public_address,
|
public_address => $public_address,
|
||||||
admin_address => $real_admin_address,
|
admin_address => $admin_address,
|
||||||
internal_address => $real_internal_address,
|
internal_address => $internal_address,
|
||||||
}
|
}
|
||||||
|
|
||||||
# Configure Glance to use Keystone
|
# Configure Glance endpoint in Keystone
|
||||||
|
if $glance {
|
||||||
class { 'glance::keystone::auth':
|
class { 'glance::keystone::auth':
|
||||||
password => $glance_user_password,
|
password => $glance_user_password,
|
||||||
public_address => $public_address,
|
public_address => $public_address,
|
||||||
admin_address => $real_admin_address,
|
admin_address => $admin_address,
|
||||||
internal_address => $real_internal_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
|
# Configure the Keystone database
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# == Class: openstack::nova::compute
|
# == Class: openstack::compute
|
||||||
#
|
#
|
||||||
# Manifest to install/configure nova-compute and nova-volume
|
# Manifest to install/configure nova-compute and nova-volume
|
||||||
#
|
#
|
||||||
@@ -15,18 +15,13 @@
|
|||||||
# nova_user_password => 'changeme',
|
# 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 (
|
class openstack::nova::compute (
|
||||||
# Required Network
|
# Required Network
|
||||||
$internal_address,
|
$internal_address,
|
||||||
# Required Nova
|
# Required Nova
|
||||||
$nova_user_password,
|
$nova_user_password,
|
||||||
|
# Required Rabbit
|
||||||
|
$rabbit_password,
|
||||||
# Network
|
# Network
|
||||||
$public_address = undef,
|
$public_address = undef,
|
||||||
$public_interface = 'eth0',
|
$public_interface = 'eth0',
|
||||||
@@ -35,6 +30,15 @@ class openstack::nova::compute (
|
|||||||
$network_manager = 'nova.network.manager.FlatDHCPManager',
|
$network_manager = 'nova.network.manager.FlatDHCPManager',
|
||||||
$network_config = {},
|
$network_config = {},
|
||||||
$multi_host = false,
|
$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
|
# Virtualization
|
||||||
$libvirt_type = 'kvm',
|
$libvirt_type = 'kvm',
|
||||||
# Volumes
|
# Volumes
|
||||||
@@ -43,7 +47,6 @@ class openstack::nova::compute (
|
|||||||
$iscsi_ip_address = $internal_address,
|
$iscsi_ip_address = $internal_address,
|
||||||
# VNC
|
# VNC
|
||||||
$vnc_enabled = true,
|
$vnc_enabled = true,
|
||||||
$vncserver_proxyclient_address = undef,
|
|
||||||
$vncproxy_host = undef,
|
$vncproxy_host = undef,
|
||||||
# General
|
# General
|
||||||
$verbose = false,
|
$verbose = false,
|
||||||
@@ -51,9 +54,45 @@ class openstack::nova::compute (
|
|||||||
$enabled = true
|
$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
|
# Install / configure nova-compute
|
||||||
class { '::nova::compute':
|
class { '::nova::compute':
|
||||||
enabled => true,
|
enabled => $enabled,
|
||||||
vnc_enabled => $vnc_enabled,
|
vnc_enabled => $vnc_enabled,
|
||||||
vncserver_proxyclient_address => $internal_address,
|
vncserver_proxyclient_address => $internal_address,
|
||||||
vncproxy_host => $vncproxy_host,
|
vncproxy_host => $vncproxy_host,
|
||||||
@@ -62,7 +101,7 @@ class openstack::nova::compute (
|
|||||||
# Configure libvirt for nova-compute
|
# Configure libvirt for nova-compute
|
||||||
class { 'nova::compute::libvirt':
|
class { 'nova::compute::libvirt':
|
||||||
libvirt_type => $libvirt_type,
|
libvirt_type => $libvirt_type,
|
||||||
vncserver_listen => $real_vncserver_listen,
|
vncserver_listen => $internal_address,
|
||||||
}
|
}
|
||||||
|
|
||||||
# if the compute node should be configured as a multi-host
|
# if the compute node should be configured as a multi-host
|
||||||
@@ -92,6 +131,7 @@ class openstack::nova::compute (
|
|||||||
}
|
}
|
||||||
|
|
||||||
# set up configuration for networking
|
# set up configuration for networking
|
||||||
|
# NOTE should the if block be removed? -jtopjian
|
||||||
if $enable_network_service {
|
if $enable_network_service {
|
||||||
class { 'nova::network':
|
class { 'nova::network':
|
||||||
private_interface => $private_interface,
|
private_interface => $private_interface,
|
||||||
|
@@ -58,7 +58,7 @@ class openstack::nova::controller (
|
|||||||
$nova_user_password,
|
$nova_user_password,
|
||||||
$nova_db_password,
|
$nova_db_password,
|
||||||
|
|
||||||
) inherits openstack::params {
|
) {
|
||||||
|
|
||||||
# Configure admin_address and internal address if needed.
|
# Configure admin_address and internal address if needed.
|
||||||
if (admin_address == undef) {
|
if (admin_address == undef) {
|
||||||
@@ -114,14 +114,6 @@ class openstack::nova::controller (
|
|||||||
enabled => $enabled,
|
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
|
# Configure Nova
|
||||||
class { 'nova':
|
class { 'nova':
|
||||||
sql_connection => $sql_connection,
|
sql_connection => $sql_connection,
|
||||||
@@ -181,9 +173,10 @@ class openstack::nova::controller (
|
|||||||
'nova::cert',
|
'nova::cert',
|
||||||
'nova::consoleauth'
|
'nova::consoleauth'
|
||||||
]:
|
]:
|
||||||
enabled => true
|
enabled => $enabled,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# NOTE should this just be enabled => $vnc_enabled? -jtopjian
|
||||||
if $vnc_enabled {
|
if $vnc_enabled {
|
||||||
class { 'nova::vncproxy':
|
class { 'nova::vncproxy':
|
||||||
enabled => true,
|
enabled => true,
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
class { 'openstack::compute':
|
class { 'openstack::nova::compute':
|
||||||
exported_resources => false,
|
exported_resources => false,
|
||||||
sql_connection => 'mysql://foo:bar@192.168.1.1/nova',
|
sql_connection => 'mysql://foo:bar@192.168.1.1/nova',
|
||||||
glance_api_servers => '192.168.1.1:9292',
|
glance_api_servers => '192.168.1.1:9292',
|
||||||
|
Reference in New Issue
Block a user