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(
|
class ceilometer::agent-central(
|
||||||
$keystone_password,
|
$enabled = true,
|
||||||
$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',
|
|
||||||
) {
|
) {
|
||||||
|
|
||||||
package { 'ceilometer-collector':
|
package { 'ceilometer-agent-central':
|
||||||
ensure => installed
|
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 {
|
if $enabled {
|
||||||
$service_ensure = 'running'
|
$service_ensure = 'running'
|
||||||
} else {
|
} else {
|
||||||
$service_ensure = 'stopped'
|
$service_ensure = 'stopped'
|
||||||
}
|
}
|
||||||
|
|
||||||
service { 'ceilometer-collector':
|
service { 'ceilometer-agent-central':
|
||||||
name => $::ceilometer::params::collector_package_name
|
name => $::ceilometer::params::agent_central_name
|
||||||
enable => $enabled,
|
enable => $enabled,
|
||||||
hasstatus => true,
|
hasstatus => true,
|
||||||
hasrestart => true,
|
hasrestart => true,
|
||||||
|
|
|
@ -1,40 +1,11 @@
|
||||||
class ceilometer::agent-compute(
|
class ceilometer::agent-compute(
|
||||||
$keystone_password,
|
$enabled = true,
|
||||||
$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',
|
|
||||||
) {
|
) {
|
||||||
|
|
||||||
package { 'ceilometer-agent-compute':
|
package { 'ceilometer-agent-compute':
|
||||||
ensure => installed
|
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 {
|
if $enabled {
|
||||||
$service_ensure = 'running'
|
$service_ensure = 'running'
|
||||||
} else {
|
} else {
|
||||||
|
@ -42,7 +13,7 @@ class ceilometer::agent-compute(
|
||||||
}
|
}
|
||||||
|
|
||||||
service { 'ceilometer-agent-compute':
|
service { 'ceilometer-agent-compute':
|
||||||
name => $::ceilometer::params::agent-compute_package_name
|
name => $::ceilometer::params::agent_compute_service_name
|
||||||
enable => $enabled,
|
enable => $enabled,
|
||||||
hasstatus => true,
|
hasstatus => true,
|
||||||
hasrestart => true,
|
hasrestart => true,
|
||||||
|
|
|
@ -1,40 +1,11 @@
|
||||||
class ceilometer::api(
|
class ceilometer::api(
|
||||||
$keystone_password,
|
$enabled = true,
|
||||||
$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',
|
|
||||||
) {
|
) {
|
||||||
|
|
||||||
package { 'ceilometer-api':
|
package { 'ceilometer-api':
|
||||||
ensure => installed
|
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 {
|
if $enabled {
|
||||||
$service_ensure = 'running'
|
$service_ensure = 'running'
|
||||||
} else {
|
} else {
|
||||||
|
@ -42,7 +13,7 @@ class ceilometer::api(
|
||||||
}
|
}
|
||||||
|
|
||||||
service { 'ceilometer-api':
|
service { 'ceilometer-api':
|
||||||
name => $::ceilometer::params::api_package_name
|
name => $::ceilometer::params::api_service_name
|
||||||
enable => $enabled,
|
enable => $enabled,
|
||||||
hasstatus => true,
|
hasstatus => true,
|
||||||
hasrestart => true,
|
hasrestart => true,
|
||||||
|
|
|
@ -1,40 +1,11 @@
|
||||||
class ceilometer::collector(
|
class ceilometer::collector(
|
||||||
$keystone_password,
|
$enabled = true,
|
||||||
$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',
|
|
||||||
) {
|
) {
|
||||||
|
|
||||||
package { 'ceilometer-collector':
|
package { 'ceilometer-collector':
|
||||||
ensure => installed
|
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 {
|
if $enabled {
|
||||||
$service_ensure = 'running'
|
$service_ensure = 'running'
|
||||||
} else {
|
} else {
|
||||||
|
@ -42,7 +13,7 @@ class ceilometer::collector(
|
||||||
}
|
}
|
||||||
|
|
||||||
service { 'ceilometer-collector':
|
service { 'ceilometer-collector':
|
||||||
name => $::ceilometer::params::collector_package_name
|
name => $::ceilometer::params::collector_service_name
|
||||||
enable => $enabled,
|
enable => $enabled,
|
||||||
hasstatus => true,
|
hasstatus => true,
|
||||||
hasrestart => true,
|
hasrestart => true,
|
||||||
|
|
|
@ -1,7 +1,3 @@
|
||||||
#
|
|
||||||
# I should change this to mysql
|
|
||||||
# for consistency
|
|
||||||
#
|
|
||||||
class ceilometer::db::mysql(
|
class ceilometer::db::mysql(
|
||||||
$password,
|
$password,
|
||||||
$dbname = 'ceilometer',
|
$dbname = 'ceilometer',
|
||||||
|
@ -9,26 +5,21 @@ class ceilometer::db::mysql(
|
||||||
$host = '127.0.0.1',
|
$host = '127.0.0.1',
|
||||||
$allowed_hosts = undef,
|
$allowed_hosts = undef,
|
||||||
$charset = 'latin1',
|
$charset = 'latin1',
|
||||||
$cluster_id = 'localzone'
|
|
||||||
) {
|
) {
|
||||||
|
|
||||||
Class['mysql::server'] -> Class['ceilometer::db::mysql']
|
Class['mysql::server'] -> Class['ceilometer::db::mysql']
|
||||||
Class['ceilometer::db::mysql'] -> Exec<| title == 'ceilometer-dbsync' |>
|
Class['ceilometer::db::mysql'] -> Exec<| title == 'ceilometer-dbsync' |>
|
||||||
Database[$dbname] ~> Exec<| title == 'ceilometer-dbsync' |>
|
Database[$dbname] ~> Exec<| title == 'ceilometer-dbsync' |>
|
||||||
|
|
||||||
require 'mysql::python'
|
|
||||||
|
|
||||||
mysql::db { $dbname:
|
mysql::db { $dbname:
|
||||||
user => $user,
|
user => $user,
|
||||||
password => $password,
|
password => $password,
|
||||||
host => $host,
|
host => $host,
|
||||||
charset => $charset,
|
charset => $charset,
|
||||||
# I may want to inject some sql
|
|
||||||
require => Class['mysql::config'],
|
require => Class['mysql::config'],
|
||||||
}
|
}
|
||||||
|
|
||||||
if $allowed_hosts {
|
if $allowed_hosts {
|
||||||
# TODO this class should be in the mysql namespace
|
|
||||||
ceilometer::db::mysql::host_access { $allowed_hosts:
|
ceilometer::db::mysql::host_access { $allowed_hosts:
|
||||||
user => $user,
|
user => $user,
|
||||||
password => $password,
|
password => $password,
|
||||||
|
|
|
@ -3,11 +3,29 @@
|
||||||
# * package_ensure - ensure state for package.
|
# * package_ensure - ensure state for package.
|
||||||
#
|
#
|
||||||
class ceilometer(
|
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
|
include ceilometer::params
|
||||||
|
|
||||||
|
require 'mysql::python'
|
||||||
|
|
||||||
|
file { '/etc/ceilometer/ceilometer.conf':
|
||||||
|
}
|
||||||
|
|
||||||
file { '/etc/ceilometer/':
|
file { '/etc/ceilometer/':
|
||||||
ensure => directory,
|
ensure => directory,
|
||||||
owner => 'ceilometer',
|
owner => 'ceilometer',
|
||||||
|
@ -15,9 +33,25 @@ class ceilometer(
|
||||||
mode => '0770',
|
mode => '0770',
|
||||||
require => Package['ceilometer']
|
require => Package['ceilometer']
|
||||||
}
|
}
|
||||||
package { 'ceilometer':
|
package { 'ceilometer-common':
|
||||||
name => $::ceilometer::params::package_name,
|
name => $::ceilometer::params::common_package_name,
|
||||||
ensure => $package_ensure,
|
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 {
|
class ceilometer::params {
|
||||||
|
|
||||||
$central_agent_package_name = 'ceilometer-agent-central'
|
$agent_central_package_name = 'ceilometer-agent-central'
|
||||||
$compute_agent_package_name = 'ceilometer-agent-compute'
|
$agent_compute_package_name = 'ceilometer-agent-compute'
|
||||||
$api_package_name = 'ceilometer-api'
|
$api_package_name = 'ceilometer-api'
|
||||||
$collector_package_name = 'ceilometer-collector'
|
$collector_package_name = 'ceilometer-collector'
|
||||||
$common_package_name = 'ceilometer-common'
|
$common_package_name = 'ceilometer-common'
|
||||||
$client_package_name = 'python-ceilometer'
|
$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