System configuration for OpenStack Infrastructure
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

194 lines
9.5 KiB

# Copyright 2013 OpenStack Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# openstackid idp(sso-openid) server
#
class openstack_project::openstackid_prod (
$site_admin_password = '',
$id_mysql_host = '',
$id_mysql_user = '',
$id_mysql_password = '',
$id_db_name = '',
$redis_port = '6378',
$redis_max_memory = '1gb',
$redis_bind = '127.0.0.1',
$redis_password = '',
$redis_version = '2.8.4',
$id_recaptcha_public_key = '',
$id_recaptcha_private_key = '',
$id_recaptcha_template = '',
$id_log_error_to_email = '',
$id_log_error_from_email = '',
$id_environment = 'production',
$ssl_cert_file_contents = '',
$ssl_key_file_contents = '',
$ssl_chain_file_contents = '',
$vhost_name = '',
$serveradmin = '',
$canonicalweburl = '',
$session_cookie_domain = '',
$release = '3.0.14',
$app_url = '',
$app_key = '',
$email_driver = 'mail',
$email_send_grid_api_key = '',
$email_smtp_server = 'smtp.mailgun.org',
$email_smtp_server_port = 587,
$email_smtp_server_user = '',
$email_smtp_server_password = '',
$laravel_version = 5,
$app_log_level = 'error',
$app_log_email_level = 'error',
$db_log_enabled = false,
$banning_enabled = true,
$app_debug = false,
$app_locale = 'en',
$curl_verify_ssl_cert = true,
$curl_allow_redirect = false,
$curl_timeout = 60,
$assets_base_url = 'https://www.openstack.org/',
$cache_driver = 'redis',
$session_driver = 'redis',
$session_cookie_secure = false,
$php_version = 7,
$mysql_ssl_enabled = false,
$mysql_ssl_ca_file = '/etc/mysql-client-ssl/ca-cert.pem',
$mysql_ssl_ca_file_contents = '',
$mysql_ssl_client_key_file = '/etc/mysql-client-ssl/client-key.pem',
$mysql_ssl_client_key_file_contents = '',
$mysql_ssl_client_cert_file = '/etc/mysql-client-ssl/client-cert.pem',
$mysql_ssl_client_cert_file_contents = '',
$user_spam_processor_to = '',
$message_broker_exchange_name = 'message-broker',
$message_broker_host = '',
$message_broker_port = 5672,
$message_broker_vhost = 'databus',
$message_broker_login = '',
$message_broker_password = '',
$message_broker_ssl_enabled = false,
$message_broker_ssl_ca_file = '/etc/rabbitmq-client-ssl/ca-cert.pem',
$message_broker_ssl_ca_file_contents = '',
$message_broker_ssl_client_cert_file = '/etc/rabbitmq-client-ssl/client-cert.pem',
$message_broker_ssl_client_cert_file_contents = '',
$message_broker_ssl_client_key_file = '/etc/rabbitmq-client-ssl/client-key.pem',
$message_broker_ssl_client_key_file_contents = '',
$message_broker_enabled = false,
$cloud_storage_base_url = '',
$cloud_storage_auth_url = '',
$cloud_storage_app_credential_id = '',
$cloud_storage_app_credential_secret = '',
$cloud_storage_project_name = '',
$cloud_storage_region = '',
$cloud_storage_container = '',
) {
class { 'openstack_project::server': }
class { 'openstackid':
site_admin_password => $site_admin_password,
id_mysql_host => $id_mysql_host,
id_mysql_user => $id_mysql_user,
id_mysql_password => $id_mysql_password,
id_db_name => $id_db_name,
redis_port => $redis_port,
redis_host => $redis_bind,
redis_password => $redis_password,
id_recaptcha_public_key => $id_recaptcha_public_key,
id_recaptcha_private_key => $id_recaptcha_private_key,
id_recaptcha_template => $id_recaptcha_template,
id_log_error_to_email => $id_log_error_to_email,
id_log_error_from_email => $id_log_error_from_email,
id_environment => $id_environment,
ssl_cert_file => "/etc/ssl/certs/${::fqdn}.pem",
ssl_key_file => "/etc/ssl/private/${::fqdn}.key",
ssl_chain_file => '/etc/ssl/certs/intermediate.pem',
ssl_cert_file_contents => $ssl_cert_file_contents,
ssl_key_file_contents => $ssl_key_file_contents,
ssl_chain_file_contents => $ssl_chain_file_contents,
vhost_name => $vhost_name,
serveradmin => $serveradmin,
canonicalweburl => $canonicalweburl,
session_cookie_domain => $session_cookie_domain,
openstackid_release => $release,
app_url => $app_url,
app_key => $app_key,
app_version => $release,
email_driver => $email_driver,
email_send_grid_api_key => $email_send_grid_api_key,
email_smtp_server => $email_smtp_server,
email_smtp_server_port => $email_smtp_server_port,
email_smtp_server_user => $email_smtp_server_user,
email_smtp_server_password => $email_smtp_server_password,
laravel_version => $laravel_version,
app_log_level => $app_log_level,
app_log_email_level => $app_log_email_level,
db_log_enabled => $db_log_enabled,
banning_enabled => $banning_enabled,
app_debug => $app_debug,
app_locale => $app_locale,
curl_verify_ssl_cert => $curl_verify_ssl_cert,
curl_allow_redirect => $curl_allow_redirect,
curl_timeout => $curl_timeout,
assets_base_url => $assets_base_url,
cache_driver => $cache_driver,
session_driver => $session_driver,
session_cookie_secure => $session_cookie_secure,
php_version => $php_version,
mysql_ssl_enabled => $mysql_ssl_enabled,
mysql_ssl_ca_file => $mysql_ssl_ca_file,
mysql_ssl_ca_file_contents => $mysql_ssl_ca_file_contents,
mysql_ssl_client_key_file => $mysql_ssl_client_key_file,
mysql_ssl_client_key_file_contents => $mysql_ssl_client_key_file_contents,
mysql_ssl_client_cert_file => $mysql_ssl_client_cert_file,
mysql_ssl_client_cert_file_contents => $mysql_ssl_client_cert_file_contents,
user_spam_processor_to => $user_spam_processor_to,
message_broker_exchange_name => $message_broker_exchange_name,
message_broker_host => $message_broker_host,
message_broker_port => $message_broker_port,
message_broker_vhost => $message_broker_vhost,
message_broker_login => $message_broker_login,
message_broker_password => $message_broker_password,
message_broker_ssl_enabled => $message_broker_ssl_enabled,
message_broker_ssl_ca_file => $message_broker_ssl_ca_file,
message_broker_ssl_ca_file_contents => $message_broker_ssl_ca_file_contents,
message_broker_ssl_client_cert_file => $message_broker_ssl_client_cert_file,
message_broker_ssl_client_cert_file_contents => $message_broker_ssl_client_cert_file_contents,
message_broker_ssl_client_key_file => $message_broker_ssl_client_key_file,
message_broker_ssl_client_key_file_contents => $message_broker_ssl_client_key_file_contents,
message_broker_enabled => $message_broker_enabled,
cloud_storage_base_url => $cloud_storage_base_url,
cloud_storage_auth_url => $cloud_storage_auth_url,
cloud_storage_app_credential_id => $cloud_storage_app_credential_id,
cloud_storage_app_credential_secret => $cloud_storage_app_credential_secret,
cloud_storage_project_name => $cloud_storage_project_name,
cloud_storage_region => $cloud_storage_region,
cloud_storage_container => $cloud_storage_container,
}
# redis (custom module written by tipit)
class { 'redis':
redis_port => $redis_port,
redis_max_memory => $redis_max_memory,
redis_bind => $redis_bind,
redis_password => $redis_password,
version => $redis_version ,
}
mysql_backup::backup_remote { $id_db_name:
database_host => $id_mysql_host,
database_user => $id_mysql_user,
database_password => $id_mysql_password,
}
}