118 lines
2.7 KiB
Puppet
118 lines
2.7 KiB
Puppet
#
|
||
# Copyright (C) 2013 eNovance SAS <licensing@enovance.com>
|
||
#
|
||
# Authors: Mehdi Abaakouk <mehdi.abaakouk@enovance.com>
|
||
# Emilien Macchi <emilien.macchi@enovance.com>
|
||
# Francois Charlier <francois.charlier@enovance.com>
|
||
#
|
||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||
# not use this file except in compliance with the License. You may obtain
|
||
# a copy of the License at
|
||
#
|
||
# http://www.apache.org/licenses/LICENSE-2.0
|
||
#
|
||
# Unless required by applicable law or agreed to in writing, software
|
||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||
# License for the specific language governing permissions and limitations
|
||
# under the License.
|
||
#
|
||
# site.pp
|
||
#
|
||
|
||
import 'params.pp'
|
||
|
||
# Import roles
|
||
import 'roles/common/*.pp' # mandatory
|
||
import 'roles/automation/*.pp'
|
||
import 'roles/database/*.pp'
|
||
import 'roles/identity/*.pp'
|
||
import 'roles/messaging/*.pp'
|
||
import 'roles/metering/*.pp'
|
||
import 'roles/object-storage/*.pp'
|
||
|
||
|
||
node common {
|
||
|
||
# Params
|
||
class { 'os_params': }
|
||
|
||
# Common system configuration
|
||
class { 'os_common_system': }
|
||
|
||
}
|
||
|
||
|
||
# Puppet Master node
|
||
node 'os-ci-test2.enovance.com' inherits common{
|
||
|
||
# Everything related to puppet is bootstraped by jenkins
|
||
# and other stuffs are made by common class.
|
||
|
||
}
|
||
|
||
# Controller node
|
||
node 'os-ci-test3.enovance.com', 'os-ci-test4.enovance.com' inherits common{
|
||
|
||
## Databases:
|
||
class {'mongodb_server':}
|
||
class {'os_role_galera':
|
||
local_ip => $ipaddress_eth0,
|
||
}
|
||
|
||
## Metering
|
||
class {'os_ceilometer_common':}
|
||
class {'os_ceilometer_server':}
|
||
# Enforce using Ceilometer Agent central on one node (should be fixed in Icehouse):
|
||
class {'ceilometer::agent::central': }
|
||
|
||
## Identity
|
||
class {'os_keystone_server':
|
||
local_ip => $ipaddress_eth0,
|
||
}
|
||
|
||
# Object Storage
|
||
class {'os_role_swift_proxy':
|
||
local_ip => $ipaddress_eth0,
|
||
}
|
||
class {'os_role_swift_ringbuilder':
|
||
rsyncd_ipaddress => $ipaddress_eth0,
|
||
}
|
||
Class['os_role_swift_ringbuilder'] -> Class['os_role_swift_proxy']
|
||
|
||
# Messaging
|
||
class {'os_role_rabbitmq': }
|
||
|
||
|
||
}
|
||
|
||
# Storage nodes
|
||
node 'os-ci-test8.enovance.com', 'os-ci-test9.enovance.com', 'os-ci-test12.enovance.com' inherits common{
|
||
|
||
## Metering
|
||
class {'os_ceilometer_common':}
|
||
|
||
## Object Storage
|
||
class { 'os_role_swift_storage':
|
||
local_ip => $ipaddress_eth0,
|
||
swift_zone => $os_params::os_swift_zone[$::hostname],
|
||
}
|
||
}
|
||
|
||
# Load balancer node
|
||
node 'os-ci-test10.enovance.com' inherits common {
|
||
|
||
## Haproxy
|
||
|
||
}
|
||
|
||
# Compute nodes
|
||
node 'os-ci-test13.enovance.com', 'os-ci-test11.enovance.com' inherits common {
|
||
|
||
## Compute
|
||
class { 'os_nova_compute':
|
||
local_ip => $ipaddress_eth0,
|
||
}
|
||
|
||
}
|