Generate injected guest agent configuration file

Change-Id: I5488d8716331fe42b5d0aca6d3b93d8920eef13b
This commit is contained in:
Sylvain Baubeau 2014-07-09 13:30:03 +02:00
parent 6cad2a1474
commit e009fae96b
4 changed files with 106 additions and 16 deletions

View File

@ -46,10 +46,6 @@
# (optional) Authentication URL.
# Defaults to 'http://localhost:5000/v2.0'.
#
# [*control_exchange*]
# (optional) Control exchange.
# Defaults to 'trove'.
#
# [*conductor_manager*]
# (optional) Trove conductor manager.
# Defaults to 'trove.conductor.manager.Manager'.
@ -65,7 +61,6 @@ class trove::conductor(
$use_syslog = false,
$log_facility = 'LOG_USER',
$auth_url = 'http://localhost:5000/v2.0',
$control_exchange = 'trove',
$conductor_manager = 'trove.conductor.manager.Manager',
) inherits trove {
@ -103,7 +98,7 @@ class trove::conductor(
'DEFAULT/nova_proxy_admin_user': value => $::trove::nova_proxy_admin_user;
'DEFAULT/nova_proxy_admin_tenant_name': value => $::trove::nova_proxy_admin_tenant_name;
'DEFAULT/nova_proxy_admin_pass': value => $::trove::nova_proxy_admin_pass;
'DEFAULT/control_exchange': value => $control_exchange;
'DEFAULT/control_exchange': value => $::trove::control_exchange;
}
if $::trove::rpc_backend == 'trove.openstack.common.rpc.impl_kombu' {

View File

@ -137,6 +137,10 @@
# (optional) Admin tenant name used to connect to nova.
# Defaults to 'admin'
#
# [*control_exchange*]
# (optional) Control exchange.
# Defaults to 'trove'.
#
class trove(
$nova_proxy_admin_pass,
@ -159,6 +163,7 @@ class trove(
$rpc_backend = 'trove.openstack.common.rpc.impl_kombu',
$nova_proxy_admin_user = 'admin',
$nova_proxy_admin_tenant_name = 'admin',
$control_exchange = 'trove',
){
include trove::params

View File

@ -63,18 +63,24 @@
# (optional) Authentication URL.
# Defaults to 'http://localhost:5000/v2.0'.
#
# [**guestagent_config_file*]
# (optional) Trove guest agent configuration file.
# Defaults to '/etc/trove/trove-guestmanager.conf'.
#
class trove::taskmanager(
$enabled = true,
$manage_service = true,
$debug = false,
$verbose = false,
$log_file = '/var/log/trove/trove-taskmanager.log',
$log_dir = '/var/log/trove',
$use_syslog = false,
$log_facility = 'LOG_USER',
$auth_url = 'http://localhost:5000/v2.0',
$ensure_package = 'present'
$enabled = true,
$manage_service = true,
$debug = false,
$verbose = false,
$log_file = '/var/log/trove/trove-taskmanager.log',
$log_dir = '/var/log/trove',
$use_syslog = false,
$log_facility = 'LOG_USER',
$auth_url = 'http://localhost:5000/v2.0',
$heat_url = false,
$ensure_package = 'present',
$guestagent_config_file = '/etc/trove/trove-guestmanager.conf'
) inherits trove {
include trove::params
@ -208,4 +214,15 @@ class trove::taskmanager(
service_name => $::trove::params::taskmanager_service_name,
ensure_package => $ensure_package,
}
if $guestagent_config_file {
file { $guestagent_config_file:
content => template('trove/trove-guestagent.conf.erb')
}
trove_taskmanager_config {
'DEFAULT/guest_config': value => $guestagent_config_file
}
}
}

View File

@ -0,0 +1,73 @@
[DEFAULT]
# Show more verbose log output (sets INFO log level output)
verbose = <%= @verbose %>
# Show debugging output in logs (sets DEBUG log level output)
debug = <%= @debug %>
# Address to bind the API server
bind_host = 0.0.0.0
# Port the bind the API server to
bind_port = 8778
# AMQP Connection info
rabbit_user=<%= @rabbit_userid %>
rabbit_password=<%= @rabbit_password %>
# Path to the extensions
api_extensions_path = trove/extensions/routes
# Configuration options for talking to nova via the novaclient.
# These options are for an admin user in your keystone config.
# It proxies the token received from the user to send to nova via this admin users creds,
# basically acting like the client via that proxy token.
nova_proxy_admin_user = <%= @nova_proxy_admin_user %>
nova_proxy_admin_pass = <%= @nova_proxy_admin_pass %>
nova_proxy_admin_tenant_name = <%= @nova_proxy_admin_tenant_name %>
trove_auth_url = <%= @auth_url %>
swift_url = http://localhost:8080/v1/AUTH_
# Datastore management implementations. Format datastore:manager.impl
# datastore_registry_ext = mysql:trove.guestagent.datastore.mysql.manager.Manager, percona:trove.guestagent.datastore.mysql.manager.Manager
# Root configuration
root_grant = ALL
root_grant_option = True
#root_grant = ALTER ROUTINE, CREATE, ALTER, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, CREATE USER, DELETE, DROP, EVENT, EXECUTE, INDEX, INSERT, LOCK TABLES, PROCESS, REFERENCES, SELECT, SHOW DATABASES, SHOW VIEW, TRIGGER, UPDATE, USAGE
#root_grant_option = False
# used by passlib to generate root password
#default_password_length = 36
# For communicating with trove-conductor
control_exchange = <%= @control_exchange %>
# ============ kombu connection options ========================
rabbit_host=<%= @rabbit_host %>
# ============ Logging information =============================
log_dir = /tmp/
log_file = logfile.txt
# Users to ignore for user create/list/delete operations
ignore_users = os_admin
ignore_dbs = lost+found, mysql, information_schema
# Strategy information for backups
backup_namespace = trove.guestagent.strategies.backup.mysql_impl
# Additional commandline options to be passed to the backup runner (by strategy). For example:
# backup_runner_options = InnoBackupEx:--no-lock, MySQLDump:--events --routines --triggers
restore_namespace = trove.guestagent.strategies.restore.mysql_impl
storage_strategy = SwiftStorage
storage_namespace = trove.guestagent.strategies.storage.swift
backup_swift_container = database_backups
backup_use_gzip_compression = True
backup_use_openssl_encryption = True
backup_aes_cbc_key = "default_aes_cbc_key"
backup_use_snet = False
backup_chunk_size = 65536
backup_segment_max_size = 2147483648