Puppet added
Change-Id: I8406b7daa5fc667edbe827f65de2d71aed629125
This commit is contained in:
parent
433b965085
commit
563fbd9b7c
|
@ -0,0 +1,12 @@
|
||||||
|
#Class apic::api
|
||||||
|
class apic::api (
|
||||||
|
$package_ensure = 'present',
|
||||||
|
) {
|
||||||
|
|
||||||
|
include apic::params
|
||||||
|
package { 'apic_api':
|
||||||
|
ensure => $package_ensure,
|
||||||
|
name => $::apic::params::package_apic_api,
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
#Class apic::host_agent
|
||||||
|
class apic::host_agent (
|
||||||
|
$package_ensure = 'present',
|
||||||
|
$enabled = true,
|
||||||
|
$manage_service = true,
|
||||||
|
){
|
||||||
|
include apic::params
|
||||||
|
|
||||||
|
if $manage_service {
|
||||||
|
if $enabled {
|
||||||
|
$service_ensure = 'running'
|
||||||
|
} else {
|
||||||
|
$service_ensure = 'stopped'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
package { 'apic_host_agent':
|
||||||
|
ensure => $package_ensure,
|
||||||
|
name => $::apic::params::package_apic_agent,
|
||||||
|
}
|
||||||
|
|
||||||
|
service { 'apic-host-agent':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::apic::params::service_apic_host_agent,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
require => Package['apic_host_agent'],
|
||||||
|
}
|
||||||
|
|
||||||
|
Package['apic_host_agent'] -> Neutron_config<||>
|
||||||
|
Package['apic_host_agent'] -> Neutron_plugin_ml2<||>
|
||||||
|
Package['apic_host_agent'] -> Neutron_plugin_ml2_cisco<||>
|
||||||
|
Neutron_config<||> ~> Service['apic-host-agent']
|
||||||
|
Neutron_plugin_ml2<||> ~> Service['apic-host-agent']
|
||||||
|
Neutron_plugin_ml2_cisco<||> ~> Service['apic-host-agent']
|
||||||
|
File_line<||> ~> Service['apic-host-agent']
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
#Class apic::params
|
||||||
|
class apic::params {
|
||||||
|
|
||||||
|
case $::osfamily {
|
||||||
|
'RedHat': {
|
||||||
|
}
|
||||||
|
|
||||||
|
'Debian': {
|
||||||
|
$package_apic_svc = 'neutron-driver-apic-svc'
|
||||||
|
$package_apic_agent = 'neutron-driver-apic-agent'
|
||||||
|
$package_apic_api = 'python-apicapi'
|
||||||
|
$service_apic_svc_agent = 'neutron-driver-apic-svc'
|
||||||
|
$service_apic_host_agent = 'neutron-driver-apic-agent'
|
||||||
|
}
|
||||||
|
|
||||||
|
default: {
|
||||||
|
fail("Unsupported osfamily: ${::osfamily} operatingsystem: ${::operatingsystem}, module ${module_name} only support osfamily RedHat and Debian")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
#Class apic::svc_agent
|
||||||
|
class apic::svc_agent (
|
||||||
|
$package_ensure = 'present',
|
||||||
|
$enabled = true,
|
||||||
|
$manage_service = true,
|
||||||
|
){
|
||||||
|
include apic::params
|
||||||
|
|
||||||
|
if $manage_service {
|
||||||
|
if $enabled {
|
||||||
|
$service_ensure = 'running'
|
||||||
|
} else {
|
||||||
|
$service_ensure = 'stopped'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Package['apic_svc_agent'] -> Neutron_config<||>
|
||||||
|
Package['apic_svc_agent'] -> Neutron_plugin_ml2<||>
|
||||||
|
Package['apic_svc_agent'] -> Neutron_plugin_ml2_cisco<||>
|
||||||
|
Neutron_config<||> ~> Service['apic-svc-agent']
|
||||||
|
Neutron_plugin_ml2<||> ~> Service['apic-svc-agent']
|
||||||
|
Neutron_plugin_ml2_cisco<||> ~> Service['apic-svc-agent']
|
||||||
|
File_line<||> ~> Service['apic-svc-agent']
|
||||||
|
|
||||||
|
package { 'apic_svc_agent':
|
||||||
|
ensure => $package_ensure,
|
||||||
|
name => $::apic::params::package_apic_svc,
|
||||||
|
}
|
||||||
|
|
||||||
|
service { 'apic-svc-agent':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::apic::params::service_apic_svc_agent,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
require => Package['apic_svc_agent'],
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,89 @@
|
||||||
|
#Class cisco_aci::gbp_and_apic_gbp
|
||||||
|
class cisco_aci::gbp_and_apic_gbp (
|
||||||
|
$ha_prefix = '',
|
||||||
|
$role = 'compute',
|
||||||
|
$use_lldp = true,
|
||||||
|
$apic_hosts = '10.0.0.1',
|
||||||
|
$apic_username = 'admin',
|
||||||
|
$apic_password = 'password',
|
||||||
|
$static_config = '',
|
||||||
|
$additional_config = '',
|
||||||
|
$service_plugins = 'neutron.services.l3_router.l3_router_plugin.L3RouterPlugin,gbpservice.neutron.services.grouppolicy.plugin.GroupPolicyPlugin,gbpservice.neutron.services.servicechain.servicechain_plugin.ServiceChainPlugin',
|
||||||
|
$mechanism_drivers = 'openvswitch,apic_gbp',
|
||||||
|
$policy_drivers = 'implicit_policy,apic',
|
||||||
|
$admin_username = 'admin',
|
||||||
|
$admin_password = 'admin',
|
||||||
|
$admin_tenant = 'admin',
|
||||||
|
$ext_net_enable = false,
|
||||||
|
$ext_net_name = 'ext',
|
||||||
|
$ext_net_switch = '101',
|
||||||
|
$ext_net_port = '1/1',
|
||||||
|
$ext_net_subnet = '10.0.0.0/24',
|
||||||
|
$ext_net_gateway = '10.0.0.1',
|
||||||
|
){
|
||||||
|
include 'apic::params'
|
||||||
|
include 'apic::api'
|
||||||
|
|
||||||
|
case $role {
|
||||||
|
/controller/: {
|
||||||
|
if $use_lldp {
|
||||||
|
include 'apic::svc_agent'
|
||||||
|
}
|
||||||
|
include 'neutron::services::apic_server'
|
||||||
|
include "neutron::services::${ha_prefix}agents"
|
||||||
|
include 'gbp::heat'
|
||||||
|
include "heat::${ha_prefix}services"
|
||||||
|
include 'gbp::horizon'
|
||||||
|
include 'gbp::client'
|
||||||
|
include 'gbp::manage'
|
||||||
|
class {'neutron::config_auth':
|
||||||
|
admin_username => $admin_username,
|
||||||
|
admin_password => $admin_password,
|
||||||
|
admin_tenant => $admin_tenant,
|
||||||
|
}
|
||||||
|
if ($role == 'primary-controller' and $ext_net_enable == true){
|
||||||
|
class {'neutron::network':
|
||||||
|
tenant_name => $admin_tenant,
|
||||||
|
ext_net_name => $ext_net_name,
|
||||||
|
ext_net_subnet => $ext_net_subnet,
|
||||||
|
ext_net_gateway => $ext_net_gateway,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'compute': {
|
||||||
|
include 'neutron::services::ovs_agent'
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if $use_lldp {
|
||||||
|
include 'lldp'
|
||||||
|
include 'apic::host_agent'
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class {'gbp::config':
|
||||||
|
policy_drivers => $policy_drivers,
|
||||||
|
}
|
||||||
|
|
||||||
|
class {'neutron::config':
|
||||||
|
service_plugins => $service_plugins,
|
||||||
|
mechanism_drivers => $mechanism_drivers,
|
||||||
|
}
|
||||||
|
|
||||||
|
class {'neutron::config_apic':
|
||||||
|
apic_hosts => $apic_hosts,
|
||||||
|
apic_username => $apic_username,
|
||||||
|
apic_password => $apic_password,
|
||||||
|
static_config => $static_config,
|
||||||
|
additional_config => $additional_config,
|
||||||
|
ext_net_enable => $ext_net_enable,
|
||||||
|
ext_net_name => $ext_net_name,
|
||||||
|
ext_net_switch => $ext_net_switch,
|
||||||
|
ext_net_port => $ext_net_port,
|
||||||
|
ext_net_subnet => $ext_net_subnet,
|
||||||
|
ext_net_gateway => $ext_net_gateway,
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,89 @@
|
||||||
|
#Class cisco_aci::gbp_and_apic_ml2
|
||||||
|
class cisco_aci::gbp_and_apic_ml2 (
|
||||||
|
$ha_prefix = '',
|
||||||
|
$role = 'compute',
|
||||||
|
$use_lldp = true,
|
||||||
|
$apic_hosts = '10.0.0.1',
|
||||||
|
$apic_username = 'admin',
|
||||||
|
$apic_password = 'password',
|
||||||
|
$static_config = '',
|
||||||
|
$additional_config = '',
|
||||||
|
$service_plugins = 'neutron.services.l3_router.l3_apic.ApicL3ServicePlugin',
|
||||||
|
$mechanism_drivers = 'openvswitch,cisco_apic',
|
||||||
|
$policy_drivers = 'implicit_policy,apic',
|
||||||
|
$admin_username = 'admin',
|
||||||
|
$admin_password = 'admin',
|
||||||
|
$admin_tenant = 'admin',
|
||||||
|
$ext_net_enable = false,
|
||||||
|
$ext_net_name = 'ext',
|
||||||
|
$ext_net_switch = '101',
|
||||||
|
$ext_net_port = '1/1',
|
||||||
|
$ext_net_subnet = '10.0.0.0/24',
|
||||||
|
$ext_net_gateway = '10.0.0.1',
|
||||||
|
){
|
||||||
|
include 'apic::params'
|
||||||
|
include 'apic::api'
|
||||||
|
|
||||||
|
case $role {
|
||||||
|
/controller/: {
|
||||||
|
if $use_lldp {
|
||||||
|
include 'apic::svc_agent'
|
||||||
|
}
|
||||||
|
include 'neutron::services::apic_server'
|
||||||
|
include "neutron::services::${ha_prefix}agents"
|
||||||
|
include 'gbp::heat'
|
||||||
|
include "heat::${ha_prefix}services"
|
||||||
|
include 'gbp::horizon'
|
||||||
|
include 'gbp::client'
|
||||||
|
include 'gbp::manage'
|
||||||
|
class {'neutron::config_auth':
|
||||||
|
admin_username => $admin_username,
|
||||||
|
admin_password => $admin_password,
|
||||||
|
admin_tenant => $admin_tenant,
|
||||||
|
}
|
||||||
|
if ($role == 'primary-controller' and $ext_net_enable == true){
|
||||||
|
class {'neutron::network':
|
||||||
|
tenant_name => $admin_tenant,
|
||||||
|
ext_net_name => $ext_net_name,
|
||||||
|
ext_net_subnet => $ext_net_subnet,
|
||||||
|
ext_net_gateway => $ext_net_gateway,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'compute': {
|
||||||
|
include 'neutron::services::ovs_agent'
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if $use_lldp {
|
||||||
|
include 'lldp'
|
||||||
|
include 'apic::host_agent'
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class {'gbp::config':
|
||||||
|
policy_drivers => $policy_drivers,
|
||||||
|
}
|
||||||
|
|
||||||
|
class {'neutron::config':
|
||||||
|
service_plugins => $service_plugins,
|
||||||
|
mechanism_drivers => $mechanism_drivers,
|
||||||
|
}
|
||||||
|
|
||||||
|
class {'neutron::config_apic':
|
||||||
|
apic_hosts => $apic_hosts,
|
||||||
|
apic_username => $apic_username,
|
||||||
|
apic_password => $apic_password,
|
||||||
|
static_config => $static_config,
|
||||||
|
additional_config => $additional_config,
|
||||||
|
ext_net_enable => $ext_net_enable,
|
||||||
|
ext_net_name => $ext_net_name,
|
||||||
|
ext_net_switch => $ext_net_switch,
|
||||||
|
ext_net_port => $ext_net_port,
|
||||||
|
ext_net_subnet => $ext_net_subnet,
|
||||||
|
ext_net_gateway => $ext_net_gateway,
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
#Class cisco_aci::gbp_and_mapping
|
||||||
|
class cisco_aci::gbp_and_mapping (
|
||||||
|
$ha_prefix = '',
|
||||||
|
$role = 'compute',
|
||||||
|
$service_plugins = 'neutron.services.l3_router.l3_router_plugin.L3RouterPlugin,gbpservice.neutron.services.grouppolicy.plugin.GroupPolicyPlugin,gbpservice.neutron.services.servicechain.servicechain_plugin.ServiceChainPlugin',
|
||||||
|
$mechanism_drivers = 'openvswitch',
|
||||||
|
$policy_drivers = 'implicit_policy,resource_mapping',
|
||||||
|
){
|
||||||
|
include 'apic::api'
|
||||||
|
|
||||||
|
case $role {
|
||||||
|
/controller/: {
|
||||||
|
include 'neutron::services::server'
|
||||||
|
include "neutron::services::${ha_prefix}agents"
|
||||||
|
include 'gbp::heat'
|
||||||
|
include "heat::${ha_prefix}services"
|
||||||
|
include 'gbp::horizon'
|
||||||
|
include 'gbp::client'
|
||||||
|
include 'gbp::manage'
|
||||||
|
}
|
||||||
|
'compute': {
|
||||||
|
include 'neutron::services::ovs_agent'
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class {'gbp::config':
|
||||||
|
policy_drivers => $policy_drivers,
|
||||||
|
}
|
||||||
|
|
||||||
|
class {'neutron::config':
|
||||||
|
service_plugins => $service_plugins,
|
||||||
|
mechanism_drivers => $mechanism_drivers,
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,79 @@
|
||||||
|
#Class cisco_aci::generic_apic_ml2
|
||||||
|
class cisco_aci::generic_apic_ml2 (
|
||||||
|
$ha_prefix = '',
|
||||||
|
$role = 'compute',
|
||||||
|
$use_lldp = true,
|
||||||
|
$apic_hosts = '10.0.0.1',
|
||||||
|
$apic_username = 'admin',
|
||||||
|
$apic_password = 'password',
|
||||||
|
$static_config = '',
|
||||||
|
$additional_config = '',
|
||||||
|
$service_plugins = 'neutron.services.l3_router.l3_apic.ApicL3ServicePlugin',
|
||||||
|
$mechanism_drivers = 'openvswitch,cisco_apic',
|
||||||
|
$admin_username = 'admin',
|
||||||
|
$admin_password = 'admin',
|
||||||
|
$admin_tenant = 'admin',
|
||||||
|
$ext_net_enable = false,
|
||||||
|
$ext_net_name = 'ext',
|
||||||
|
$ext_net_switch = '101',
|
||||||
|
$ext_net_port = '1/1',
|
||||||
|
$ext_net_subnet = '10.0.0.0/24',
|
||||||
|
$ext_net_gateway = '10.0.0.1',
|
||||||
|
){
|
||||||
|
include 'apic::params'
|
||||||
|
include 'apic::api'
|
||||||
|
|
||||||
|
case $role {
|
||||||
|
/controller/: {
|
||||||
|
if $use_lldp {
|
||||||
|
include 'apic::svc_agent'
|
||||||
|
}
|
||||||
|
include 'neutron::services::apic_server'
|
||||||
|
include "neutron::services::${ha_prefix}agents"
|
||||||
|
class {'neutron::config_auth':
|
||||||
|
admin_username => $admin_username,
|
||||||
|
admin_password => $admin_password,
|
||||||
|
admin_tenant => $admin_tenant,
|
||||||
|
}
|
||||||
|
if ($role == 'primary-controller' and $ext_net_enable == true){
|
||||||
|
class {'neutron::network':
|
||||||
|
tenant_name => $admin_tenant,
|
||||||
|
ext_net_name => $ext_net_name,
|
||||||
|
ext_net_subnet => $ext_net_subnet,
|
||||||
|
ext_net_gateway => $ext_net_gateway,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'compute': {
|
||||||
|
include 'neutron::services::ovs_agent'
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if $use_lldp {
|
||||||
|
include 'lldp'
|
||||||
|
include 'apic::host_agent'
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class {'neutron::config':
|
||||||
|
service_plugins => $service_plugins,
|
||||||
|
mechanism_drivers => $mechanism_drivers,
|
||||||
|
}
|
||||||
|
|
||||||
|
class {'neutron::config_apic':
|
||||||
|
apic_hosts => $apic_hosts,
|
||||||
|
apic_username => $apic_username,
|
||||||
|
apic_password => $apic_password,
|
||||||
|
static_config => $static_config,
|
||||||
|
additional_config => $additional_config,
|
||||||
|
ext_net_enable => $ext_net_enable,
|
||||||
|
ext_net_name => $ext_net_name,
|
||||||
|
ext_net_switch => $ext_net_switch,
|
||||||
|
ext_net_port => $ext_net_port,
|
||||||
|
ext_net_subnet => $ext_net_subnet,
|
||||||
|
ext_net_gateway => $ext_net_gateway,
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
#Class gbp::client
|
||||||
|
class gbp::client (
|
||||||
|
$package_ensure = 'present',
|
||||||
|
){
|
||||||
|
include gbp::params
|
||||||
|
|
||||||
|
package { 'gbp_client':
|
||||||
|
ensure => $package_ensure,
|
||||||
|
name => $::gbp::params::package_gbp_client,
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
#Class gbp::config
|
||||||
|
class gbp::config (
|
||||||
|
$policy_drivers = '',
|
||||||
|
){
|
||||||
|
neutron_config {
|
||||||
|
'group_policy/policy_drivers': value => $policy_drivers;
|
||||||
|
'servicechain/servicechain_drivers': value => 'simplechain_driver';
|
||||||
|
'quotas/default_quota': value => '-1';
|
||||||
|
'quotas/quota_network': value => '-1';
|
||||||
|
'quotas/quota_subnet': value => '-1';
|
||||||
|
'quotas/quota_port': value => '-1';
|
||||||
|
'quotas/quota_security_group': value => '-1';
|
||||||
|
'quotas/quota_security_group_rule': value => '-1';
|
||||||
|
'quotas/quota_router': value => '-1';
|
||||||
|
'quotas/quota_floatingip': value => '-1';
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
#Class gbp::heat
|
||||||
|
class gbp::heat (
|
||||||
|
$package_ensure = 'present',
|
||||||
|
){
|
||||||
|
include gbp::params
|
||||||
|
|
||||||
|
Package['gbp_heat'] -> Heat_config<||>
|
||||||
|
|
||||||
|
package { 'gbp_heat':
|
||||||
|
ensure => $package_ensure,
|
||||||
|
name => $::gbp::params::package_gbp_heat,
|
||||||
|
}
|
||||||
|
|
||||||
|
heat_config{
|
||||||
|
'DEFAULT/plugin_dirs' : value => '/usr/lib/python2.7/dist-packages/gbpautomation/heat';
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
#Class gbp::horizon
|
||||||
|
class gbp::horizon (
|
||||||
|
$package_ensure = 'present',
|
||||||
|
){
|
||||||
|
include gbp::params
|
||||||
|
|
||||||
|
$enable_project = ['_50_gbp_project_add_panel_group.py','_60_gbp_project_add_panel.py','_61_gbp_project_add_panel.py','_62_gbp_project_add_panel.py','_63_gbp_project_add_panel.py']
|
||||||
|
|
||||||
|
package { 'gbp_horizon':
|
||||||
|
ensure => $package_ensure,
|
||||||
|
name => $::gbp::params::package_gbp_horizon,
|
||||||
|
}
|
||||||
|
|
||||||
|
horizon::project{$enable_project:
|
||||||
|
project_dir => $::gbp::params::gbp_horizon_project,
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
#Class gbp::manage
|
||||||
|
class gbp::manage (
|
||||||
|
$package_ensure = 'present',
|
||||||
|
){
|
||||||
|
include gbp::params
|
||||||
|
include neutron::services::server
|
||||||
|
|
||||||
|
Exec['gbp_dbsync'] ~> Service['neutron-server']
|
||||||
|
|
||||||
|
package { 'gbp_manage':
|
||||||
|
ensure => $package_ensure,
|
||||||
|
name => $::gbp::params::package_gbp_manage,
|
||||||
|
}
|
||||||
|
|
||||||
|
exec { 'gbp_dbsync':
|
||||||
|
command => $::gbp::params::dbsync_command,
|
||||||
|
path => '/usr/bin',
|
||||||
|
refreshonly => true,
|
||||||
|
logoutput => on_failure,
|
||||||
|
require => Package['gbp_manage'],
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
#Class gbp::params
|
||||||
|
class gbp::params {
|
||||||
|
|
||||||
|
$dbsync_command = 'gbp-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head'
|
||||||
|
|
||||||
|
case $::osfamily {
|
||||||
|
'RedHat': {
|
||||||
|
}
|
||||||
|
|
||||||
|
'Debian': {
|
||||||
|
$package_gbp_client = 'python-python-group-based-policy-client'
|
||||||
|
$package_gbp_manage = 'python-group-based-policy'
|
||||||
|
$package_gbp_heat = 'python-group-based-policy-automation'
|
||||||
|
$package_gbp_horizon = 'python-group-based-policy-ui'
|
||||||
|
$gbp_horizon_project = '/usr/lib/python2.7/dist-packages/gbpui'
|
||||||
|
}
|
||||||
|
|
||||||
|
default: {
|
||||||
|
fail("Unsupported osfamily: ${::osfamily} operatingsystem: ${::operatingsystem}, module ${module_name} only support osfamily RedHat and Debian")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,49 @@
|
||||||
|
#Class heat::ha_services
|
||||||
|
class heat::ha_services (
|
||||||
|
$enabled = true,
|
||||||
|
) {
|
||||||
|
|
||||||
|
include heat::params
|
||||||
|
|
||||||
|
if $enabled {
|
||||||
|
$service_ensure = 'running'
|
||||||
|
} else {
|
||||||
|
$service_ensure = 'stopped'
|
||||||
|
}
|
||||||
|
|
||||||
|
service { 'heat-api':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::heat::params::api_service_name,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
tag => 'heat',
|
||||||
|
}
|
||||||
|
service { 'heat-api-cloudwatch':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::heat::params::api_cloudwatch_service_name,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
tag => 'heat',
|
||||||
|
}
|
||||||
|
service { 'heat-api-cfn':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::heat::params::api_cfn_service_name,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
tag => 'heat',
|
||||||
|
}
|
||||||
|
service { 'heat-engine':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::heat::params::engine_ha_service_name,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
provider => 'pacemaker',
|
||||||
|
tag => 'heat',
|
||||||
|
}
|
||||||
|
|
||||||
|
Heat_config<||> ~> Service<| tag == 'heat' |>
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
# Parameters for puppet-heat
|
||||||
|
#
|
||||||
|
class heat::params {
|
||||||
|
|
||||||
|
$dbsync_command =
|
||||||
|
'heat-manage --config-file /etc/heat/heat.conf db_sync'
|
||||||
|
|
||||||
|
case $::osfamily {
|
||||||
|
'RedHat': {
|
||||||
|
# service names
|
||||||
|
$api_service_name = 'openstack-heat-api'
|
||||||
|
$api_cloudwatch_service_name = 'openstack-heat-api-cloudwatch'
|
||||||
|
$api_cfn_service_name = 'openstack-heat-api-cfn'
|
||||||
|
$engine_service_name = 'openstack-heat-engine'
|
||||||
|
$engine_ha_service_name = 'p_openstack-heat-engine'
|
||||||
|
}
|
||||||
|
'Debian': {
|
||||||
|
# service names
|
||||||
|
$api_service_name = 'heat-api'
|
||||||
|
$api_cloudwatch_service_name = 'heat-api-cloudwatch'
|
||||||
|
$api_cfn_service_name = 'heat-api-cfn'
|
||||||
|
$engine_service_name = 'heat-engine'
|
||||||
|
$engine_ha_service_name = 'p_heat-engine'
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
fail("Unsupported osfamily: ${::osfamily} operatingsystem: \
|
||||||
|
${::operatingsystem}, module ${module_name} only support osfamily \
|
||||||
|
RedHat and Debian")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
#Class heat::services
|
||||||
|
class heat::services (
|
||||||
|
$enabled = true,
|
||||||
|
) {
|
||||||
|
|
||||||
|
include heat::params
|
||||||
|
|
||||||
|
if $enabled {
|
||||||
|
$service_ensure = 'running'
|
||||||
|
} else {
|
||||||
|
$service_ensure = 'stopped'
|
||||||
|
}
|
||||||
|
|
||||||
|
service { 'heat-api':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::heat::params::api_service_name,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
tag => 'heat',
|
||||||
|
}
|
||||||
|
service { 'heat-api-cloudwatch':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::heat::params::api_cloudwatch_service_name,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
tag => 'heat',
|
||||||
|
}
|
||||||
|
service { 'heat-api-cfn':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::heat::params::api_cfn_service_name,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
tag => 'heat',
|
||||||
|
}
|
||||||
|
service { 'heat-engine_service':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::heat::params::engine_service_name,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
tag => 'heat',
|
||||||
|
}
|
||||||
|
|
||||||
|
Heat_config<||> ~> Service<| tag == 'heat' |>
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
# these parameters need to be accessed from several locations and
|
||||||
|
# should be considered to be constant
|
||||||
|
class horizon::params {
|
||||||
|
|
||||||
|
$dashboard_enabled = '/usr/share/openstack-dashboard/openstack_dashboard/enabled'
|
||||||
|
|
||||||
|
case $::osfamily {
|
||||||
|
'RedHat': {
|
||||||
|
$http_service = 'httpd'
|
||||||
|
}
|
||||||
|
'Debian': {
|
||||||
|
$http_service = 'apache2'
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
fail("Unsupported osfamily: ${::osfamily} operatingsystem: ${::operatingsystem}, module ${module_name} only support osfamily RedHat and Debian")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
#
|
||||||
|
define horizon::project(
|
||||||
|
$project_dir = '/tmp',
|
||||||
|
){
|
||||||
|
include horizon::params
|
||||||
|
include horizon::service
|
||||||
|
|
||||||
|
File[$name] ~> Service['httpd']
|
||||||
|
|
||||||
|
file {$name:
|
||||||
|
ensure => link,
|
||||||
|
path => "${::horizon::params::dashboard_enabled}/${name}",
|
||||||
|
target => "${project_dir}/${name}",
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
#
|
||||||
|
class horizon::service(
|
||||||
|
$package_ensure = present,
|
||||||
|
) {
|
||||||
|
|
||||||
|
include horizon::params
|
||||||
|
|
||||||
|
service { 'httpd':
|
||||||
|
ensure => 'running',
|
||||||
|
name => $::horizon::params::http_service,
|
||||||
|
enable => true
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,58 @@
|
||||||
|
#Class lldp
|
||||||
|
|
||||||
|
class lldp (
|
||||||
|
$ensure = 'present',
|
||||||
|
$autoupdate = true,
|
||||||
|
$package_name = 'lldpd',
|
||||||
|
$service_name = 'lldpd',
|
||||||
|
){
|
||||||
|
|
||||||
|
include lldp::params
|
||||||
|
case $ensure {
|
||||||
|
'present': {
|
||||||
|
if $autoupdate {
|
||||||
|
$pkg_ensure = 'latest'
|
||||||
|
} else {
|
||||||
|
$pkg_ensure = 'present'
|
||||||
|
}
|
||||||
|
$svc_ensure = 'running'
|
||||||
|
$svc_enable = true
|
||||||
|
$file_ensure = 'present'
|
||||||
|
}
|
||||||
|
'absent': {
|
||||||
|
$pkg_ensure = 'absent'
|
||||||
|
$svc_ensure = 'stopped'
|
||||||
|
$svc_enable = false
|
||||||
|
$file_ensure = 'absent'
|
||||||
|
}
|
||||||
|
'purged': {
|
||||||
|
$pkg_ensure = 'purged'
|
||||||
|
$svc_ensure = 'stopped'
|
||||||
|
$svc_enable = false
|
||||||
|
$file_ensure = 'absent'
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
package {$package_name:
|
||||||
|
ensure => $pkg_ensure,
|
||||||
|
}
|
||||||
|
|
||||||
|
file {$::lldp::params::config_file_path:
|
||||||
|
ensure => $file_ensure,
|
||||||
|
content => inline_template($::lldp::params::config_file_data),
|
||||||
|
require => Package[$package_name],
|
||||||
|
notify => Service[$service_name],
|
||||||
|
}
|
||||||
|
|
||||||
|
service {$service_name:
|
||||||
|
ensure => $svc_ensure,
|
||||||
|
enable => $svc_enable,
|
||||||
|
require => File[$::lldp::params::config_file_path],
|
||||||
|
hasstatus => false,
|
||||||
|
hasrestart => true,
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
#Class lldp::params
|
||||||
|
|
||||||
|
class lldp::params {
|
||||||
|
|
||||||
|
$autoupdate = false
|
||||||
|
$package_name = 'lldpd'
|
||||||
|
$service_name = 'lldpd'
|
||||||
|
|
||||||
|
case $::osfamily {
|
||||||
|
'Debian': {
|
||||||
|
$config_file_path = '/etc/default/lldpd'
|
||||||
|
$config_file_data = '#Generated by puppet <%= "\n" %>DAEMON_ARGS="-c -I eth*"<%= "\n" %>'
|
||||||
|
}
|
||||||
|
'RedHat': {
|
||||||
|
$config_file_path = '/etc/sysconfig/lldpd'
|
||||||
|
$config_file_data = '#Generated by puppet <%= "\n" %>LLDPD_OPTIONS="-c -I eth*"<%= "\n" %>'
|
||||||
|
}
|
||||||
|
default: { fail("lldp: unsuported OS family ${::osfamily}") }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
configs+=(
|
||||||
|
"/etc/neutron/plugins/ml2/ml2_conf_cisco.ini" \
|
||||||
|
)
|
|
@ -0,0 +1,25 @@
|
||||||
|
# vim:set ft=upstart ts=2 et:
|
||||||
|
description "Neutron API Server"
|
||||||
|
author "Chuck Short <zulcss@ubuntu.com>"
|
||||||
|
|
||||||
|
start on runlevel [2345]
|
||||||
|
stop on runlevel [!2345]
|
||||||
|
|
||||||
|
respawn
|
||||||
|
|
||||||
|
chdir /var/run
|
||||||
|
|
||||||
|
pre-start script
|
||||||
|
mkdir -p /var/run/neutron
|
||||||
|
chown neutron:root /var/run/neutron
|
||||||
|
end script
|
||||||
|
|
||||||
|
script
|
||||||
|
[ -r /etc/default/neutron-server ] && . /etc/default/neutron-server
|
||||||
|
[ -r "$NEUTRON_PLUGIN_CONFIG" ] && CONF_ARG="--config-file $NEUTRON_PLUGIN_CONFIG"
|
||||||
|
exec start-stop-daemon --start --chuid neutron --exec /usr/bin/neutron-server -- \
|
||||||
|
--config-file /etc/neutron/neutron.conf \
|
||||||
|
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini \
|
||||||
|
--config-file /etc/neutron/plugins/ml2/ml2_conf_cisco.ini \
|
||||||
|
--log-file /var/log/neutron/server.log $CONF_ARG
|
||||||
|
end script
|
|
@ -0,0 +1,26 @@
|
||||||
|
#Class neutron::config
|
||||||
|
|
||||||
|
class neutron::config (
|
||||||
|
$service_plugins = 'neutron.services.l3_router.l3_router_plugin.L3RouterPlugin',
|
||||||
|
$mechanism_drivers = 'openvswitch',
|
||||||
|
){
|
||||||
|
|
||||||
|
neutron_config {
|
||||||
|
'DEFAULT/service_plugins': value => $service_plugins;
|
||||||
|
'DEFAULT/core_plugin': value => 'neutron.plugins.ml2.plugin.Ml2Plugin';
|
||||||
|
}
|
||||||
|
neutron_plugin_ml2 {
|
||||||
|
'ml2/type_drivers': value => 'local,flat,vlan,gre,vxlan';
|
||||||
|
'ml2/tenant_network_types': value => 'vlan';
|
||||||
|
'ml2/mechanism_drivers': value => $mechanism_drivers;
|
||||||
|
#'ml2_type_vlan/network_vlan_ranges': value => "$physnets_dev:$vlan_range";
|
||||||
|
'securitygroup/enable_security_group': value => 'True';
|
||||||
|
'securitygroup/firewall_driver': value => 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver';
|
||||||
|
#'ovs/integration_bridge': value => "$int_bridge";
|
||||||
|
#'ovs/bridge_mappings': value => "$physnets_dev:$int_bridge";
|
||||||
|
#'ovs/enable_tunneling': value => 'False';
|
||||||
|
'agent/polling_interval': value => '2';
|
||||||
|
'agent/l2_population': value => 'False';
|
||||||
|
'agent/arp_responder': value => 'False';
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
#Class neutron::config_apic
|
||||||
|
class neutron::config_apic (
|
||||||
|
$apic_hosts = '10.0.0.1',
|
||||||
|
$apic_username = 'admin',
|
||||||
|
$apic_password = 'password',
|
||||||
|
$static_config = '',
|
||||||
|
$additional_config = '',
|
||||||
|
$ext_net_enable = false,
|
||||||
|
$ext_net_name = 'ext',
|
||||||
|
$ext_net_switch = '101',
|
||||||
|
$ext_net_port = '1/1',
|
||||||
|
$ext_net_subnet = '10.0.0.0/24',
|
||||||
|
$ext_net_gateway = '10.0.0.1',
|
||||||
|
){
|
||||||
|
|
||||||
|
neutron_plugin_ml2_cisco {
|
||||||
|
'DEFAULT/apic_system_id': value => 'openstack';
|
||||||
|
'ml2_cisco_apic/apic_hosts': value => $apic_hosts;
|
||||||
|
'ml2_cisco_apic/apic_username': value => $apic_username;
|
||||||
|
'ml2_cisco_apic/apic_password': value => $apic_password;
|
||||||
|
'ml2_cisco_apic/apic_name_mapping': value => 'use_name' ;
|
||||||
|
'ml2_cisco_apic/root_helper': value => 'sudo';
|
||||||
|
}
|
||||||
|
if !empty($additional_config) {
|
||||||
|
file_line{ 'additional_config':
|
||||||
|
path => '/etc/neutron/plugins/ml2/ml2_conf_cisco.ini',
|
||||||
|
line => $additional_config,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !empty($static_config) {
|
||||||
|
file_line{ 'static_config':
|
||||||
|
path => '/etc/neutron/plugins/ml2/ml2_conf_cisco.ini',
|
||||||
|
line => $static_config,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($ext_net_enable == true){
|
||||||
|
neutron_plugin_ml2_cisco {
|
||||||
|
"apic_external_network:${ext_net_name}/switch": value => $ext_net_switch;
|
||||||
|
"apic_external_network:${ext_net_name}/port": value => $ext_net_port;
|
||||||
|
"apic_external_network:${ext_net_name}/cidr_exposed": value => $ext_net_subnet;
|
||||||
|
"apic_external_network:${ext_net_name}/gateway_ip": value => $ext_net_gateway;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
#Class neutron::config_auth
|
||||||
|
class neutron::config_auth (
|
||||||
|
$admin_username = 'admin',
|
||||||
|
$admin_password = 'admin',
|
||||||
|
$admin_tenant = 'admin',
|
||||||
|
){
|
||||||
|
|
||||||
|
neutron_config {
|
||||||
|
'keystone_authtoken/admin_user': value => $admin_username;
|
||||||
|
'keystone_authtoken/admin_password': value => $admin_password;
|
||||||
|
'keystone_authtoken/admin_tenant_name': value => $admin_tenant;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
#Class neutron::network
|
||||||
|
class neutron::network (
|
||||||
|
$ensure = 'present',
|
||||||
|
$ext_net_name = 'extnet',
|
||||||
|
$ext_net_subnet = '10.0.0.0/24',
|
||||||
|
$ext_net_gateway = '10.0.0.1',
|
||||||
|
$shared = true,
|
||||||
|
$tenant_name = 'admin',
|
||||||
|
) {
|
||||||
|
|
||||||
|
neutron_network { $ext_net_name:
|
||||||
|
ensure => $ensure,
|
||||||
|
router_external => true,
|
||||||
|
tenant_name => $tenant_name,
|
||||||
|
shared => $shared,
|
||||||
|
}
|
||||||
|
->
|
||||||
|
neutron_subnet { "${ext_net_name}__subnet":
|
||||||
|
ensure => $ensure,
|
||||||
|
cidr => $ext_net_subnet,
|
||||||
|
network_name => $ext_net_name,
|
||||||
|
tenant_name => $tenant_name,
|
||||||
|
gateway_ip => $ext_net_gateway,
|
||||||
|
}
|
||||||
|
->
|
||||||
|
neutron_router { "${ext_net_name}__router":
|
||||||
|
ensure => $ensure,
|
||||||
|
tenant_name => $tenant_name,
|
||||||
|
}
|
||||||
|
->
|
||||||
|
neutron_router_interface { "${ext_net_name}__router:${ext_net_name}__subnet":
|
||||||
|
ensure => present,
|
||||||
|
}
|
||||||
|
|
||||||
|
Service<| title == 'neutron-server'|> -> Neutron_network<||>
|
||||||
|
Service<| title == 'neutron-server'|> -> Neutron_subnet<||>
|
||||||
|
Service<| title == 'neutron-server'|> -> Neutron_router<||>
|
||||||
|
Service<| title == 'neutron-server'|> -> Neutron_router_interface<||>
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
#Class neutron::params
|
||||||
|
class neutron::params {
|
||||||
|
|
||||||
|
$ha_metadata_agent = 'p_neutron-metadata-agent'
|
||||||
|
$ha_dhcp_agent = 'p_neutron-dhcp-agent'
|
||||||
|
$ha_l3_agent = 'p_neutron-l3-agent'
|
||||||
|
$service_metadata_agent = 'neutron-metadata-agent'
|
||||||
|
$service_dhcp_agent = 'neutron-dhcp-agent'
|
||||||
|
$service_l3_agent = 'neutron-l3-agent'
|
||||||
|
$service_neutron_server = 'neutron-server'
|
||||||
|
|
||||||
|
case $::osfamily {
|
||||||
|
'RedHat': {
|
||||||
|
$service_ovs_agent = 'neutron-openvswitch-agent'
|
||||||
|
$ha_ovs_agent = 'p_neutron-openvswitch-agent'
|
||||||
|
$initd_file_path = '/etc/sysconfig/neutron'
|
||||||
|
$initd_file_template = 'puppet:///modules/neutron/neutron'
|
||||||
|
}
|
||||||
|
|
||||||
|
'Debian': {
|
||||||
|
$service_ovs_agent = 'neutron-plugin-openvswitch-agent'
|
||||||
|
$ha_ovs_agent = 'p_neutron-plugin-openvswitch-agent'
|
||||||
|
$initd_file_path = '/etc/init/neutron-server.conf'
|
||||||
|
$initd_file_template = 'puppet:///modules/neutron/neutron-server.conf'
|
||||||
|
}
|
||||||
|
|
||||||
|
default: {
|
||||||
|
fail("Unsupported osfamily: ${::osfamily} operatingsystem: ${::operatingsystem}, module ${module_name} only support osfamily RedHat and Debian")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,57 @@
|
||||||
|
#Class neutron::services::agents
|
||||||
|
class neutron::services::agents (
|
||||||
|
$enabled = true,
|
||||||
|
$manage_service = true,
|
||||||
|
){
|
||||||
|
include neutron::params
|
||||||
|
|
||||||
|
if $manage_service {
|
||||||
|
if $enabled {
|
||||||
|
$service_ensure = 'running'
|
||||||
|
} else {
|
||||||
|
$service_ensure = 'stopped'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
service { 'neutron-ovs-agent':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::neutron::params::service_ovs_agent,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
tag => 'neutron_agents'
|
||||||
|
}
|
||||||
|
|
||||||
|
service { 'neutron-metadata-agent':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::neutron::params::service_metadata_agent,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
tag => 'neutron_agents'
|
||||||
|
}
|
||||||
|
|
||||||
|
service { 'neutron-dhcp-agent':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::neutron::params::service_dhcp_agent,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
tag => 'neutron_agents'
|
||||||
|
}
|
||||||
|
|
||||||
|
service { 'neutron-l3-agent':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::neutron::params::service_l3_agent,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
tag => 'neutron_agents'
|
||||||
|
}
|
||||||
|
|
||||||
|
Neutron_config<||> ~> Service<| tag == 'neutron_agents' |>
|
||||||
|
Neutron_plugin_ml2<||> ~> Service<| tag == 'neutron_agents' |>
|
||||||
|
Neutron_plugin_ml2_cisco<||> ~> Service<| tag == 'neutron_agents' |>
|
||||||
|
File_line<||> ~> Service<| tag == 'neutron_agents' |>
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
#Class neutron::services::apic_server
|
||||||
|
class neutron::services::apic_server (
|
||||||
|
$enabled = true,
|
||||||
|
$manage_service = true,
|
||||||
|
){
|
||||||
|
include neutron::params
|
||||||
|
include neutron::services::server
|
||||||
|
|
||||||
|
File['neutron_initd'] ~> Service['neutron-server']
|
||||||
|
|
||||||
|
file {'neutron_initd':
|
||||||
|
ensure => 'present',
|
||||||
|
path => $::neutron::params::initd_file_path,
|
||||||
|
source => $::neutron::params::initd_file_template,
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
#Class neutron::services::ha_agents
|
||||||
|
class neutron::services::ha_agents (
|
||||||
|
$enabled = true,
|
||||||
|
$manage_service = true,
|
||||||
|
){
|
||||||
|
include neutron::params
|
||||||
|
|
||||||
|
if $manage_service {
|
||||||
|
if $enabled {
|
||||||
|
$service_ensure = 'running'
|
||||||
|
} else {
|
||||||
|
$service_ensure = 'stopped'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
service {'neutron-dhcp-agent':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::neutron::params::ha_dhcp_agent,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => false,
|
||||||
|
provider => 'pacemaker',
|
||||||
|
tag => 'ha_agents',
|
||||||
|
}
|
||||||
|
|
||||||
|
service {'neutron-metadata-agent':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::neutron::params::ha_metadata_agent,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => false,
|
||||||
|
provider => 'pacemaker',
|
||||||
|
tag => 'ha_agents',
|
||||||
|
}
|
||||||
|
|
||||||
|
service {'neutron-plugin-openvswitch-agent':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::neutron::params::ha_ovs_agent,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => false,
|
||||||
|
provider => 'pacemaker',
|
||||||
|
tag => 'ha_agents',
|
||||||
|
}
|
||||||
|
|
||||||
|
service {'neutron-l3-agent':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::neutron::params::ha_l3_agent,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => false,
|
||||||
|
provider => 'pacemaker',
|
||||||
|
tag => 'ha_agents',
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Neutron_config<||> ~> Service<| tag == 'ha_agents' |>
|
||||||
|
Neutron_plugin_ml2<||> ~> Service<| tag == 'ha_agents' |>
|
||||||
|
Neutron_plugin_ml2_cisco<||> ~> Service<| tag == 'ha_agents' |>
|
||||||
|
File_line<||> ~> Service<| tag == 'ha_agents' |>
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
#Class neutron::services::ovs_agent
|
||||||
|
class neutron::services::ovs_agent (
|
||||||
|
$enabled = true,
|
||||||
|
$manage_service = true,
|
||||||
|
){
|
||||||
|
include neutron::params
|
||||||
|
|
||||||
|
if $manage_service {
|
||||||
|
if $enabled {
|
||||||
|
$service_ensure = 'running'
|
||||||
|
} else {
|
||||||
|
$service_ensure = 'stopped'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
service { 'neutron-ovs-agent':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::neutron::params::service_ovs_agent,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
}
|
||||||
|
|
||||||
|
Neutron_config<||> ~> Service['neutron-ovs-agent']
|
||||||
|
Neutron_plugin_ml2<||> ~> Service['neutron-ovs-agent']
|
||||||
|
Neutron_plugin_ml2_cisco<||> ~> Service['neutron-ovs-agent']
|
||||||
|
File_line<||> ~> Service['neutron-ovs-agent']
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
#Class neutron::services::server
|
||||||
|
class neutron::services::server (
|
||||||
|
$enabled = true,
|
||||||
|
$manage_service = true,
|
||||||
|
){
|
||||||
|
include neutron::params
|
||||||
|
|
||||||
|
if $manage_service {
|
||||||
|
if $enabled {
|
||||||
|
$service_ensure = 'running'
|
||||||
|
} else {
|
||||||
|
$service_ensure = 'stopped'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
File['rootwrap'] ~> Service['neutron-server']
|
||||||
|
Neutron_config<||> ~> Service['neutron-server']
|
||||||
|
Neutron_plugin_ml2<||> ~> Service['neutron-server']
|
||||||
|
Neutron_plugin_ml2_cisco<||> ~> Service['neutron-server']
|
||||||
|
File_line<||> ~> Service['neutron-server']
|
||||||
|
|
||||||
|
file {'rootwrap':
|
||||||
|
ensure => link,
|
||||||
|
path => '/usr/local/bin/neutron-rootwrap',
|
||||||
|
target => '/usr/bin/neutron-rootwrap',
|
||||||
|
}
|
||||||
|
|
||||||
|
service { 'neutron-server':
|
||||||
|
ensure => $service_ensure,
|
||||||
|
name => $::neutron::params::service_neutron_server,
|
||||||
|
enable => $enabled,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,71 @@
|
||||||
|
|
||||||
|
$role = hiera('role')
|
||||||
|
$deployment_mode = hiera('deployment_mode')
|
||||||
|
$cisco_aci_hash = hiera('cisco_aci',{})
|
||||||
|
$access_hash = hiera('access',{})
|
||||||
|
|
||||||
|
$ha_prefix = $deployment_mode ? {
|
||||||
|
'ha_compact' => 'ha_',
|
||||||
|
default => '',
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($cisco_aci_hash['use_gbp'] == false and $cisco_aci_hash['use_apic'] == false){
|
||||||
|
fail('Wrong configuration')
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($cisco_aci_hash['use_gbp'] == false and $cisco_aci_hash['use_apic'] == true){
|
||||||
|
if ($cisco_aci_hash['driver_type'] == 'ML2'){
|
||||||
|
$install_type = 'US1'
|
||||||
|
$class_name = 'generic_apic_ml2'
|
||||||
|
}else{
|
||||||
|
fail('Wrong configuration')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($cisco_aci_hash['use_gbp'] == true and $cisco_aci_hash['use_apic'] == false){
|
||||||
|
$install_type = 'US2a'
|
||||||
|
$class_name = 'gbp_and_mapping'
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($cisco_aci_hash['use_gbp'] == true and $cisco_aci_hash['use_apic'] == true){
|
||||||
|
if ($cisco_aci_hash['driver_type'] == 'ML2'){
|
||||||
|
$install_type = 'US2b'
|
||||||
|
$class_name = 'gbp_and_apic_ml2'
|
||||||
|
}elsif ($cisco_aci_hash['driver_type'] == 'GBP'){
|
||||||
|
$install_type = 'US3'
|
||||||
|
$class_name = 'gbp_and_apic_gbp'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
case $install_type {
|
||||||
|
'US1','US2b','US3': {
|
||||||
|
class {"cisco_aci::${class_name}":
|
||||||
|
ha_prefix => $ha_prefix,
|
||||||
|
role => $role,
|
||||||
|
admin_username => $access_hash['user'],
|
||||||
|
admin_password => $access_hash['password'],
|
||||||
|
admin_tenant => $access_hash['tenant'],
|
||||||
|
use_lldp => $cisco_aci_hash['use_lldp'],
|
||||||
|
apic_hosts => $cisco_aci_hash['apic_hosts'],
|
||||||
|
apic_username => $cisco_aci_hash['apic_username'],
|
||||||
|
apic_password => $cisco_aci_hash['apic_password'],
|
||||||
|
static_config => $cisco_aci_hash['static_config'],
|
||||||
|
additional_config => $cisco_aci_hash['additional_config'],
|
||||||
|
ext_net_enable => $cisco_aci_hash['ext_net_enable'],
|
||||||
|
ext_net_name => $cisco_aci_hash['ext_net_name'],
|
||||||
|
ext_net_switch => $cisco_aci_hash['ext_net_switch'],
|
||||||
|
ext_net_port => $cisco_aci_hash['ext_net_port'],
|
||||||
|
ext_net_subnet => $cisco_aci_hash['ext_net_subnet'],
|
||||||
|
ext_net_gateway => $cisco_aci_hash['ext_net_gateway'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'US2a': {
|
||||||
|
class {"cisco_aci::${class_name}":
|
||||||
|
ha_prefix => $ha_prefix,
|
||||||
|
role => $role,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
fail("Wrong module ${module_name}")
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,21 +1,35 @@
|
||||||
# Plugin name
|
# Plugin name
|
||||||
name: cisco_aci
|
name: cisco_aci
|
||||||
# Human-readable name for your plugin
|
# Human-readable name for your plugin
|
||||||
title: Cisco APIC Plugin support
|
title: Cisco APIC Plugin
|
||||||
# Plugin version
|
# Plugin version
|
||||||
version: 1.0.0
|
version: 1.0.1
|
||||||
# Description
|
# Description
|
||||||
description: Enable to use Cisco SDN solutions for Neutron
|
description: Enable to use Cisco SDN solutions for Neutron
|
||||||
# Required fuel version
|
# Required fuel version
|
||||||
fuel_version: ['6.0']
|
fuel_version: ['6.1']
|
||||||
|
# Specify license of your plugin
|
||||||
|
licenses: ['Apache License Version 2.0']
|
||||||
|
# Specify author or company name
|
||||||
|
authors: ['Mirantis']
|
||||||
|
# A link to the plugin's page
|
||||||
|
homepage: 'https://github.com/noironetworks/fuel-plugin-cisco-aci'
|
||||||
|
# Specify a group which your plugin implements, possible options:
|
||||||
|
# # network, storage, storage::cinder, storage::glance, hypervisor
|
||||||
|
groups: ['network']
|
||||||
|
|
||||||
# The plugin is compatible with releases in the list
|
# The plugin is compatible with releases in the list
|
||||||
releases:
|
releases:
|
||||||
|
- os: centos
|
||||||
|
version: 2014.2-6.1
|
||||||
|
mode: ['ha', 'multinode']
|
||||||
|
deployment_scripts_path: deployment_scripts/
|
||||||
|
repository_path: repositories/ubuntu
|
||||||
- os: ubuntu
|
- os: ubuntu
|
||||||
version: 2014.2-6.0
|
version: 2014.2-6.1
|
||||||
mode: ['ha', 'multinode']
|
mode: ['ha', 'multinode']
|
||||||
deployment_scripts_path: deployment_scripts/
|
deployment_scripts_path: deployment_scripts/
|
||||||
repository_path: repositories/ubuntu
|
repository_path: repositories/ubuntu
|
||||||
|
|
||||||
# Version of plugin package
|
# Version of plugin package
|
||||||
package_version: '1.0.0'
|
package_version: '2.0.0'
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -eux
|
||||||
|
ROOT="$(dirname `readlink -f $0`)"
|
||||||
|
MODULES="${ROOT}"/deployment_scripts/puppet/modules
|
||||||
|
mkdir -p "${MODULES}"
|
||||||
|
#REPO_PATH='https://github.com/stackforge/fuel-library/tarball/aded04f6b5d4dbc4b4e4cf904fc882879184d097'
|
||||||
|
REPO_PATH='https://api.github.com/repos/stackforge/fuel-library/tarball/a478b8c6180af33612b19d09785bd63f2b6673c6'
|
||||||
|
RPM_REPO="${ROOT}"/repositories/centos/
|
||||||
|
DEB_REPO="${ROOT}"/repositories/ubuntu/
|
||||||
|
|
||||||
|
wget -qO- "${REPO_PATH}" | \
|
||||||
|
tar -C "${MODULES}" --strip-components=3 -zxvf - \
|
||||||
|
stackforge-fuel-library-a478b8c/deployment/puppet/{inifile,stdlib,pacemaker}
|
|
@ -2,10 +2,10 @@
|
||||||
# here you can also specify several roles, for example
|
# here you can also specify several roles, for example
|
||||||
# ['cinder', 'compute'] will be applied only on
|
# ['cinder', 'compute'] will be applied only on
|
||||||
# cinder and compute nodes
|
# cinder and compute nodes
|
||||||
- role: ['controller','compute']
|
- role: ['primary-controller','controller','compute']
|
||||||
stage: post_deployment
|
stage: post_deployment
|
||||||
type: puppet
|
type: puppet
|
||||||
parameters:
|
parameters:
|
||||||
puppet_manifest: puppet/site.pp
|
puppet_manifest: puppet/site.pp
|
||||||
puppet_modules: puppet/modules/
|
puppet_modules: puppet/modules/
|
||||||
timeout: 42
|
timeout: 3600
|
||||||
|
|
Loading…
Reference in New Issue