Merge "Add deployed-server backwards compatible template"
[apex-tripleo-heat-templates.git] / extraconfig / tasks / mitaka_to_newton_ceilometer_wsgi_upgrade.pp
1 # Copyright 2015 Red Hat, Inc.
2 # All Rights Reserved.
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License"); you may
5 # not use this file except in compliance with the License. You may obtain
6 # a copy of the License at
7 #
8 #     http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 # License for the specific language governing permissions and limitations
14 # under the License.
15
16 # This puppet manifest is to be used only during a Mitaka->Newton upgrade
17 # It configures ceilometer to be run under httpd but it makes sure to not
18 # restart any services. This snippet needs to be called before init as a
19 # pre upgrade migration.
20
21 Service <|
22   tag == 'ceilometer-service'
23 |> {
24   hasrestart => true,
25   restart    => '/bin/true',
26   start      => '/bin/true',
27   stop       => '/bin/true',
28 }
29
30 if $::hostname == downcase(hiera('bootstrap_nodeid')) {
31   $pacemaker_master = true
32   $sync_db = true
33 } else {
34   $pacemaker_master = false
35   $sync_db = false
36 }
37
38 include ::tripleo::packages
39
40
41 if str2bool(hiera('mongodb::server::ipv6', false)) {
42   $mongo_node_ips_with_port_prefixed = prefix(hiera('mongodb_node_ips'), '[')
43   $mongo_node_ips_with_port = suffix($mongo_node_ips_with_port_prefixed, ']:27017')
44 } else {
45   $mongo_node_ips_with_port = suffix(hiera('mongodb_node_ips'), ':27017')
46 }
47 $mongodb_replset = hiera('mongodb::server::replset')
48 $mongo_node_string = join($mongo_node_ips_with_port, ',')
49 $database_connection = "mongodb://${mongo_node_string}/ceilometer?replicaSet=${mongodb_replset}"
50
51 $rabbit_hosts = hiera('rabbitmq_node_ips', undef)
52 $rabbit_port  = hiera('ceilometer::rabbit_port', 5672)
53 $rabbit_endpoints = suffix(any2array(normalize_ip_for_uri($rabbit_hosts)), ":${rabbit_port}")
54
55 class { '::ceilometer' :
56   rabbit_hosts => $rabbit_endpoints,
57 }
58
59 class {'::ceilometer::db':
60   database_connection => $database_connection,
61 }
62
63 if $sync_db  {
64   include ::ceilometer::db::sync
65 }
66
67 include ::ceilometer::config
68
69 class { '::ceilometer::api':
70   enabled           => true,
71   service_name      => 'httpd',
72   keystone_password => hiera('ceilometer::keystone::auth::password'),
73   identity_uri      => hiera('ceilometer::keystone::authtoken::auth_url'),
74   auth_uri          => hiera('ceilometer::keystone::authtoken::auth_uri'),
75   keystone_tenant   => hiera('ceilometer::keystone::authtoken::project_name'),
76 }
77
78 class { '::apache' :
79   service_enable  => false,
80   service_manage  => true,
81   service_restart => '/bin/true',
82   purge_configs   => false,
83   purge_vhost_dir => false,
84 }
85
86 # To ensure existing ports are not overridden
87 class { '::aodh::wsgi::apache':
88   servername => $::hostname,
89   ssl        => false,
90 }
91 class { '::gnocchi::wsgi::apache':
92   servername => $::hostname,
93   ssl        => false,
94 }
95
96 class { '::keystone::wsgi::apache':
97   servername => $::hostname,
98   ssl        => false,
99 }
100 class { '::ceilometer::wsgi::apache':
101   servername => $::hostname,
102   ssl        => false,
103 }