Enable HA on logging infrastructure
This commit aims to allow the loadbalancing for both ElasticSearch and Kibana requests. Change-Id: I6d17b62a8bbbe203dc24100b550bd716d23d2959
This commit is contained in:
@@ -147,10 +147,6 @@ class cloud::dashboard(
|
|||||||
}
|
}
|
||||||
$neutron_options_real = merge ($neutron_options, $neutron_extra_options)
|
$neutron_options_real = merge ($neutron_options, $neutron_extra_options)
|
||||||
|
|
||||||
ensure_resource('class', 'apache', {
|
|
||||||
default_vhost => false
|
|
||||||
})
|
|
||||||
|
|
||||||
class { 'horizon':
|
class { 'horizon':
|
||||||
secret_key => $secret_key,
|
secret_key => $secret_key,
|
||||||
servername => $servername,
|
servername => $servername,
|
||||||
|
|||||||
58
manifests/database/nosql/elasticsearch.pp
Normal file
58
manifests/database/nosql/elasticsearch.pp
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2014 eNovance SAS <licensing@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.
|
||||||
|
#
|
||||||
|
# == Class: cloud::database::nosql::elasticsearch
|
||||||
|
#
|
||||||
|
# Install an ElasticSearch server
|
||||||
|
#
|
||||||
|
# === Parameters:
|
||||||
|
#
|
||||||
|
# [*listen_port*]
|
||||||
|
# (optional) Port on which ElasticSearch instance should listen
|
||||||
|
# Defaults to '9200'
|
||||||
|
#
|
||||||
|
# [*listen_ip*]
|
||||||
|
# (optional) IP address on which ElasticSearch instance should listen
|
||||||
|
# Defaults to '127.0.0.1'
|
||||||
|
#
|
||||||
|
# [*firewall_settings*]
|
||||||
|
# (optional) Allow to add custom parameters to firewall rules
|
||||||
|
# Should be an hash.
|
||||||
|
# Default to {}
|
||||||
|
#
|
||||||
|
class cloud::database::nosql::elasticsearch (
|
||||||
|
$listen_port = '9200',
|
||||||
|
$listen_ip = '127.0.0.1',
|
||||||
|
$firewall_settings = {},
|
||||||
|
){
|
||||||
|
|
||||||
|
include ::elasticsearch
|
||||||
|
|
||||||
|
@@haproxy::balancermember{"${::fqdn}-es_cluster":
|
||||||
|
listening_service => 'elasticsearch',
|
||||||
|
server_names => $::hostname,
|
||||||
|
ipaddresses => $listen_ip,
|
||||||
|
ports => $listen_port,
|
||||||
|
options => 'check inter 2000 rise 2 fall 5'
|
||||||
|
}
|
||||||
|
|
||||||
|
if $::cloud::manage_firewall {
|
||||||
|
cloud::firewall::rule{ '100 allow elasticsearch access':
|
||||||
|
port => $listen_port,
|
||||||
|
extras => $firewall_settings,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -164,6 +164,20 @@
|
|||||||
# If set to false, no binding will be configure.
|
# If set to false, no binding will be configure.
|
||||||
# Defaults to true
|
# Defaults to true
|
||||||
#
|
#
|
||||||
|
# [*elasticsearch*]
|
||||||
|
# (optional) Enable or not ElasticSearch binding.
|
||||||
|
# If true, both public and internal will attempt to be created except if vip_internal_ip is set to false.
|
||||||
|
# If set to ['10.0.0.1'], only IP in the array (or in the string) will be configured in the pool. They must be part of keepalived_ip options.
|
||||||
|
# If set to false, no binding will be configure.
|
||||||
|
# Defaults to true
|
||||||
|
#
|
||||||
|
# [*kibana*]
|
||||||
|
# (optional) Enable or not kibana binding.
|
||||||
|
# If true, both public and internal will attempt to be created except if vip_internal_ip is set to false.
|
||||||
|
# If set to ['10.0.0.1'], only IP in the array (or in the string) will be configured in the pool. They must be part of keepalived_ip options.
|
||||||
|
# If set to false, no binding will be configure.
|
||||||
|
# Defaults to true
|
||||||
|
#
|
||||||
# [*metadata_api*]
|
# [*metadata_api*]
|
||||||
# (optional) Enable or not Metadata public binding.
|
# (optional) Enable or not Metadata public binding.
|
||||||
# If true, both public and internal will attempt to be created except if vip_internal_ip is set to false.
|
# If true, both public and internal will attempt to be created except if vip_internal_ip is set to false.
|
||||||
@@ -304,6 +318,16 @@
|
|||||||
# service configuration block.
|
# service configuration block.
|
||||||
# Defaults to []
|
# Defaults to []
|
||||||
#
|
#
|
||||||
|
# [*elasticsearch_bind_options*]
|
||||||
|
# (optional) A hash of options that are inserted into the HAproxy listening
|
||||||
|
# service configuration block.
|
||||||
|
# Defaults to []
|
||||||
|
#
|
||||||
|
# [*kibana_bind_options*]
|
||||||
|
# (optional) A hash of options that are inserted into the HAproxy listening
|
||||||
|
# service configuration block.
|
||||||
|
# Defaults to []
|
||||||
|
#
|
||||||
# [*galera_bind_options*]
|
# [*galera_bind_options*]
|
||||||
# (optional) A hash of options that are inserted into the HAproxy listening
|
# (optional) A hash of options that are inserted into the HAproxy listening
|
||||||
# service configuration block.
|
# service configuration block.
|
||||||
@@ -389,6 +413,14 @@
|
|||||||
# (optional) Port of RabbitMQ service.
|
# (optional) Port of RabbitMQ service.
|
||||||
# Defaults to '5672'
|
# Defaults to '5672'
|
||||||
#
|
#
|
||||||
|
# [*elasticsearch_port*]
|
||||||
|
# (optional) Port of ElasticSearch service.
|
||||||
|
# Defaults to '9200'
|
||||||
|
#
|
||||||
|
# [*kibana_port*]
|
||||||
|
# (optional) Port of Kibana service.
|
||||||
|
# Defaults to '8300'
|
||||||
|
#
|
||||||
# [*vip_public_ip*]
|
# [*vip_public_ip*]
|
||||||
# (optional) Array or string for public VIP
|
# (optional) Array or string for public VIP
|
||||||
# Should be part of keepalived_public_ips
|
# Should be part of keepalived_public_ips
|
||||||
@@ -437,6 +469,8 @@ class cloud::loadbalancer(
|
|||||||
$rabbitmq = false,
|
$rabbitmq = false,
|
||||||
$spice = false,
|
$spice = false,
|
||||||
$novnc = true,
|
$novnc = true,
|
||||||
|
$elasticsearch = true,
|
||||||
|
$kibana = true,
|
||||||
$haproxy_auth = 'admin:changeme',
|
$haproxy_auth = 'admin:changeme',
|
||||||
$keepalived_state = 'BACKUP',
|
$keepalived_state = 'BACKUP',
|
||||||
$keepalived_priority = '50',
|
$keepalived_priority = '50',
|
||||||
@@ -468,6 +502,8 @@ class cloud::loadbalancer(
|
|||||||
$horizon_ssl_bind_options = [],
|
$horizon_ssl_bind_options = [],
|
||||||
$rabbitmq_bind_options = [],
|
$rabbitmq_bind_options = [],
|
||||||
$galera_bind_options = [],
|
$galera_bind_options = [],
|
||||||
|
$elasticsearch_bind_options = [],
|
||||||
|
$kibana_bind_options = [],
|
||||||
$ks_ceilometer_public_port = 8777,
|
$ks_ceilometer_public_port = 8777,
|
||||||
$ks_cinder_public_port = 8776,
|
$ks_cinder_public_port = 8776,
|
||||||
$ks_ec2_public_port = 8773,
|
$ks_ec2_public_port = 8773,
|
||||||
@@ -488,6 +524,8 @@ class cloud::loadbalancer(
|
|||||||
$horizon_ssl_port = 443,
|
$horizon_ssl_port = 443,
|
||||||
$spice_port = 6082,
|
$spice_port = 6082,
|
||||||
$novnc_port = 6080,
|
$novnc_port = 6080,
|
||||||
|
$elasticsearch_port = 9200,
|
||||||
|
$kibana_port = 8300,
|
||||||
$vip_public_ip = ['127.0.0.1'],
|
$vip_public_ip = ['127.0.0.1'],
|
||||||
$vip_internal_ip = false,
|
$vip_internal_ip = false,
|
||||||
$vip_monitor_ip = false,
|
$vip_monitor_ip = false,
|
||||||
@@ -785,6 +823,19 @@ class cloud::loadbalancer(
|
|||||||
firewall_settings => $firewall_settings,
|
firewall_settings => $firewall_settings,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cloud::loadbalancer::binding { 'elasticsearch':
|
||||||
|
ip => $elasticsearch,
|
||||||
|
port => $elasticsearch_port,
|
||||||
|
bind_options => $elasticsearch_bind_options,
|
||||||
|
firewall_settings => $firewall_settings,
|
||||||
|
}
|
||||||
|
cloud::loadbalancer::binding { 'kibana':
|
||||||
|
ip => $kibana,
|
||||||
|
port => $kibana_port,
|
||||||
|
bind_options => $kibana_bind_options,
|
||||||
|
firewall_settings => $firewall_settings,
|
||||||
|
}
|
||||||
|
|
||||||
if (member(any2array($keepalived_public_ipvs), $galera_ip)) {
|
if (member(any2array($keepalived_public_ipvs), $galera_ip)) {
|
||||||
warning('Exposing Galera cluster to public network is a security issue.')
|
warning('Exposing Galera cluster to public network is a security issue.')
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,11 +15,46 @@
|
|||||||
#
|
#
|
||||||
# == Class: cloud::logging::server
|
# == Class: cloud::logging::server
|
||||||
#
|
#
|
||||||
class cloud::logging::server{
|
# [*kibana_port*]
|
||||||
|
# (optional) Port of Kibana service.
|
||||||
|
# Defaults to '8300'
|
||||||
|
#
|
||||||
|
# [*kibana_bind_ip*]
|
||||||
|
# (optional) Address on which kibana is listening on
|
||||||
|
# Defaults to '127.0.0.1'
|
||||||
|
#
|
||||||
|
# [*firewall_settings*]
|
||||||
|
# (optional) Allow to add custom parameters to firewall rules
|
||||||
|
# Should be an hash.
|
||||||
|
# Default to {}
|
||||||
|
#
|
||||||
|
class cloud::logging::server(
|
||||||
|
$kibana_port = '8300',
|
||||||
|
$kibana_bind_ip = '127.0.0.1',
|
||||||
|
$firewall_settings = {},
|
||||||
|
) {
|
||||||
|
|
||||||
|
Class['cloud::database::nosql::elasticsearch'] -> Class['kibana3']
|
||||||
|
Class['cloud::database::nosql::elasticsearch'] -> Class['cloud::logging::agent']
|
||||||
|
|
||||||
include ::elasticsearch
|
|
||||||
include ::kibana3
|
include ::kibana3
|
||||||
|
include cloud::database::nosql::elasticsearch
|
||||||
include cloud::logging::agent
|
include cloud::logging::agent
|
||||||
elasticsearch::instance {'fluentd' : }
|
elasticsearch::instance {'fluentd' : }
|
||||||
|
|
||||||
|
@@haproxy::balancermember{"${::fqdn}-kibana":
|
||||||
|
listening_service => 'kibana',
|
||||||
|
server_names => $::hostname,
|
||||||
|
ipaddresses => $kibana_bind_ip,
|
||||||
|
ports => $kibana_port,
|
||||||
|
options => 'check inter 2000 rise 2 fall 5'
|
||||||
|
}
|
||||||
|
|
||||||
|
if $::cloud::manage_firewall {
|
||||||
|
cloud::firewall::rule{ '100 allow kibana access':
|
||||||
|
port => $kibana_port,
|
||||||
|
extras => $firewall_settings,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,6 +38,10 @@ describe 'cloud::dashboard' do
|
|||||||
:allowed_hosts => 'horizon.openstack.org'}
|
:allowed_hosts => 'horizon.openstack.org'}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
let :pre_condition do
|
||||||
|
"class { 'apache': default_vhost => false }"
|
||||||
|
end
|
||||||
|
|
||||||
it 'configure horizon' do
|
it 'configure horizon' do
|
||||||
is_expected.to contain_class('horizon').with(
|
is_expected.to contain_class('horizon').with(
|
||||||
:listen_ssl => false,
|
:listen_ssl => false,
|
||||||
@@ -122,7 +126,8 @@ describe 'cloud::dashboard' do
|
|||||||
|
|
||||||
context 'with default firewall enabled' do
|
context 'with default firewall enabled' do
|
||||||
let :pre_condition do
|
let :pre_condition do
|
||||||
"class { 'cloud': manage_firewall => true }"
|
"class { 'apache': default_vhost => false }
|
||||||
|
class { 'cloud': manage_firewall => true }"
|
||||||
end
|
end
|
||||||
it 'configure horizon firewall rules' do
|
it 'configure horizon firewall rules' do
|
||||||
is_expected.to contain_firewall('100 allow horizon access').with(
|
is_expected.to contain_firewall('100 allow horizon access').with(
|
||||||
@@ -135,7 +140,8 @@ describe 'cloud::dashboard' do
|
|||||||
|
|
||||||
context 'with custom firewall enabled' do
|
context 'with custom firewall enabled' do
|
||||||
let :pre_condition do
|
let :pre_condition do
|
||||||
"class { 'cloud': manage_firewall => true }"
|
"class { 'apache': default_vhost => false }
|
||||||
|
class { 'cloud': manage_firewall => true }"
|
||||||
end
|
end
|
||||||
before :each do
|
before :each do
|
||||||
params.merge!(:firewall_settings => { 'limit' => '50/sec' } )
|
params.merge!(:firewall_settings => { 'limit' => '50/sec' } )
|
||||||
|
|||||||
81
spec/classes/cloud_database_nosql_elasticsearch.rb
Normal file
81
spec/classes/cloud_database_nosql_elasticsearch.rb
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2014 eNovance SAS <licensing@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.
|
||||||
|
#
|
||||||
|
# Unit tests for cloud::database::nosql::elasticsearch
|
||||||
|
#
|
||||||
|
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'cloud::database::nosql::elasticsearch' do
|
||||||
|
|
||||||
|
shared_examples_for 'elasticsearch server' do
|
||||||
|
|
||||||
|
let :params do
|
||||||
|
{ :firewall_settings => {} }
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'configure elasticsearch' do
|
||||||
|
it is_expected.to contain_class('elasticsearch')
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with default firewall enabled' do
|
||||||
|
let :pre_condition do
|
||||||
|
"class { 'cloud': manage_firewall => true }"
|
||||||
|
end
|
||||||
|
it 'configure elasticsearch firewall rules' do
|
||||||
|
is_expected.to contain_firewall('100 allow elasticsearch access').with(
|
||||||
|
:port => '9200',
|
||||||
|
:proto => 'tcp',
|
||||||
|
:action => 'accept',
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with custom firewall enabled' do
|
||||||
|
let :pre_condition do
|
||||||
|
"class { 'cloud': manage_firewall => true }"
|
||||||
|
end
|
||||||
|
before :each do
|
||||||
|
params.merge!(:firewall_settings => { 'limit' => '50/sec' } )
|
||||||
|
end
|
||||||
|
it 'configure elasticsearch firewall rules with custom parameter' do
|
||||||
|
is_expected.to contain_firewall('100 allow elasticsearch access').with(
|
||||||
|
:port => '9200',
|
||||||
|
:proto => 'tcp',
|
||||||
|
:action => 'accept',
|
||||||
|
:limit => '50/sec',
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'on Debian platforms' do
|
||||||
|
let :facts do
|
||||||
|
{ :osfamily => 'Debian' }
|
||||||
|
end
|
||||||
|
|
||||||
|
it_configures 'elasticsearch server'
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'on RedHat platforms' do
|
||||||
|
let :facts do
|
||||||
|
{ :osfamily => 'RedHat' }
|
||||||
|
end
|
||||||
|
|
||||||
|
it_configures 'elasticsearch server'
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (C) 2014 eNovance SAS <licensing@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.
|
|
||||||
#
|
|
||||||
# Unit tests for cloud::logging::server class
|
|
||||||
#
|
|
||||||
|
|
||||||
require 'spec_helper'
|
|
||||||
|
|
||||||
describe 'cloud::logging::server' do
|
|
||||||
|
|
||||||
shared_examples_for 'openstack logging server' do
|
|
||||||
|
|
||||||
let :pre_condition do
|
|
||||||
"class { 'cloud::logging': }
|
|
||||||
include ::fluentd"
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'configure logging common' do
|
|
||||||
it is_expected.to contain_concat("/etc/td-agent/config.d/forward.conf")
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'configure kibana' do
|
|
||||||
is_expected.to contain_class('kibana3').with(:ws_port => '8001')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'configure an elasticsearch instance' do
|
|
||||||
is_expected.to contain_elasticsearch__instance('fluentd')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'on Debian platforms' do
|
|
||||||
let :facts do
|
|
||||||
{ :osfamily => 'Debian' }
|
|
||||||
end
|
|
||||||
|
|
||||||
it_configures 'openstack logging server'
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'on RedHat platforms' do
|
|
||||||
let :facts do
|
|
||||||
{ :osfamily => 'RedHat' }
|
|
||||||
end
|
|
||||||
|
|
||||||
it_configures 'openstack logging server'
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
101
spec/classes/cloud_logging_server_spec.rb
Normal file
101
spec/classes/cloud_logging_server_spec.rb
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2014 eNovance SAS <licensing@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.
|
||||||
|
#
|
||||||
|
# Unit tests for cloud::logging::server class
|
||||||
|
#
|
||||||
|
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'cloud::logging::server' do
|
||||||
|
|
||||||
|
shared_examples_for 'openstack logging server' do
|
||||||
|
|
||||||
|
let :params do
|
||||||
|
{ :firewall_settings => {} }
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'configure kibana' do
|
||||||
|
is_expected.to contain_class('kibana3')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'configure the logging agent' do
|
||||||
|
is_expected.to contain_class('cloud::logging::agent')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'configure elasticsearch' do
|
||||||
|
is_expected.to contain_class('cloud::database::nosql::elasticsearch')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'configure an elasticsearch instance' do
|
||||||
|
is_expected.to contain_elasticsearch__instance('fluentd')
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with default firewall enabled' do
|
||||||
|
let :pre_condition do
|
||||||
|
"class { 'cloud': manage_firewall => true }"
|
||||||
|
end
|
||||||
|
it 'configure kibana firewall rules' do
|
||||||
|
is_expected.to contain_firewall('100 allow kibana access').with(
|
||||||
|
:port => '8300',
|
||||||
|
:proto => 'tcp',
|
||||||
|
:action => 'accept',
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with custom firewall enabled' do
|
||||||
|
let :pre_condition do
|
||||||
|
"class { 'cloud': manage_firewall => true }"
|
||||||
|
end
|
||||||
|
before :each do
|
||||||
|
params.merge!(:firewall_settings => { 'limit' => '50/sec' } )
|
||||||
|
end
|
||||||
|
it 'configure kibana firewall rules with custom parameter' do
|
||||||
|
is_expected.to contain_firewall('100 allow kibana access').with(
|
||||||
|
:port => '8300',
|
||||||
|
:proto => 'tcp',
|
||||||
|
:action => 'accept',
|
||||||
|
:limit => '50/sec',
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'on Debian platforms' do
|
||||||
|
let :facts do
|
||||||
|
{
|
||||||
|
:osfamily => 'Debian',
|
||||||
|
:operatingsystem => 'Debian',
|
||||||
|
:operatingsystemrelease => '7'
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
it_configures 'openstack logging server'
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'on RedHat platforms' do
|
||||||
|
let :facts do
|
||||||
|
{
|
||||||
|
:osfamily => 'RedHat',
|
||||||
|
:operatingsystem => 'RedHat',
|
||||||
|
:operatingsystemrelease => '7'
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
it_configures 'openstack logging server'
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user