Adding manage_service parameter to all services
When set to false, enables puppet to configure a service without starting/stopping it on each run. This may be necessary when using an external clustering system (Corosync/Pacemaker, for example). Defaults to true. Change-Id: Ia5b36d9e03bfc4905394bba4fb9873750664b118
This commit is contained in:
parent
3c395605db
commit
c87308b4a9
47
examples/neutron_with_pacemaker.pp
Normal file
47
examples/neutron_with_pacemaker.pp
Normal file
@ -0,0 +1,47 @@
|
||||
# Example: managing neutron controller services with pacemaker
|
||||
#
|
||||
# By setting enabled to false, these services will not be started at boot. By setting
|
||||
# manage_service to false, puppet will not kill these services on every run. This
|
||||
# allows the Pacemaker resource manager to dynamically determine on which node each
|
||||
# service should run.
|
||||
#
|
||||
# The puppet commands below would ideally be applied to at least three nodes.
|
||||
#
|
||||
# Note that neutron-server is associated with the virtual IP address as
|
||||
# it is called from external services. The remaining services connect to the
|
||||
# database and/or message broker independently.
|
||||
#
|
||||
# Example pacemaker resource configuration commands (configured once per cluster):
|
||||
#
|
||||
# sudo pcs resource create neutron_vip ocf:heartbeat:IPaddr2 params ip=192.0.2.3 \
|
||||
# cidr_netmask=24 op monitor interval=10s
|
||||
#
|
||||
# sudo pcs resource create neutron_server_service lsb:neutron-server
|
||||
# sudo pcs resource create neutron_dhcp_agent_service lsb:neutron-dhcp-agent
|
||||
# sudo pcs resource create neutron_l3_agent_service lsb:neutron-l3-agent
|
||||
#
|
||||
# sudo pcs constraint colocation add neutron_server_service with neutron_vip
|
||||
|
||||
class { 'neutron':
|
||||
verbose => true,
|
||||
allow_overlapping_ips => true,
|
||||
service_plugins => [ 'dhcp', 'l3' ]
|
||||
}
|
||||
|
||||
class { 'neutron::server':
|
||||
enabled => false,
|
||||
manage_service => false,
|
||||
keystone_password => 'password',
|
||||
connection => 'mysql://neutron:password@192.168.1.1/neutron',
|
||||
}
|
||||
|
||||
class { 'neutron::agents::dhcp':
|
||||
enabled => false,
|
||||
manage_service => false,
|
||||
}
|
||||
|
||||
class { 'neutron::agents::l3':
|
||||
enabled => false,
|
||||
manage_service => false,
|
||||
}
|
||||
|
@ -10,6 +10,10 @@
|
||||
# [*enabled*]
|
||||
# (optional) Enable state for service. Defaults to 'true'.
|
||||
#
|
||||
# [*manage_service*]
|
||||
# (optional) Whether to start/stop the service
|
||||
# Defaults to true
|
||||
#
|
||||
# [*debug*]
|
||||
# (optional) Show debugging output in log. Defaults to false.
|
||||
#
|
||||
@ -60,6 +64,7 @@
|
||||
class neutron::agents::dhcp (
|
||||
$package_ensure = present,
|
||||
$enabled = true,
|
||||
$manage_service = true,
|
||||
$debug = false,
|
||||
$state_path = '/var/lib/neutron',
|
||||
$resync_interval = 30,
|
||||
@ -135,14 +140,16 @@ class neutron::agents::dhcp (
|
||||
Package['neutron'] -> Neutron_dhcp_agent_config<||>
|
||||
}
|
||||
|
||||
if $enabled {
|
||||
$ensure = 'running'
|
||||
} else {
|
||||
$ensure = 'stopped'
|
||||
if $manage_service {
|
||||
if $enabled {
|
||||
$service_ensure = 'running'
|
||||
} else {
|
||||
$service_ensure = 'stopped'
|
||||
}
|
||||
}
|
||||
|
||||
service { 'neutron-dhcp-service':
|
||||
ensure => $ensure,
|
||||
ensure => $service_ensure,
|
||||
name => $::neutron::params::dhcp_agent_service,
|
||||
enable => $enabled,
|
||||
require => Class['neutron'],
|
||||
|
@ -14,6 +14,10 @@
|
||||
# (optional) The state of the service
|
||||
# Defaults to true
|
||||
#
|
||||
# [*manage_service*]
|
||||
# (optional) Whether to start/stop the service
|
||||
# Defaults to true
|
||||
#
|
||||
# [*debug*]
|
||||
# (optional) Print debug info in logs
|
||||
# Defaults to false
|
||||
@ -74,6 +78,7 @@
|
||||
class neutron::agents::l3 (
|
||||
$package_ensure = 'present',
|
||||
$enabled = true,
|
||||
$manage_service = true,
|
||||
$debug = false,
|
||||
$external_network_bridge = 'br-ex',
|
||||
$use_namespaces = true,
|
||||
@ -134,14 +139,16 @@ class neutron::agents::l3 (
|
||||
Package['neutron'] -> Neutron_l3_agent_config<||>
|
||||
}
|
||||
|
||||
if $enabled {
|
||||
$ensure = 'running'
|
||||
} else {
|
||||
$ensure = 'stopped'
|
||||
if $manage_service {
|
||||
if $enabled {
|
||||
$service_ensure = 'running'
|
||||
} else {
|
||||
$service_ensure = 'stopped'
|
||||
}
|
||||
}
|
||||
|
||||
service { 'neutron-l3':
|
||||
ensure => $ensure,
|
||||
ensure => $service_ensure,
|
||||
name => $::neutron::params::l3_agent_service,
|
||||
enable => $enabled,
|
||||
require => Class['neutron'],
|
||||
|
@ -10,6 +10,10 @@
|
||||
# [*enabled*]
|
||||
# (optional) Enable state for service. Defaults to 'true'.
|
||||
#
|
||||
# [*manage_service*]
|
||||
# (optional) Whether to start/stop the service
|
||||
# Defaults to true
|
||||
#
|
||||
# [*debug*]
|
||||
# (optional) Show debugging output in log. Defaults to false.
|
||||
#
|
||||
@ -35,6 +39,7 @@
|
||||
class neutron::agents::lbaas (
|
||||
$package_ensure = present,
|
||||
$enabled = true,
|
||||
$manage_service = true,
|
||||
$debug = false,
|
||||
$interface_driver = 'neutron.agent.linux.interface.OVSInterfaceDriver',
|
||||
$device_driver = 'neutron.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver',
|
||||
@ -45,7 +50,7 @@ class neutron::agents::lbaas (
|
||||
|
||||
include neutron::params
|
||||
|
||||
Neutron_config<||> ~> Service['neutron-lbaas-service']
|
||||
Neutron_config<||> ~> Service['neutron-lbaas-service']
|
||||
Neutron_lbaas_agent_config<||> ~> Service['neutron-lbaas-service']
|
||||
|
||||
case $device_driver {
|
||||
@ -86,14 +91,16 @@ class neutron::agents::lbaas (
|
||||
Package['neutron'] -> Neutron_lbaas_agent_config<||>
|
||||
}
|
||||
|
||||
if $enabled {
|
||||
$ensure = 'running'
|
||||
} else {
|
||||
$ensure = 'stopped'
|
||||
if $manage_service {
|
||||
if $enabled {
|
||||
$service_ensure = 'running'
|
||||
} else {
|
||||
$service_ensure = 'stopped'
|
||||
}
|
||||
}
|
||||
|
||||
service { 'neutron-lbaas-service':
|
||||
ensure => $ensure,
|
||||
ensure => $service_ensure,
|
||||
name => $::neutron::params::lbaas_agent_service,
|
||||
enable => $enabled,
|
||||
require => Class['neutron'],
|
||||
|
@ -19,11 +19,16 @@
|
||||
# [*enable*]
|
||||
# (optional) Enable state for service. Defaults to 'true'.
|
||||
#
|
||||
# [*manage_service*]
|
||||
# (optional) Whether to start/stop the service
|
||||
# Defaults to true
|
||||
#
|
||||
class neutron::agents::linuxbridge (
|
||||
$physical_interface_mappings,
|
||||
$firewall_driver = 'neutron.agent.linux.iptables_firewall.IptablesFirewallDriver',
|
||||
$package_ensure = 'present',
|
||||
$enable = true
|
||||
$enable = true,
|
||||
$manage_service = true
|
||||
) {
|
||||
|
||||
include neutron::params
|
||||
@ -53,17 +58,19 @@ class neutron::agents::linuxbridge (
|
||||
}
|
||||
}
|
||||
|
||||
if $enable {
|
||||
$service_ensure = 'running'
|
||||
} else {
|
||||
$service_ensure = 'stopped'
|
||||
}
|
||||
|
||||
neutron_plugin_linuxbridge {
|
||||
'LINUX_BRIDGE/physical_interface_mappings': value => $physical_interface_mappings;
|
||||
'SECURITYGROUP/firewall_driver': value => $firewall_driver;
|
||||
}
|
||||
|
||||
if $manage_service {
|
||||
if $enable {
|
||||
$service_ensure = 'running'
|
||||
} else {
|
||||
$service_ensure = 'stopped'
|
||||
}
|
||||
}
|
||||
|
||||
service { 'neutron-plugin-linuxbridge-service':
|
||||
ensure => $service_ensure,
|
||||
name => $::neutron::params::linuxbridge_agent_service,
|
||||
|
@ -16,6 +16,10 @@
|
||||
# [*enabled*]
|
||||
# State of the service. Defaults to true.
|
||||
#
|
||||
# [*manage_service*]
|
||||
# (optional) Whether to start/stop the service
|
||||
# Defaults to true
|
||||
#
|
||||
# [*debug*]
|
||||
# Debug. Defaults to false.
|
||||
#
|
||||
@ -51,6 +55,7 @@ class neutron::agents::metadata (
|
||||
$shared_secret,
|
||||
$package_ensure = 'present',
|
||||
$enabled = true,
|
||||
$manage_service = true,
|
||||
$debug = false,
|
||||
$auth_tenant = 'services',
|
||||
$auth_user = 'neutron',
|
||||
@ -90,14 +95,16 @@ class neutron::agents::metadata (
|
||||
}
|
||||
}
|
||||
|
||||
if $enabled {
|
||||
$ensure = 'running'
|
||||
} else {
|
||||
$ensure = 'stopped'
|
||||
if $manage_service {
|
||||
if $enabled {
|
||||
$service_ensure = 'running'
|
||||
} else {
|
||||
$service_ensure = 'stopped'
|
||||
}
|
||||
}
|
||||
|
||||
service { 'neutron-metadata':
|
||||
ensure => $ensure,
|
||||
ensure => $service_ensure,
|
||||
name => $::neutron::params::metadata_agent_service,
|
||||
enable => $enabled,
|
||||
require => Class['neutron'],
|
||||
|
@ -27,6 +27,10 @@
|
||||
# [*enabled*]
|
||||
# (optional) Enable state for service. Defaults to 'true'.
|
||||
#
|
||||
# [*manage_service*]
|
||||
# (optional) Whether to start/stop the service
|
||||
# Defaults to true
|
||||
#
|
||||
# [*debug*]
|
||||
# (optional) Show debugging output in log. Defaults to false.
|
||||
#
|
||||
@ -50,6 +54,7 @@
|
||||
class neutron::agents::metering (
|
||||
$package_ensure = present,
|
||||
$enabled = true,
|
||||
$manage_service = true,
|
||||
$debug = false,
|
||||
$interface_driver = 'neutron.agent.linux.interface.OVSInterfaceDriver',
|
||||
$use_namespaces = true,
|
||||
@ -59,7 +64,7 @@ class neutron::agents::metering (
|
||||
|
||||
include neutron::params
|
||||
|
||||
Neutron_config<||> ~> Service['neutron-metering-service']
|
||||
Neutron_config<||> ~> Service['neutron-metering-service']
|
||||
Neutron_metering_agent_config<||> ~> Service['neutron-metering-service']
|
||||
|
||||
# The metering agent loads both neutron.ini and its own file.
|
||||
@ -87,14 +92,16 @@ class neutron::agents::metering (
|
||||
Package['neutron'] -> Neutron_metering_agent_config<||>
|
||||
}
|
||||
|
||||
if $enabled {
|
||||
$ensure = 'running'
|
||||
} else {
|
||||
$ensure = 'stopped'
|
||||
if $manage_service {
|
||||
if $enabled {
|
||||
$service_ensure = 'running'
|
||||
} else {
|
||||
$service_ensure = 'stopped'
|
||||
}
|
||||
}
|
||||
|
||||
service { 'neutron-metering-service':
|
||||
ensure => $ensure,
|
||||
ensure => $service_ensure,
|
||||
name => $::neutron::params::metering_agent_service,
|
||||
enable => $enabled,
|
||||
require => Class['neutron'],
|
||||
|
@ -27,6 +27,10 @@
|
||||
# [*enabled*]
|
||||
# (optional) Enable state for service. Defaults to 'true'.
|
||||
#
|
||||
# [*manage_service*]
|
||||
# (optional) Whether to start/stop the service
|
||||
# Defaults to true
|
||||
#
|
||||
# [*vpn_device_driver*]
|
||||
# (optional) Defaults to 'neutron.services.vpn.device_drivers.ipsec.OpenSwanDriver'.
|
||||
#
|
||||
@ -36,13 +40,14 @@
|
||||
class neutron::agents::vpnaas (
|
||||
$package_ensure = present,
|
||||
$enabled = true,
|
||||
$manage_service = true,
|
||||
$vpn_device_driver = 'neutron.services.vpn.device_drivers.ipsec.OpenSwanDriver',
|
||||
$ipsec_status_check_interval = '60'
|
||||
) {
|
||||
|
||||
include neutron::params
|
||||
|
||||
Neutron_config<||> ~> Service['neutron-vpnaas-service']
|
||||
Neutron_config<||> ~> Service['neutron-vpnaas-service']
|
||||
Neutron_vpnaas_agent_config<||> ~> Service['neutron-vpnaas-service']
|
||||
|
||||
case $vpn_device_driver {
|
||||
@ -79,14 +84,16 @@ class neutron::agents::vpnaas (
|
||||
Package['neutron'] -> Neutron_vpnaas_agent_config<||>
|
||||
}
|
||||
|
||||
if $enabled {
|
||||
$ensure = 'running'
|
||||
} else {
|
||||
$ensure = 'stopped'
|
||||
if $manage_service {
|
||||
if $enabled {
|
||||
$service_ensure = 'running'
|
||||
} else {
|
||||
$service_ensure = 'stopped'
|
||||
}
|
||||
}
|
||||
|
||||
service { 'neutron-vpnaas-service':
|
||||
ensure => $ensure,
|
||||
ensure => $service_ensure,
|
||||
name => $::neutron::params::vpnaas_agent_service,
|
||||
enable => $enabled,
|
||||
require => Class['neutron'],
|
||||
|
@ -12,6 +12,10 @@
|
||||
# (optional) The state of the service
|
||||
# Defaults to true
|
||||
#
|
||||
# [*manage_service*]
|
||||
# (optional) Whether to start/stop the service
|
||||
# Defaults to true
|
||||
#
|
||||
# [*log_file*]
|
||||
# REMOVED: Use log_file of neutron class instead.
|
||||
#
|
||||
@ -136,6 +140,7 @@
|
||||
class neutron::server (
|
||||
$package_ensure = 'present',
|
||||
$enabled = true,
|
||||
$manage_service = true,
|
||||
$auth_password = false,
|
||||
$auth_type = 'keystone',
|
||||
$auth_host = 'localhost',
|
||||
@ -272,12 +277,6 @@ class neutron::server (
|
||||
'database/max_retries': value => $database_max_retries_real;
|
||||
}
|
||||
|
||||
if $enabled {
|
||||
$service_ensure = 'running'
|
||||
} else {
|
||||
$service_ensure = 'stopped'
|
||||
}
|
||||
|
||||
if ($::neutron::params::server_package) {
|
||||
Package['neutron-server'] -> Neutron_api_config<||>
|
||||
Package['neutron-server'] -> Neutron_config<||>
|
||||
@ -352,6 +351,14 @@ class neutron::server (
|
||||
|
||||
}
|
||||
|
||||
if $manage_service {
|
||||
if $enabled {
|
||||
$service_ensure = 'running'
|
||||
} else {
|
||||
$service_ensure = 'stopped'
|
||||
}
|
||||
}
|
||||
|
||||
service { 'neutron-server':
|
||||
ensure => $service_ensure,
|
||||
name => $::neutron::params::server_service,
|
||||
|
@ -72,6 +72,15 @@ describe 'neutron::agents::dhcp' do
|
||||
)
|
||||
end
|
||||
|
||||
context 'with manage_service as false' do
|
||||
before :each do
|
||||
params.merge!(:manage_service => false)
|
||||
end
|
||||
it 'should not start/stop service' do
|
||||
should contain_service('neutron-dhcp-service').without_ensure
|
||||
end
|
||||
end
|
||||
|
||||
context 'when enabling isolated metadata only' do
|
||||
before :each do
|
||||
params.merge!(:enable_isolated_metadata => true, :enable_metadata_network => false)
|
||||
|
@ -75,6 +75,14 @@ describe 'neutron::agents::l3' do
|
||||
)
|
||||
end
|
||||
|
||||
context 'with manage_service as false' do
|
||||
before :each do
|
||||
params.merge!(:manage_service => false)
|
||||
end
|
||||
it 'should not start/stop service' do
|
||||
should contain_service('neutron-l3').without_ensure
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
shared_examples_for 'neutron l3 agent with network_device_mtu specified' do
|
||||
|
@ -63,6 +63,15 @@ describe 'neutron::agents::lbaas' do
|
||||
:require => 'Class[Neutron]'
|
||||
)
|
||||
end
|
||||
|
||||
context 'with manage_service as false' do
|
||||
before :each do
|
||||
params.merge!(:manage_service => false)
|
||||
end
|
||||
it 'should not start/stop service' do
|
||||
should contain_service('neutron-lbaas-service').without_ensure
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
shared_examples_for 'haproxy lbaas_driver' do
|
||||
|
@ -27,6 +27,15 @@ describe 'neutron::agents::linuxbridge' do
|
||||
)
|
||||
end
|
||||
|
||||
context 'with manage_service as false' do
|
||||
before :each do
|
||||
params.merge!(:manage_service => false)
|
||||
end
|
||||
it 'should not start/stop service' do
|
||||
should contain_service('neutron-plugin-linuxbridge-service').without_ensure
|
||||
end
|
||||
end
|
||||
|
||||
it 'configures linuxbridge_conf.ini' do
|
||||
should contain_neutron_plugin_linuxbridge('LINUX_BRIDGE/physical_interface_mappings').with(
|
||||
:value => params[:physical_interface_mappings]
|
||||
|
@ -35,6 +35,15 @@ describe 'neutron::agents::metadata' do
|
||||
)
|
||||
end
|
||||
|
||||
context 'with manage_service as false' do
|
||||
before :each do
|
||||
params.merge!(:manage_service => false)
|
||||
end
|
||||
it 'should not start/stop service' do
|
||||
should contain_service('neutron-metadata').without_ensure
|
||||
end
|
||||
end
|
||||
|
||||
it 'configures metadata_agent.ini' do
|
||||
should contain_neutron_metadata_agent_config('DEFAULT/debug').with(:value => params[:debug])
|
||||
should contain_neutron_metadata_agent_config('DEFAULT/auth_url').with(:value => params[:auth_url])
|
||||
|
@ -81,6 +81,15 @@ describe 'neutron::agents::metering' do
|
||||
:require => 'Class[Neutron]'
|
||||
)
|
||||
end
|
||||
|
||||
context 'with manage_service as false' do
|
||||
before :each do
|
||||
params.merge!(:manage_service => false)
|
||||
end
|
||||
it 'should not start/stop service' do
|
||||
should contain_service('neutron-metering-service').without_ensure
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'on Ubuntu platforms' do
|
||||
|
@ -74,6 +74,15 @@ describe 'neutron::agents::vpnaas' do
|
||||
:require => 'Class[Neutron]'
|
||||
)
|
||||
end
|
||||
|
||||
context 'with manage_service as false' do
|
||||
before :each do
|
||||
params.merge!(:manage_service => false)
|
||||
end
|
||||
it 'should not start/stop service' do
|
||||
should contain_service('neutron-vpnaas-service').without_ensure
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
shared_examples_for 'openswan vpnaas_driver' do
|
||||
|
@ -85,6 +85,15 @@ describe 'neutron::server' do
|
||||
should contain_neutron_config('DEFAULT/report_interval').with_value('30')
|
||||
should contain_neutron_config('DEFAULT/router_scheduler_driver').with_value('neutron.scheduler.l3_agent_scheduler.ChanceScheduler')
|
||||
end
|
||||
|
||||
context 'with manage_service as false' do
|
||||
before :each do
|
||||
params.merge!(:manage_service => false)
|
||||
end
|
||||
it 'should not start/stop service' do
|
||||
should contain_service('neutron-server').without_ensure
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
shared_examples_for 'a neutron server with auth_admin_prefix set' do
|
||||
|
Loading…
x
Reference in New Issue
Block a user