Merge branch 'master' of github.com:enovance/puppet-ceilometer
This commit is contained in:
commit
e081f9704a
|
@ -0,0 +1,22 @@
|
|||
Puppet::Type.type(:ceilometer_config).provide(
|
||||
:ini_setting,
|
||||
:parent => Puppet::Type.type(:ini_setting).provider(:ruby)
|
||||
) do
|
||||
|
||||
def section
|
||||
resource[:name].split('/', 2).first
|
||||
end
|
||||
|
||||
def setting
|
||||
resource[:name].split('/', 2).last
|
||||
end
|
||||
|
||||
def separator
|
||||
'='
|
||||
end
|
||||
|
||||
def file_path
|
||||
'/etc/ceilometer/ceilometer.conf'
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,18 @@
|
|||
Puppet::Type.newtype(:ceilometer_config) do
|
||||
|
||||
ensurable
|
||||
|
||||
newparam(:name, :namevar => true) do
|
||||
desc 'Section/setting name to manage from ceilometer.conf'
|
||||
newvalues(/\S+\/\S+/)
|
||||
end
|
||||
|
||||
newproperty(:value) do
|
||||
desc 'The value of the setting to be defined.'
|
||||
munge do |v|
|
||||
v.to_s.strip
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
end
|
|
@ -1,48 +1,19 @@
|
|||
class ceilometer::collector(
|
||||
$keystone_password,
|
||||
$verbose = 'False',
|
||||
$debug = 'False',
|
||||
$rabbit_host = '127.0.0.1',
|
||||
$rabbit_port = 5672,
|
||||
$rabbit_userid = 'guest',
|
||||
$rabbit_password = '',
|
||||
$rabbit_virtualhost = '/',
|
||||
$database_connection = 'mysql://ceilometer:ceilometer@127.0.0.1/ceilometer',
|
||||
$keystone_host = '127.0.0.1',
|
||||
$keystone_port = '35357',
|
||||
$keystone_protocol = 'http',
|
||||
$keystone_user = 'ceilometer',
|
||||
class ceilometer::agent-central(
|
||||
$enabled = true,
|
||||
) {
|
||||
|
||||
package { 'ceilometer-collector':
|
||||
package { 'ceilometer-agent-central':
|
||||
ensure => installed
|
||||
}
|
||||
|
||||
ceilometer_setting {
|
||||
'DEFAULT/rabbit_host': value => $rabbit_host;
|
||||
'DEFAULT/rabbit_port': value => $rabbit_port;
|
||||
'DEFAULT/rabbit_userid': value => $rabbit_userid;
|
||||
'DEFAULT/rabbit_password': value => $rabbit_password;
|
||||
'DEFAULT/rabbit_virtualhost': value => $rabbit_virtualhost;
|
||||
'DEFAULT/debug': value => $debug;
|
||||
'DEFAULT/verbose': value => $verbose;
|
||||
'DEFAULT/database_connection': value => $database_connection;
|
||||
'keystone_authtoken/auth_host': value => $keystone_host;
|
||||
'keystone_authtoken/auth_port': value => $keystone_port;
|
||||
'keystone_authtoken/protocol': value => $keystone_protocol;
|
||||
}
|
||||
|
||||
file { ['/etc/ceilometer/ceilometer.conf']:
|
||||
}
|
||||
|
||||
if $enabled {
|
||||
$service_ensure = 'running'
|
||||
} else {
|
||||
$service_ensure = 'stopped'
|
||||
}
|
||||
|
||||
service { 'ceilometer-collector':
|
||||
name => $::ceilometer::params::collector_package_name
|
||||
service { 'ceilometer-agent-central':
|
||||
name => $::ceilometer::params::agent_central_name
|
||||
enable => $enabled,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
|
|
|
@ -1,40 +1,11 @@
|
|||
class ceilometer::agent-compute(
|
||||
$keystone_password,
|
||||
$verbose = 'False',
|
||||
$debug = 'False',
|
||||
$rabbit_host = '127.0.0.1',
|
||||
$rabbit_port = 5672,
|
||||
$rabbit_userid = 'guest',
|
||||
$rabbit_password = '',
|
||||
$rabbit_virtualhost = '/',
|
||||
$database_connection = 'mysql://ceilometer:ceilometer@127.0.0.1/ceilometer',
|
||||
$keystone_host = '127.0.0.1',
|
||||
$keystone_port = '35357',
|
||||
$keystone_protocol = 'http',
|
||||
$keystone_user = 'ceilometer',
|
||||
$enabled = true,
|
||||
) {
|
||||
|
||||
package { 'ceilometer-agent-compute':
|
||||
ensure => installed
|
||||
}
|
||||
|
||||
ceilometer_setting {
|
||||
'DEFAULT/rabbit_host': value => $rabbit_host;
|
||||
'DEFAULT/rabbit_port': value => $rabbit_port;
|
||||
'DEFAULT/rabbit_userid': value => $rabbit_userid;
|
||||
'DEFAULT/rabbit_password': value => $rabbit_password;
|
||||
'DEFAULT/rabbit_virtualhost': value => $rabbit_virtualhost;
|
||||
'DEFAULT/debug': value => $debug;
|
||||
'DEFAULT/verbose': value => $verbose;
|
||||
'DEFAULT/database_connection': value => $database_connection;
|
||||
'keystone_authtoken/auth_host': value => $keystone_host;
|
||||
'keystone_authtoken/auth_port': value => $keystone_port;
|
||||
'keystone_authtoken/protocol': value => $keystone_protocol;
|
||||
}
|
||||
|
||||
file { ['/etc/ceilometer/ceilometer.conf']:
|
||||
}
|
||||
|
||||
if $enabled {
|
||||
$service_ensure = 'running'
|
||||
} else {
|
||||
|
@ -42,7 +13,7 @@ class ceilometer::agent-compute(
|
|||
}
|
||||
|
||||
service { 'ceilometer-agent-compute':
|
||||
name => $::ceilometer::params::agent-compute_package_name
|
||||
name => $::ceilometer::params::agent_compute_service_name
|
||||
enable => $enabled,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
|
|
|
@ -1,40 +1,11 @@
|
|||
class ceilometer::api(
|
||||
$keystone_password,
|
||||
$verbose = 'False',
|
||||
$debug = 'False',
|
||||
$rabbit_host = '127.0.0.1',
|
||||
$rabbit_port = 5672,
|
||||
$rabbit_userid = 'guest',
|
||||
$rabbit_password = '',
|
||||
$rabbit_virtualhost = '/',
|
||||
$database_connection = 'mysql://ceilometer:ceilometer@127.0.0.1/ceilometer',
|
||||
$keystone_host = '127.0.0.1',
|
||||
$keystone_port = '35357',
|
||||
$keystone_protocol = 'http',
|
||||
$keystone_user = 'ceilometer',
|
||||
$enabled = true,
|
||||
) {
|
||||
|
||||
package { 'ceilometer-api':
|
||||
ensure => installed
|
||||
}
|
||||
|
||||
ceilometer_setting {
|
||||
'DEFAULT/rabbit_host': value => $rabbit_host;
|
||||
'DEFAULT/rabbit_port': value => $rabbit_port;
|
||||
'DEFAULT/rabbit_userid': value => $rabbit_userid;
|
||||
'DEFAULT/rabbit_password': value => $rabbit_password;
|
||||
'DEFAULT/rabbit_virtualhost': value => $rabbit_virtualhost;
|
||||
'DEFAULT/debug': value => $debug;
|
||||
'DEFAULT/verbose': value => $verbose;
|
||||
'DEFAULT/database_connection': value => $database_connection;
|
||||
'keystone_authtoken/auth_host': value => $keystone_host;
|
||||
'keystone_authtoken/auth_port': value => $keystone_port;
|
||||
'keystone_authtoken/protocol': value => $keystone_protocol;
|
||||
}
|
||||
|
||||
file { ['/etc/ceilometer/ceilometer.conf']:
|
||||
}
|
||||
|
||||
if $enabled {
|
||||
$service_ensure = 'running'
|
||||
} else {
|
||||
|
@ -42,7 +13,7 @@ class ceilometer::api(
|
|||
}
|
||||
|
||||
service { 'ceilometer-api':
|
||||
name => $::ceilometer::params::api_package_name
|
||||
name => $::ceilometer::params::api_service_name
|
||||
enable => $enabled,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
|
|
|
@ -1,40 +1,11 @@
|
|||
class ceilometer::collector(
|
||||
$keystone_password,
|
||||
$verbose = 'False',
|
||||
$debug = 'False',
|
||||
$rabbit_host = '127.0.0.1',
|
||||
$rabbit_port = 5672,
|
||||
$rabbit_userid = 'guest',
|
||||
$rabbit_password = '',
|
||||
$rabbit_virtualhost = '/',
|
||||
$database_connection = 'mysql://ceilometer:ceilometer@127.0.0.1/ceilometer',
|
||||
$keystone_host = '127.0.0.1',
|
||||
$keystone_port = '35357',
|
||||
$keystone_protocol = 'http',
|
||||
$keystone_user = 'ceilometer',
|
||||
$enabled = true,
|
||||
) {
|
||||
|
||||
package { 'ceilometer-collector':
|
||||
ensure => installed
|
||||
}
|
||||
|
||||
ceilometer_setting {
|
||||
'DEFAULT/rabbit_host': value => $rabbit_host;
|
||||
'DEFAULT/rabbit_port': value => $rabbit_port;
|
||||
'DEFAULT/rabbit_userid': value => $rabbit_userid;
|
||||
'DEFAULT/rabbit_password': value => $rabbit_password;
|
||||
'DEFAULT/rabbit_virtualhost': value => $rabbit_virtualhost;
|
||||
'DEFAULT/debug': value => $debug;
|
||||
'DEFAULT/verbose': value => $verbose;
|
||||
'DEFAULT/database_connection': value => $database_connection;
|
||||
'keystone_authtoken/auth_host': value => $keystone_host;
|
||||
'keystone_authtoken/auth_port': value => $keystone_port;
|
||||
'keystone_authtoken/protocol': value => $keystone_protocol;
|
||||
}
|
||||
|
||||
file { ['/etc/ceilometer/ceilometer.conf']:
|
||||
}
|
||||
|
||||
if $enabled {
|
||||
$service_ensure = 'running'
|
||||
} else {
|
||||
|
@ -42,7 +13,7 @@ class ceilometer::collector(
|
|||
}
|
||||
|
||||
service { 'ceilometer-collector':
|
||||
name => $::ceilometer::params::collector_package_name
|
||||
name => $::ceilometer::params::collector_service_name
|
||||
enable => $enabled,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
|
|
|
@ -1,7 +1,3 @@
|
|||
#
|
||||
# I should change this to mysql
|
||||
# for consistency
|
||||
#
|
||||
class ceilometer::db::mysql(
|
||||
$password,
|
||||
$dbname = 'ceilometer',
|
||||
|
@ -9,26 +5,21 @@ class ceilometer::db::mysql(
|
|||
$host = '127.0.0.1',
|
||||
$allowed_hosts = undef,
|
||||
$charset = 'latin1',
|
||||
$cluster_id = 'localzone'
|
||||
) {
|
||||
|
||||
Class['mysql::server'] -> Class['ceilometer::db::mysql']
|
||||
Class['ceilometer::db::mysql'] -> Exec<| title == 'ceilometer-dbsync' |>
|
||||
Database[$dbname] ~> Exec<| title == 'ceilometer-dbsync' |>
|
||||
|
||||
require 'mysql::python'
|
||||
|
||||
mysql::db { $dbname:
|
||||
user => $user,
|
||||
password => $password,
|
||||
host => $host,
|
||||
charset => $charset,
|
||||
# I may want to inject some sql
|
||||
require => Class['mysql::config'],
|
||||
}
|
||||
|
||||
if $allowed_hosts {
|
||||
# TODO this class should be in the mysql namespace
|
||||
ceilometer::db::mysql::host_access { $allowed_hosts:
|
||||
user => $user,
|
||||
password => $password,
|
||||
|
|
|
@ -3,11 +3,29 @@
|
|||
# * package_ensure - ensure state for package.
|
||||
#
|
||||
class ceilometer(
|
||||
$package_ensure = 'present'
|
||||
$package_ensure = 'present',
|
||||
$keystone_password,
|
||||
$verbose = 'False',
|
||||
$debug = 'False',
|
||||
$rabbit_host = '127.0.0.1',
|
||||
$rabbit_port = 5672,
|
||||
$rabbit_userid = 'guest',
|
||||
$rabbit_password = '',
|
||||
$rabbit_virtualhost = '/',
|
||||
$database_connection = 'mysql://ceilometer:ceilometer@127.0.0.1/ceilometer',
|
||||
$keystone_host = '127.0.0.1',
|
||||
$keystone_port = '35357',
|
||||
$keystone_protocol = 'http',
|
||||
$keystone_user = 'ceilometer',
|
||||
) {
|
||||
|
||||
include ceilometer::params
|
||||
|
||||
require 'mysql::python'
|
||||
|
||||
file { '/etc/ceilometer/ceilometer.conf':
|
||||
}
|
||||
|
||||
file { '/etc/ceilometer/':
|
||||
ensure => directory,
|
||||
owner => 'ceilometer',
|
||||
|
@ -15,9 +33,25 @@ class ceilometer(
|
|||
mode => '0770',
|
||||
require => Package['ceilometer']
|
||||
}
|
||||
package { 'ceilometer':
|
||||
name => $::ceilometer::params::package_name,
|
||||
package { 'ceilometer-common':
|
||||
name => $::ceilometer::params::common_package_name,
|
||||
ensure => $package_ensure,
|
||||
}
|
||||
|
||||
ceilometer_setting {
|
||||
'DEFAULT/rabbit_host': value => $rabbit_host;
|
||||
'DEFAULT/rabbit_port': value => $rabbit_port;
|
||||
'DEFAULT/rabbit_userid': value => $rabbit_userid;
|
||||
'DEFAULT/rabbit_password': value => $rabbit_password;
|
||||
'DEFAULT/rabbit_virtualhost': value => $rabbit_virtualhost;
|
||||
'DEFAULT/debug': value => $debug;
|
||||
'DEFAULT/verbose': value => $verbose;
|
||||
'DEFAULT/database_connection': value => $database_connection;
|
||||
'keystone_authtoken/auth_host': value => $keystone_host;
|
||||
'keystone_authtoken/auth_port': value => $keystone_port;
|
||||
'keystone_authtoken/protocol': value => $keystone_protocol;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
#
|
||||
# Sets up ceilometer users, service and endpoint
|
||||
#
|
||||
# == Parameters:
|
||||
#
|
||||
# $auth_name :: identifier used for all keystone objects related to ceilometer.
|
||||
# Optional. Defaults to ceilometer.
|
||||
# $password :: password for ceilometer user. Optional. Defaults to glance_password.
|
||||
# $service_type :: type of service to create. Optional. Defaults to image.
|
||||
# $public_address :: Public address for endpoint. Optional. Defaults to 127.0.0.1.
|
||||
# $admin_address :: Admin address for endpoint. Optional. Defaults to 127.0.0.1.
|
||||
# $inernal_address :: Internal address for endpoint. Optional. Defaults to 127.0.0.1.
|
||||
# $port :: Port for endpoint. Needs to match ceilometer api service port. Optional.
|
||||
# Defaults to 8777.
|
||||
# $region :: Region where endpoint is set.
|
||||
#
|
||||
class ceilometer::keystone::auth(
|
||||
$password,
|
||||
$email = 'ceilometer@localhost',
|
||||
$auth_name = 'ceilometer',
|
||||
$configure_endpoint = true,
|
||||
$service_type = 'metering',
|
||||
$public_address = '127.0.0.1',
|
||||
$admin_address = '127.0.0.1',
|
||||
$internal_address = '127.0.0.1',
|
||||
$port = '8777',
|
||||
$region = 'RegionOne',
|
||||
$tenant = 'services',
|
||||
$public_protocol = 'http'
|
||||
) {
|
||||
|
||||
Keystone_user_role["${auth_name}@${tenant}"] ~> Service <| name == 'ceilometer' |>
|
||||
|
||||
keystone_user { $auth_name:
|
||||
ensure => present,
|
||||
password => $password,
|
||||
email => $email,
|
||||
tenant => $tenant,
|
||||
}
|
||||
keystone_user_role { "${auth_name}@${tenant}":
|
||||
ensure => present,
|
||||
roles => 'admin',
|
||||
}
|
||||
keystone_service { $auth_name:
|
||||
ensure => present,
|
||||
type => $service_type,
|
||||
description => "Openstack Metering Service",
|
||||
}
|
||||
if $configure_endpoint {
|
||||
keystone_endpoint { "${region}/$auth_name":
|
||||
ensure => present,
|
||||
public_url => "${public_protocol}://${public_address}:${port}/v1",
|
||||
admin_url => "http://${admin_address}:${port}/v1",
|
||||
internal_url => "http://${internal_address}:${port}/v1",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
class ceilometer::notify::rabbitmq(
|
||||
$rabbit_password,
|
||||
$rabbit_userid = 'guest',
|
||||
$rabbit_host = 'localhost'
|
||||
) inherits ceilometer::api {
|
||||
|
||||
ceilometer_api_config {
|
||||
'DEFAULT/notifier_strategy': value => 'rabbit';
|
||||
'DEFAULT/rabbit_host': value => $rabbit_host;
|
||||
'DEFAULT/rabbit_password': value => $rabbit_password;
|
||||
'DEFAULT/rabbit_userid': value => $rabbit_userid;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,10 +1,15 @@
|
|||
class ceilometer::params {
|
||||
|
||||
$central_agent_package_name = 'ceilometer-agent-central'
|
||||
$compute_agent_package_name = 'ceilometer-agent-compute'
|
||||
$agent_central_package_name = 'ceilometer-agent-central'
|
||||
$agent_compute_package_name = 'ceilometer-agent-compute'
|
||||
$api_package_name = 'ceilometer-api'
|
||||
$collector_package_name = 'ceilometer-collector'
|
||||
$common_package_name = 'ceilometer-common'
|
||||
$client_package_name = 'python-ceilometer'
|
||||
|
||||
$agent_central_service_name = 'ceilometer-agent-central'
|
||||
$agent_compute_service_name = 'ceilometer-agent-compute'
|
||||
$api_service_name = 'ceilometer-api'
|
||||
$collector_service_name = 'ceilometer-collector'
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue