Skip to content
Snippets Groups Projects
Commit 8614bf1b authored by Quentin MACHU's avatar Quentin MACHU
Browse files

Added Ceilometer

parent b9c9b684
No related branches found
No related tags found
No related merge requests found
...@@ -42,7 +42,11 @@ mod 'erlang', # Required by rabbitmq ...@@ -42,7 +42,11 @@ mod 'erlang', # Required by rabbitmq
mod 'rabbitmq', mod 'rabbitmq',
:git => 'git://github.com/puppetlabs/puppetlabs-rabbitmq' :git => 'git://github.com/puppetlabs/puppetlabs-rabbitmq'
mod 'apache', #Required by horizon mod 'apache', #Required by horizon
:git => 'git://github.com/puppetlabs/puppetlabs-apache' :git => 'git://github.com/puppetlabs/puppetlabs-apache'
mod 'deric/zookeeper',
:git => 'git://github.com/deric/puppet-zookeeper'
mod 'richardc/datacat', #Required by zookeeper
:git => 'git://github.com/richardc/puppet-datacat'
# Role Storage # Role Storage
mod 'ceph', mod 'ceph',
......
...@@ -39,6 +39,8 @@ iaas::mysql::neutron::user: neutron ...@@ -39,6 +39,8 @@ iaas::mysql::neutron::user: neutron
iaas::mysql::neutron::password: neutron iaas::mysql::neutron::password: neutron
iaas::mysql::heat::user: heat iaas::mysql::heat::user: heat
iaas::mysql::heat::password: heat iaas::mysql::heat::password: heat
iaas::mysql::ceilometer::user: ceilometer
iaas::mysql::ceilometer::password: ceilometer
# Rabbitmq # Rabbitmq
iaas::profile::rabbitmq::servers: [controller-1, controller-2, controller-3] iaas::profile::rabbitmq::servers: [controller-1, controller-2, controller-3]
...@@ -130,6 +132,11 @@ iaas::profile::heat::encryption_key: 12345678912345678912345678912345 # https:// ...@@ -130,6 +132,11 @@ iaas::profile::heat::encryption_key: 12345678912345678912345678912345 # https://
# Heat # Heat
iaas::profile::horizon::secret: horizon iaas::profile::horizon::secret: horizon
# Ceilometer
iaas::profile::ceilometer::servers: ["controller-1:2888:3888", "controller-2:2888:3888", "controller-3:2888:3888"]
iaas::profile::ceilometer::secret: ceilometer
iaas::profile::ceilometer::password: ceilometer
# Tempest # Tempest
iaas::profile::tempest::admin_user: admin iaas::profile::tempest::admin_user: admin
iaas::profile::tempest::user: demo iaas::profile::tempest::user: demo
......
...@@ -21,3 +21,6 @@ ceph::keys::args: ...@@ -21,3 +21,6 @@ ceph::keys::args:
user: cinder user: cinder
group: cinder group: cinder
mode: '0550' mode: '0550'
# Zookeeper
iaas::profile::ceilometer::controller::zookeeper_id: 1 # Unique & between 1-255
...@@ -21,3 +21,6 @@ ceph::keys::args: ...@@ -21,3 +21,6 @@ ceph::keys::args:
user: cinder user: cinder
group: cinder group: cinder
mode: '0550' mode: '0550'
# Zookeeper
iaas::profile::ceilometer::controller::zookeeper_id: 2 # Unique & between 1-255
...@@ -21,3 +21,6 @@ ceph::keys::args: ...@@ -21,3 +21,6 @@ ceph::keys::args:
user: cinder user: cinder
group: cinder group: cinder
mode: '0550' mode: '0550'
# Zookeeper
iaas::profile::ceilometer::controller::zookeeper_id: 3 # Unique & between 1-255
class iaas::profile::ceilometer::common (
$secret = hiera('iaas::profile::ceilometer::secret', undef),
$password = hiera('iaas::profile::ceilometer::password', undef),
$region = hiera('iaas::region', undef),
$endpoint = hiera('iaas::role::endpoint::main_address', undef),
$rabbitmq_user = hiera('iaas::profile::rabbitmq::user', undef),
$rabbitmq_password = hiera('iaas::profile::rabbitmq::password', undef),
) {
class { '::ceilometer':
metering_secret => $secret,
rabbit_hosts => [ $endpoint ],
rabbit_userid => $rabbitmq_user,
rabbit_password => $rabbitmq_password,
}
class { '::ceilometer::agent::auth':
auth_url => "http://${endpoint}:5000/v2.0",
auth_password => $password,
auth_region => $region,
}
}
class iaas::profile::ceilometer::compute (
$password = hiera('iaas::profile::ceilometer::password', undef),
$endpoint = hiera('iaas::role::endpoint::main_address', undef),
) {
include iaas::profile::ceilometer::common
class { '::ceilometer::agent::compute': }
}
class iaas::profile::ceilometer::controller (
$password = hiera('iaas::profile::ceilometer::password', undef),
$servers = hiera('iaas::profile::ceilometer::servers', undef),
$public_interface = hiera('iaas::public_interface', undef),
$admin_interface = hiera('iaas::admin_interface', undef),
$region = hiera('iaas::region', undef),
$endpoint = hiera('iaas::role::endpoint::main_address', undef),
$zookeeper_id = undef,
$zookeeper_max_connections = 128,
) {
include iaas::resources::connectors
iaas::resources::database { 'ceilometer': }
include iaas::profile::ceilometer::common
$admin_ip = $::facts["ipaddress_${admin_interface}"]
class { '::ceilometer::keystone::auth':
password => $password,
public_address => $endpoint,
admin_address => $endpoint,
internal_address => $endpoint,
region => $region,
}
class { '::ceilometer::api':
enabled => true,
keystone_password => $password,
keystone_auth_uri => "http://${endpoint}:5000/v2.0",
keystone_identity_uri => "http://${endpoint}:35357",
}
class { '::ceilometer::db':
database_connection => $iaas::resources::connectors::ceilometer,
mysql_module => '2.3',
}
package { 'python-zake': }
class { 'zookeeper':
id => $zookeeper_id,
client_ip => $::facts["ipaddress_${admin_interface}"],
servers => $servers,
max_allowed_connections => $zookeeper_max_connections,
}
class { '::ceilometer::agent::central':
coordination_url => "kazoo://${$admin_ip}:2181",
}
class { '::ceilometer::alarm::evaluator':
coordination_url => "kazoo://${$admin_ip}:2181",
}
class { '::ceilometer::expirer':
time_to_live => '2592000',
}
class { '::ceilometer::alarm::notifier': }
class { '::ceilometer::collector': }
class { '::ceilometer::agent::notification': }
@@haproxy::balancermember { "ceilometer_api_${::fqdn}":
listening_service => 'ceilometer_api_cluster',
server_names => $::hostname,
ipaddresses => $::facts["ipaddress_${public_interface}"],
ports => '8777',
options => 'check inter 2000 rise 2 fall 5',
}
}
...@@ -148,4 +148,13 @@ class iaas::profile::haproxy ( ...@@ -148,4 +148,13 @@ class iaas::profile::haproxy (
'option' => ['tcpka', 'httpchk', 'tcplog'], 'option' => ['tcpka', 'httpchk', 'tcplog'],
} }
} }
haproxy::listen { 'ceilometer_api_cluster':
ipaddress => '0.0.0.0',
ports => '8777',
options => {
'option' => ['tcpka', 'httpchk', 'tcplog'],
'http-check' => 'expect status 401',
}
}
} }
...@@ -69,7 +69,8 @@ class iaas::profile::tempest ( ...@@ -69,7 +69,8 @@ class iaas::profile::tempest (
neutron_available => true, neutron_available => true,
nova_available => true, nova_available => true,
swift_available => false, swift_available => false,
ceilometer_available => true,
configure_images => true, configure_images => true,
image_ref => $image_id, image_ref => $image_id,
image_ref_alt => $alt_image_id, image_ref_alt => $alt_image_id,
......
...@@ -24,4 +24,8 @@ class iaas::resources::connectors { ...@@ -24,4 +24,8 @@ class iaas::resources::connectors {
$user_heat = hiera('iaas::mysql::heat::user', 'heat') $user_heat = hiera('iaas::mysql::heat::user', 'heat')
$pass_heat = hiera('iaas::mysql::heat::password', 'heat') $pass_heat = hiera('iaas::mysql::heat::password', 'heat')
$heat = "mysql://${user_heat}:${pass_heat}@${endpoint}/heat" $heat = "mysql://${user_heat}:${pass_heat}@${endpoint}/heat"
$user_ceilometer = hiera('iaas::mysql::ceilometer::user', 'ceilometer')
$pass_ceilometer = hiera('iaas::mysql::ceilometer::password', 'ceilometer')
$ceilometer = "mysql://${user_ceilometer}:${pass_ceilometer}@${endpoint}/ceilometer"
} }
...@@ -2,6 +2,7 @@ class iaas::role::compute ( ...@@ -2,6 +2,7 @@ class iaas::role::compute (
) { ) {
class { 'iaas::profile::base': } -> class { 'iaas::profile::base': } ->
class { 'iaas::profile::neutron::client': } class { 'iaas::profile::neutron::client': } ->
class { 'iaas::profile::nova::compute': } # -> class { 'iaas::profile::nova::compute': } ->
class { 'iaas::profile::ceilometer::compute': }
} }
...@@ -9,7 +9,7 @@ class iaas::role::controller { ...@@ -9,7 +9,7 @@ class iaas::role::controller {
class { 'iaas::profile::cinder': } -> class { 'iaas::profile::cinder': } ->
class { 'iaas::profile::nova::controller': } -> class { 'iaas::profile::nova::controller': } ->
class { 'iaas::profile::neutron::server': } -> class { 'iaas::profile::neutron::server': } ->
#class { 'iaas::profile::ceilometer::controller': } -> class { 'iaas::profile::ceilometer::controller': } ->
class { 'iaas::profile::heat': } -> class { 'iaas::profile::heat': } ->
class { 'iaas::profile::horizon': } class { 'iaas::profile::horizon': }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment