Add 'compute-vmware' granular deployment task
'compute-vmware' deployment task deploys nova-compute (VCDriver) on node that got assigned 'compute-vmware' role: - it installs nova-compute package - prepares /etc/nova/nova-compute.conf file - launches nova-compute service It happens only if current node name (e.g. node-3) matches 'target_node' attribute, it means that particuliar vSphere cluster was mapped to current 'compute-vmware' node. Change the way how nova-compute gets deployed on controller nodes (vmware/manifests/compute/ha.pp): nova-compute deploys on controllers only if 'target_node' attribute in contains 'controllers' value. Diminish technical debt: - remove references to 'common.libvirt_type.value' - remove 'compute_driver' from manifests parameter list, it is inlined into configuration templates - Remove useless vmware_index() invocation Implements: blueprint compute-vmware-role DocImpact: document new role in User Guide (VMware integration notes), update screenshots with VMware tab Change-Id: I42ed40d86c5d43289fc210d426be523da545d268
This commit is contained in:
parent
0c29bbc15c
commit
0f6abf96c3
|
@ -70,6 +70,16 @@
|
|||
strategy:
|
||||
type: parallel
|
||||
|
||||
- id: compute-vmware
|
||||
type: group
|
||||
role: [compute-vmware]
|
||||
requires: [controller]
|
||||
required_for: [deploy_end]
|
||||
tasks: [globals, hiera, tools, logging, netconfig, connectivity_tests, hosts, firewall, zabbix, top-role-compute]
|
||||
parameters:
|
||||
strategy:
|
||||
type: parallel
|
||||
|
||||
- id: zabbix-server
|
||||
type: group
|
||||
role: [zabbix-server]
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
- id: vcenter_compute_zones_create
|
||||
type: shell
|
||||
role: [primary-controller]
|
||||
role: [primary-controller, compute-vmware]
|
||||
requires: [post_deployment_start]
|
||||
required_for: [post_deployment_end]
|
||||
condition: "settings:common.use_vcenter.value == true"
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
notice('MODULAR: vmware/compute-vmware.pp')
|
||||
|
||||
$role = hiera('role')
|
||||
|
||||
$debug = hiera('debug', true)
|
||||
$ceilometer_hash = hiera('ceilometer',{})
|
||||
|
||||
$vcenter_hash = hiera('vcenter', {})
|
||||
$computes_hash = parse_vcenter_settings($vcenter_hash['computes'])
|
||||
|
||||
$uid = hiera('uid')
|
||||
$node_name = "node-$uid"
|
||||
$defaults = { current_node => $node_name }
|
||||
|
||||
create_resources(vmware::compute_vmware, $computes_hash, $defaults)
|
|
@ -3,7 +3,7 @@
|
|||
groups: [primary-controller, controller]
|
||||
required_for: [deploy_end]
|
||||
requires: [controller_remaining_tasks]
|
||||
condition: "settings:common.libvirt_type.value == 'vcenter' or settings:common.use_vcenter.value == true"
|
||||
condition: "settings:common.use_vcenter.value == true"
|
||||
parameters:
|
||||
puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/vmware/vcenter.pp
|
||||
puppet_modules: /etc/puppet/modules
|
||||
|
@ -14,7 +14,7 @@
|
|||
groups: [cinder-vmware]
|
||||
required_for: [deploy_end]
|
||||
requires: [openstack-cinder]
|
||||
condition: "settings:common.libvirt_type.value == 'vcenter' or settings:common.use_vcenter.value == true"
|
||||
condition: "settings:common.use_vcenter.value == true"
|
||||
parameters:
|
||||
puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/vmware/cinder-vmware.pp
|
||||
puppet_modules: /etc/puppet/modules
|
||||
|
@ -23,3 +23,14 @@
|
|||
cmd: ruby /etc/puppet/modules/osnailyfacter/modular/vmware/cinder-vmware_pre.rb
|
||||
test_post:
|
||||
cmd: ruby /etc/puppet/modules/osnailyfacter/modular/vmware/cinder-vmware_post.rb
|
||||
|
||||
- id: top-role-compute-vmware
|
||||
type: puppet
|
||||
groups: [compute-vmware]
|
||||
required_for: [deploy_end]
|
||||
requires: [top-role-compute]
|
||||
condition: "settings:common.use_vcenter.value == true"
|
||||
parameters:
|
||||
puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/vmware/compute-vmware.pp
|
||||
puppet_modules: /etc/puppet/modules
|
||||
timeout: 180
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
notice('MODULAR: vmware/vcenter.pp')
|
||||
|
||||
$libvirt_type = hiera('libvirt_type')
|
||||
$use_vcenter = hiera('use_vcenter', false)
|
||||
$vcenter_hash = hiera('vcenter_hash')
|
||||
$controller_node_public = hiera('controller_node_public')
|
||||
|
@ -8,33 +7,13 @@ $use_neutron = hiera('use_neutron', false)
|
|||
$ceilometer_hash = hiera('ceilometer',{})
|
||||
$debug = hiera('debug', false)
|
||||
|
||||
echo($vcenter_hash)
|
||||
|
||||
# vCenter integration
|
||||
if hiera('libvirt_type') == 'vcenter' {
|
||||
class { 'vmware' :
|
||||
vcenter_user => $vcenter_hash['vc_user'],
|
||||
vcenter_password => $vcenter_hash['vc_password'],
|
||||
vcenter_host_ip => $vcenter_hash['host_ip'],
|
||||
vcenter_cluster => $vcenter_hash['cluster'],
|
||||
vcenter_datastore_regex => $vcenter_hash['datastore_regex'],
|
||||
vlan_interface => $vcenter_hash['vlan_interface'],
|
||||
use_quantum => $use_neutron,
|
||||
vnc_address => $controller_node_public,
|
||||
ceilometer => $ceilometer_hash['enabled'],
|
||||
debug => $debug,
|
||||
}
|
||||
}
|
||||
# Fixme! This a temporary workaround to keep existing functioanality.
|
||||
# After fully implementation of the multi HV support it is need to delete
|
||||
# previos if statement
|
||||
if $use_vcenter {
|
||||
class { 'vmware' :
|
||||
vcenter_settings => $vcenter_hash['computes'],
|
||||
vlan_interface => $vcenter_hash['vlan_interface'],
|
||||
use_quantum => $use_neutron,
|
||||
vnc_address => $controller_node_public,
|
||||
ceilometer => $ceilometer_hash['enabled'],
|
||||
debug => $debug,
|
||||
class { 'vmware':
|
||||
vcenter_settings => $vcenter_hash['computes'],
|
||||
vlan_interface => $vcenter_hash['vlan_interface'],
|
||||
use_quantum => $use_neutron,
|
||||
vnc_address => $controller_node_public,
|
||||
ceilometer => $ceilometer_hash['enabled'],
|
||||
debug => $debug,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,10 +23,10 @@ define vmware::compute::ha(
|
|||
$vc_user,
|
||||
$vc_password,
|
||||
$service_name,
|
||||
$target_node,
|
||||
$datastore_regex = undef,
|
||||
$amqp_port = '5673',
|
||||
$api_retry_count = 5,
|
||||
$compute_driver = 'vmwareapi.VMwareVCDriver',
|
||||
$maximum_objects = 100,
|
||||
$nova_conf = '/etc/nova/nova.conf',
|
||||
$nova_conf_dir = '/etc/nova/nova-compute.d',
|
||||
|
@ -35,59 +35,64 @@ define vmware::compute::ha(
|
|||
$wsdl_location = undef
|
||||
)
|
||||
{
|
||||
$nova_compute_conf = "${nova_conf_dir}/vmware-${availability_zone_name}_${service_name}.conf"
|
||||
# We deploy nova-compute on controller node only if
|
||||
# $target_node contains 'controllers' otherwise
|
||||
# service will be deployed on separate node
|
||||
if ($target_node == 'controllers') {
|
||||
$nova_compute_conf = "${nova_conf_dir}/vmware-${availability_zone_name}_${service_name}.conf"
|
||||
|
||||
if ! defined(File[$nova_conf_dir]) {
|
||||
file { $nova_conf_dir:
|
||||
ensure => directory,
|
||||
owner => nova,
|
||||
group => nova,
|
||||
mode => '0750'
|
||||
if ! defined(File[$nova_conf_dir]) {
|
||||
file { $nova_conf_dir:
|
||||
ensure => directory,
|
||||
owner => nova,
|
||||
group => nova,
|
||||
mode => '0750'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ! defined(File[$nova_compute_conf]) {
|
||||
# $cluster is used inside template
|
||||
$cluster = $name
|
||||
file { $nova_compute_conf:
|
||||
ensure => present,
|
||||
content => template('vmware/nova-compute.conf.erb'),
|
||||
mode => '0600',
|
||||
owner => nova,
|
||||
group => nova,
|
||||
if ! defined(File[$nova_compute_conf]) {
|
||||
# $cluster is used inside template
|
||||
$cluster = $name
|
||||
file { $nova_compute_conf:
|
||||
ensure => present,
|
||||
content => template('vmware/nova-compute.conf.erb'),
|
||||
mode => '0600',
|
||||
owner => nova,
|
||||
group => nova,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cs_resource { "p_nova_compute_vmware_${availability_zone_name}-${service_name}":
|
||||
ensure => present,
|
||||
primitive_class => 'ocf',
|
||||
provided_by => 'fuel',
|
||||
primitive_type => 'nova-compute',
|
||||
metadata => {
|
||||
resource-stickiness => '1'
|
||||
},
|
||||
parameters => {
|
||||
amqp_server_port => $amqp_port,
|
||||
config => $nova_conf,
|
||||
pid => "/var/run/nova/nova-compute-${availability_zone_name}-${service_name}.pid",
|
||||
additional_parameters => "--config-file=${nova_compute_conf}",
|
||||
},
|
||||
operations => {
|
||||
monitor => { timeout => '10', interval => '20' },
|
||||
start => { timeout => '30' },
|
||||
stop => { timeout => '30' }
|
||||
cs_resource { "p_nova_compute_vmware_${availability_zone_name}-${service_name}":
|
||||
ensure => present,
|
||||
primitive_class => 'ocf',
|
||||
provided_by => 'fuel',
|
||||
primitive_type => 'nova-compute',
|
||||
metadata => {
|
||||
resource-stickiness => '1'
|
||||
},
|
||||
parameters => {
|
||||
amqp_server_port => $amqp_port,
|
||||
config => $nova_conf,
|
||||
pid => "/var/run/nova/nova-compute-${availability_zone_name}-${service_name}.pid",
|
||||
additional_parameters => "--config-file=${nova_compute_conf}",
|
||||
},
|
||||
operations => {
|
||||
monitor => { timeout => '10', interval => '20' },
|
||||
start => { timeout => '30' },
|
||||
stop => { timeout => '30' }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
service { "p_nova_compute_vmware_${availability_zone_name}-${service_name}":
|
||||
ensure => running,
|
||||
enable => true,
|
||||
provider => 'pacemaker',
|
||||
}
|
||||
service { "p_nova_compute_vmware_${availability_zone_name}-${service_name}":
|
||||
ensure => running,
|
||||
enable => true,
|
||||
provider => 'pacemaker',
|
||||
}
|
||||
|
||||
File["${nova_conf_dir}"]->
|
||||
File["${nova_compute_conf}"]->
|
||||
Cs_resource["p_nova_compute_vmware_${availability_zone_name}-${service_name}"]->
|
||||
Service["p_nova_compute_vmware_${availability_zone_name}-${service_name}"]
|
||||
File["${nova_conf_dir}"]->
|
||||
File["${nova_compute_conf}"]->
|
||||
Cs_resource["p_nova_compute_vmware_${availability_zone_name}-${service_name}"]->
|
||||
Service["p_nova_compute_vmware_${availability_zone_name}-${service_name}"]
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,73 @@
|
|||
# Copyright 2015 Mirantis, Inc.
|
||||
|
||||
# vmware::compute_vmware resource deploys nova-compute service and configures it for use
|
||||
# with vmwareapi.VCDriver (vCenter server as hypervisor). Depends on nova::params class.
|
||||
|
||||
# Variables:
|
||||
# availability_zone_name - availability zone which nova-compute will be assigned
|
||||
# vc_cluster - name of vSphere cluster
|
||||
# vc_host - IP address or hostname of the vCenter server
|
||||
# vc_user - username for vCenter server
|
||||
# vc_password - password for vCenter server
|
||||
# service_name - name that will form hypervisor name together with
|
||||
# 'availability_zone_name' in nova-compute.conf
|
||||
# current_node - name of node that we are executing manifets (e.g. 'node-4')
|
||||
# target_node - name of node where nova-compute must be deployed
|
||||
# if it matches current_node we are deploying nova-compute service
|
||||
# datastore_regex - regex that specifies vCenter datastores to use
|
||||
# api_retry_count - number of tries on failures
|
||||
# use_quantum - shows if neutron is enabled
|
||||
|
||||
define vmware::compute_vmware(
|
||||
$availability_zone_name,
|
||||
$vc_cluster,
|
||||
$vc_host,
|
||||
$vc_user,
|
||||
$vc_password,
|
||||
$service_name,
|
||||
$current_node,
|
||||
$target_node,
|
||||
$datastore_regex = undef,
|
||||
$api_retry_count = 5,
|
||||
$maximum_objects = 100,
|
||||
$nova_compute_conf = '/etc/nova/nova-compute.conf',
|
||||
$task_poll_interval = 5.0,
|
||||
$use_linked_clone = true,
|
||||
$wsdl_location = undef
|
||||
)
|
||||
{
|
||||
include nova::params
|
||||
|
||||
# We skip deployment if current node name is not same as target_node
|
||||
if ($target_node == $current_node) {
|
||||
# $cluster is used inside template
|
||||
$cluster = $name
|
||||
file { $nova_compute_conf:
|
||||
ensure => present,
|
||||
content => template('vmware/nova-compute.conf.erb'),
|
||||
mode => '0600',
|
||||
owner => 'nova',
|
||||
group => 'nova',
|
||||
}
|
||||
|
||||
package { 'nova-compute':
|
||||
ensure => installed,
|
||||
name => $::nova::params::compute_package_name,
|
||||
}
|
||||
|
||||
package { 'python-oslo.vmware':
|
||||
ensure => installed,
|
||||
}
|
||||
|
||||
service { 'nova-compute':
|
||||
ensure => running,
|
||||
name => $::nova::params::compute_service_name,
|
||||
enable => true,
|
||||
}
|
||||
|
||||
Package['python-oslo.vmware']->
|
||||
Package['nova-compute']->
|
||||
File[$nova_compute_conf]->
|
||||
Service['nova-compute']
|
||||
}
|
||||
}
|
|
@ -12,29 +12,31 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
# vmware::controller deploys nova-compute service and configures it for use
|
||||
# with vmwareapi.VCDriver (vCenter server as hypervisor) on OpenStack controller
|
||||
# nodes. Nova-compute is configured to work under Pacemaker supervision.
|
||||
#
|
||||
# Variables:
|
||||
# vcenter_settings -
|
||||
# vcenter_host_ip - vCenter server hostname or IP address
|
||||
# vcenter_user - username for vCenter server
|
||||
# vcenter_password - password for $vcenter_user
|
||||
# vlan_interface - VLAN interface on which networks will be provisioned
|
||||
# if VLANManager is used for nova-network
|
||||
# vnc_address - IP address on which VNC server will be listening on
|
||||
# use_quantum - shows if neutron is enabled
|
||||
|
||||
# modules needed: nova
|
||||
# limitations:
|
||||
# - only one vcenter supported
|
||||
|
||||
class vmware::controller (
|
||||
$vcenter_settings = undef,
|
||||
$api_retry_count = 5,
|
||||
$datastore_regex = undef,
|
||||
$amqp_port = '5673',
|
||||
$compute_driver = 'vmwareapi.VMwareVCDriver',
|
||||
$ensure_package = 'present',
|
||||
$maximum_objects = 100,
|
||||
$nova_conf = '/etc/nova/nova.conf',
|
||||
$task_poll_interval = 5.0,
|
||||
$vcenter_cluster = 'cluster',
|
||||
$vcenter_host_ip = '10.10.10.10',
|
||||
$vcenter_user = 'user',
|
||||
$vcenter_host_ip = '10.10.10.10',
|
||||
$vcenter_user = 'user',
|
||||
$vcenter_password = 'password',
|
||||
$vlan_interface = undef,
|
||||
$vnc_address = '0.0.0.0',
|
||||
$use_linked_clone = true,
|
||||
$use_quantum = false,
|
||||
$wsdl_location = undef
|
||||
$vlan_interface = undef,
|
||||
$vnc_address = '0.0.0.0',
|
||||
$use_quantum = false,
|
||||
)
|
||||
{
|
||||
include nova::params
|
||||
|
@ -55,11 +57,6 @@ class vmware::controller (
|
|||
}
|
||||
}
|
||||
|
||||
# Split provided string with cluster names and enumerate items.
|
||||
# Index is used to form file names on host system, e.g.
|
||||
# /etc/sysconfig/nova-compute-vmware-0
|
||||
$vsphere_clusters = vmware_index($vcenter_cluster)
|
||||
|
||||
if ($::operaringsystem == 'Ubuntu') {
|
||||
$libvirt_type = hiera('libvirt_type')
|
||||
$compute_package_name = "nova-compute-${libvirt_type}"
|
||||
|
@ -68,8 +65,8 @@ class vmware::controller (
|
|||
}
|
||||
|
||||
package { 'nova-compute':
|
||||
name => $compute_package_name,
|
||||
ensure => 'present',
|
||||
name => $compute_package_name,
|
||||
}
|
||||
|
||||
service { 'nova-compute':
|
||||
|
@ -94,7 +91,6 @@ class vmware::controller (
|
|||
File['vcenter-nova-compute-ocf']->
|
||||
Vmware::Compute::Ha<||>->
|
||||
|
||||
# network configuration
|
||||
class { 'vmware::network':
|
||||
use_quantum => $use_quantum,
|
||||
}
|
||||
|
@ -102,7 +98,7 @@ class vmware::controller (
|
|||
# Enable metadata service on Controller node
|
||||
# Set correct parameter for vnc access
|
||||
nova_config {
|
||||
'DEFAULT/enabled_apis': value => 'ec2,osapi_compute,metadata';
|
||||
'DEFAULT/enabled_apis': value => 'ec2,osapi_compute,metadata';
|
||||
'DEFAULT/novncproxy_base_url': value => "http://${vnc_address}:6080/vnc_auto.html";
|
||||
} -> Service['nova-compute']
|
||||
|
||||
|
@ -114,4 +110,3 @@ class vmware::controller (
|
|||
ensure => present
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -28,25 +28,22 @@
|
|||
|
||||
class vmware (
|
||||
$vcenter_settings = undef,
|
||||
$vcenter_user = 'user',
|
||||
$vcenter_user = 'user',
|
||||
$vcenter_password = 'password',
|
||||
$vcenter_host_ip = '10.10.10.10',
|
||||
$vcenter_cluster = 'cluster',
|
||||
$vcenter_datastore_regex = undef,
|
||||
$vlan_interface = undef,
|
||||
$use_quantum = false,
|
||||
$vnc_address = '0.0.0.0',
|
||||
$ceilometer = false,
|
||||
$debug = false,
|
||||
$vcenter_host_ip = '10.10.10.10',
|
||||
$vcenter_cluster = 'cluster',
|
||||
$vlan_interface = undef,
|
||||
$use_quantum = false,
|
||||
$vnc_address = '0.0.0.0',
|
||||
$ceilometer = false,
|
||||
$debug = false,
|
||||
)
|
||||
{
|
||||
class { 'vmware::controller':
|
||||
vcenter_settings => $vcenter_settings,
|
||||
datastore_regex => $vcenter_datastore_regex,
|
||||
vcenter_user => $vcenter_user,
|
||||
vcenter_password => $vcenter_password,
|
||||
vcenter_host_ip => $vcenter_host_ip,
|
||||
vcenter_cluster => $vcenter_cluster,
|
||||
vlan_interface => $vlan_interface,
|
||||
use_quantum => $use_quantum,
|
||||
vnc_address => $vnc_address,
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"name": "fuel-vmware",
|
||||
"version": "1.0.0",
|
||||
"author": "Mirantis",
|
||||
"summary": "Puppet module for nova-compute (VCDriver) support for Fuel",
|
||||
"license": "Apache License, Version 2.0",
|
||||
"source": "https://github.com/stackforge/fuel-library/",
|
||||
"issues_url": null,
|
||||
"project_page": null,
|
||||
"operatingsystem_support": [
|
||||
{
|
||||
"operatingsystem": "Ubuntu",
|
||||
"operatingsystemrelease": [
|
||||
"14.04"
|
||||
]
|
||||
}
|
||||
],
|
||||
"dependencies": [
|
||||
{ "name": "puppetlabs-stdlib", "version_requirement": ">= 1.0.0" },
|
||||
{ "name": "nova", "version_requirement": ">= 5.0.0" }
|
||||
]
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
[DEFAULT]
|
||||
compute_driver=<%= @compute_driver %>
|
||||
compute_driver=vmwareapi.VMwareVCDriver
|
||||
log_file=nova-compute-vmware-<%= @availability_zone_name %>-<%= @service_name %>.log
|
||||
host=<%= @availability_zone_name %>-<%= @service_name %>
|
||||
|
||||
|
|
|
@ -0,0 +1,633 @@
|
|||
---
|
||||
tasks:
|
||||
- priority: 100
|
||||
type: puppet
|
||||
uids:
|
||||
- '2'
|
||||
parameters:
|
||||
puppet_modules: "/etc/puppet/modules"
|
||||
puppet_manifest: "/etc/puppet/modules/osnailyfacter/modular/hiera/hiera.pp"
|
||||
timeout: 3600
|
||||
cwd: "/"
|
||||
- priority: 200
|
||||
type: puppet
|
||||
uids:
|
||||
- '2'
|
||||
parameters:
|
||||
puppet_modules: "/etc/puppet/modules"
|
||||
puppet_manifest: "/etc/puppet/modules/osnailyfacter/modular/globals/globals.pp"
|
||||
timeout: 3600
|
||||
cwd: "/"
|
||||
- priority: 300
|
||||
type: puppet
|
||||
uids:
|
||||
- '2'
|
||||
parameters:
|
||||
puppet_modules: "/etc/puppet/modules"
|
||||
puppet_manifest: "/etc/puppet/modules/osnailyfacter/modular/logging/logging.pp"
|
||||
timeout: 3600
|
||||
cwd: "/"
|
||||
- priority: 400
|
||||
type: puppet
|
||||
uids:
|
||||
- '2'
|
||||
parameters:
|
||||
puppet_modules: "/etc/puppet/modules"
|
||||
puppet_manifest: "/etc/puppet/modules/osnailyfacter/modular/tools/tools.pp"
|
||||
timeout: 3600
|
||||
cwd: "/"
|
||||
- priority: 500
|
||||
type: puppet
|
||||
uids:
|
||||
- '2'
|
||||
parameters:
|
||||
puppet_modules: "/etc/puppet/modules"
|
||||
puppet_manifest: "/etc/puppet/modules/osnailyfacter/modular/netconfig/netconfig.pp"
|
||||
timeout: 3600
|
||||
cwd: "/"
|
||||
- priority: 600
|
||||
type: puppet
|
||||
uids:
|
||||
- '2'
|
||||
parameters:
|
||||
puppet_modules: "/etc/puppet/modules"
|
||||
puppet_manifest: "/etc/puppet/modules/osnailyfacter/modular/netconfig/connectivity_tests.pp"
|
||||
timeout: 3600
|
||||
cwd: "/"
|
||||
- priority: 700
|
||||
type: puppet
|
||||
uids:
|
||||
- '2'
|
||||
parameters:
|
||||
puppet_modules: "/etc/puppet/modules"
|
||||
puppet_manifest: "/etc/puppet/modules/osnailyfacter/modular/firewall/firewall.pp"
|
||||
timeout: 3600
|
||||
cwd: "/"
|
||||
- priority: 800
|
||||
type: puppet
|
||||
uids:
|
||||
- '2'
|
||||
parameters:
|
||||
puppet_modules: "/etc/puppet/modules"
|
||||
puppet_manifest: "/etc/puppet/modules/osnailyfacter/modular/hosts/hosts.pp"
|
||||
timeout: 3600
|
||||
cwd: "/"
|
||||
- priority: 900
|
||||
type: puppet
|
||||
uids:
|
||||
- '2'
|
||||
parameters:
|
||||
puppet_modules: "/etc/puppet/modules"
|
||||
puppet_manifest: "/etc/puppet/modules/osnailyfacter/modular/roles/compute.pp"
|
||||
timeout: 3600
|
||||
cwd: "/"
|
||||
- priority: 1000
|
||||
type: puppet
|
||||
uids:
|
||||
- '2'
|
||||
parameters:
|
||||
puppet_modules: "/etc/puppet/modules"
|
||||
puppet_manifest: "/etc/puppet/modules/osnailyfacter/modular/vmware/compute-vmware.pp"
|
||||
timeout: 180
|
||||
cwd: "/"
|
||||
user_node_name: slave-02_compute-vmware
|
||||
uid: '2'
|
||||
storage:
|
||||
iser: false
|
||||
volumes_ceph: false
|
||||
objects_ceph: false
|
||||
ephemeral_ceph: false
|
||||
volumes_lvm: true
|
||||
images_vcenter: false
|
||||
osd_pool_size: '2'
|
||||
pg_num: 128
|
||||
images_ceph: false
|
||||
metadata:
|
||||
weight: 60
|
||||
label: Storage
|
||||
management_vip: 10.109.7.2
|
||||
public_vip: 10.109.6.2
|
||||
syslog:
|
||||
syslog_port: '514'
|
||||
syslog_transport: tcp
|
||||
syslog_server: ''
|
||||
metadata:
|
||||
weight: 50
|
||||
label: Syslog
|
||||
libvirt_type: qemu
|
||||
puppet:
|
||||
modules: rsync://10.109.5.2:/puppet/2014.2.2-7.0/modules/
|
||||
manifests: rsync://10.109.5.2:/puppet/2014.2.2-7.0/manifests/
|
||||
mysql:
|
||||
root_password: 9aXGuMEH
|
||||
wsrep_password: O9DMNRw7
|
||||
fail_if_error: false
|
||||
use_cow_images: true
|
||||
glance:
|
||||
db_password: vL47lJtH
|
||||
vc_user: ''
|
||||
vc_datastore: ''
|
||||
vc_host: ''
|
||||
vc_datacenter: ''
|
||||
vc_password: ''
|
||||
user_password: RvwsPx7o
|
||||
cobbler:
|
||||
profile: ubuntu_1404_x86_64
|
||||
mongo:
|
||||
enabled: false
|
||||
quantum_settings:
|
||||
metadata:
|
||||
metadata_proxy_shared_secret: BFs79fQV
|
||||
keystone:
|
||||
admin_password: XjVAS5sx
|
||||
database:
|
||||
passwd: iDnWx9Je
|
||||
network_metadata:
|
||||
nodes:
|
||||
node-1:
|
||||
user_node_name: slave-01_controller
|
||||
uid: '1'
|
||||
fqdn: node-1.test.domain.local
|
||||
network_roles:
|
||||
murano/api: 10.109.7.4
|
||||
keystone/api: 10.109.7.4
|
||||
mgmt/database: 10.109.7.4
|
||||
sahara/api: 10.109.7.4
|
||||
ceilometer/api: 10.109.7.4
|
||||
ex: 10.109.6.4
|
||||
ceph/public: 10.109.7.4
|
||||
mgmt/messaging: 10.109.7.4
|
||||
management: 10.109.7.4
|
||||
swift/api: 10.109.7.4
|
||||
mgmt/api: 10.109.7.4
|
||||
storage: 10.109.9.2
|
||||
mgmt/corosync: 10.109.7.4
|
||||
cinder/api: 10.109.7.4
|
||||
public/vip: 10.109.6.4
|
||||
swift/replication: 10.109.9.2
|
||||
ceph/radosgw: 10.109.6.4
|
||||
admin/pxe: 10.109.5.3
|
||||
mongo/db: 10.109.7.4
|
||||
fw-admin: 10.109.5.3
|
||||
glance/api: 10.109.7.4
|
||||
mgmt/vip: 10.109.7.4
|
||||
heat/api: 10.109.7.4
|
||||
nova/api: 10.109.7.4
|
||||
horizon: 10.109.7.4
|
||||
mgmt/memcache: 10.109.7.4
|
||||
cinder/iscsi: 10.109.9.2
|
||||
ceph/replication: 10.109.9.2
|
||||
swift_zone: '1'
|
||||
node_roles:
|
||||
- primary-controller
|
||||
name: node-1
|
||||
node-2:
|
||||
user_node_name: slave-02_compute-vmware
|
||||
uid: '2'
|
||||
fqdn: node-2.test.domain.local
|
||||
network_roles:
|
||||
murano/api: 10.109.7.5
|
||||
keystone/api: 10.109.7.5
|
||||
mgmt/database: 10.109.7.5
|
||||
sahara/api: 10.109.7.5
|
||||
ceilometer/api: 10.109.7.5
|
||||
ex: 10.109.6.5
|
||||
ceph/public: 10.109.7.5
|
||||
mgmt/messaging: 10.109.7.5
|
||||
management: 10.109.7.5
|
||||
swift/api: 10.109.7.5
|
||||
mgmt/api: 10.109.7.5
|
||||
storage: 10.109.9.3
|
||||
mgmt/corosync: 10.109.7.5
|
||||
cinder/api: 10.109.7.5
|
||||
public/vip: 10.109.6.5
|
||||
swift/replication: 10.109.9.3
|
||||
ceph/radosgw: 10.109.6.5
|
||||
admin/pxe: 10.109.5.4
|
||||
mongo/db: 10.109.7.5
|
||||
fw-admin: 10.109.5.4
|
||||
glance/api: 10.109.7.5
|
||||
mgmt/vip: 10.109.7.5
|
||||
heat/api: 10.109.7.5
|
||||
nova/api: 10.109.7.5
|
||||
horizon: 10.109.7.5
|
||||
mgmt/memcache: 10.109.7.5
|
||||
cinder/iscsi: 10.109.9.3
|
||||
ceph/replication: 10.109.9.3
|
||||
swift_zone: '2'
|
||||
node_roles:
|
||||
- compute-vmware
|
||||
name: node-2
|
||||
vips:
|
||||
public_vrouter_vip: 10.109.6.3
|
||||
management_vip: 10.109.7.2
|
||||
public_vip: 10.109.6.2
|
||||
management_vrouter_vip: 10.109.7.3
|
||||
openstack_version: 2014.2.2-7.0
|
||||
public_vrouter_vip: 10.109.6.3
|
||||
kernel_params:
|
||||
kernel: console=ttyS0,9600 console=tty0 net.ifnames=0 biosdevname=0 rootdelay=90
|
||||
nomodeset
|
||||
metadata:
|
||||
weight: 40
|
||||
label: Kernel parameters
|
||||
provision:
|
||||
image_data:
|
||||
"/boot":
|
||||
container: gzip
|
||||
uri: http://10.109.5.2:8080/targetimages/env_1_ubuntu_1404_amd64-boot.img.gz
|
||||
format: ext2
|
||||
"/":
|
||||
container: gzip
|
||||
uri: http://10.109.5.2:8080/targetimages/env_1_ubuntu_1404_amd64.img.gz
|
||||
format: ext4
|
||||
codename: trusty
|
||||
method: image
|
||||
metadata:
|
||||
restrictions:
|
||||
- action: hide
|
||||
condition: 'true'
|
||||
weight: 80
|
||||
label: Provision
|
||||
resume_guests_state_on_host_boot: true
|
||||
fixed_network_range: 10.0.0.0/16
|
||||
nova:
|
||||
db_password: vrjHFPzC
|
||||
user_password: Ekj3FTCt
|
||||
state_path: "/var/lib/nova"
|
||||
master_ip: 10.109.5.2
|
||||
priority: 200
|
||||
external_dns:
|
||||
dns_list: 10.109.6.1
|
||||
metadata:
|
||||
weight: 90
|
||||
label: Host OS DNS Servers
|
||||
murano:
|
||||
db_password: CbdC9feG
|
||||
user_password: 9I0XArIz
|
||||
enabled: false
|
||||
rabbit_password: mDQF7QGo
|
||||
murano_settings:
|
||||
murano_repo_url: http://storage.apps.openstack.org/
|
||||
metadata:
|
||||
restrictions:
|
||||
- action: hide
|
||||
condition: settings:additional_components.murano.value == false
|
||||
weight: 20
|
||||
label: Murano Settings
|
||||
role: compute-vmware
|
||||
external_mongo:
|
||||
mongo_db_name: ceilometer
|
||||
mongo_replset: ''
|
||||
mongo_user: ceilometer
|
||||
hosts_ip: ''
|
||||
mongo_password: ceilometer
|
||||
metadata:
|
||||
restrictions:
|
||||
- action: hide
|
||||
condition: settings:additional_components.mongo.value == false
|
||||
weight: 20
|
||||
label: External MongoDB
|
||||
online: true
|
||||
keystone:
|
||||
db_password: A24czLwN
|
||||
admin_token: k3NqmiHs
|
||||
vcenter:
|
||||
computes:
|
||||
- datastore_regex: ".*"
|
||||
target_node: controllers
|
||||
service_name: cluster1
|
||||
availability_zone_name: vcenter
|
||||
vc_cluster: Cluster1
|
||||
vc_host: 172.16.0.254
|
||||
vc_password: Qwer!1234
|
||||
vc_user: administrator@vsphere.local
|
||||
- datastore_regex: ".*"
|
||||
target_node: node-2
|
||||
service_name: cluster2
|
||||
availability_zone_name: vcenter
|
||||
vc_cluster: Cluster2
|
||||
vc_host: 172.16.0.254
|
||||
vc_password: Qwer!1234
|
||||
vc_user: administrator@vsphere.local
|
||||
esxi_vlan_interface: vmnic0
|
||||
nova_quota: false
|
||||
ceilometer:
|
||||
db_password: 4oysm2Z5
|
||||
user_password: DrW1MnLq
|
||||
metering_secret: IZ71eSWq
|
||||
enabled: false
|
||||
corosync:
|
||||
group: 226.94.1.1
|
||||
verified: false
|
||||
port: '12000'
|
||||
metadata:
|
||||
restrictions:
|
||||
- action: hide
|
||||
condition: 'true'
|
||||
weight: 50
|
||||
label: Corosync
|
||||
metadata:
|
||||
weight: 30
|
||||
label: Common
|
||||
status: discover
|
||||
swift:
|
||||
user_password: hLFhh6RX
|
||||
repo_setup:
|
||||
installer_kernel:
|
||||
local: "/var/www/nailgun/ubuntu/x86_64/images/linux"
|
||||
remote_relative: dists/trusty/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux
|
||||
repos:
|
||||
- name: ubuntu
|
||||
section: main universe multiverse
|
||||
uri: http://archive.ubuntu.com/ubuntu/
|
||||
priority:
|
||||
suite: trusty
|
||||
type: deb
|
||||
- name: ubuntu-updates
|
||||
section: main universe multiverse
|
||||
uri: http://archive.ubuntu.com/ubuntu/
|
||||
priority:
|
||||
suite: trusty-updates
|
||||
type: deb
|
||||
- name: ubuntu-security
|
||||
section: main universe multiverse
|
||||
uri: http://archive.ubuntu.com/ubuntu/
|
||||
priority:
|
||||
suite: trusty-security
|
||||
type: deb
|
||||
- name: mos
|
||||
section: main restricted
|
||||
uri: http://10.109.5.2:8080/2014.2.2-7.0/ubuntu/x86_64
|
||||
priority: 1050
|
||||
suite: mos7.0
|
||||
type: deb
|
||||
- name: mos-updates
|
||||
section: main restricted
|
||||
uri: http://mirror.fuel-infra.org/mos/ubuntu/
|
||||
priority: 1050
|
||||
suite: mos7.0-updates
|
||||
type: deb
|
||||
- name: mos-security
|
||||
section: main restricted
|
||||
uri: http://mirror.fuel-infra.org/mos/ubuntu/
|
||||
priority: 1050
|
||||
suite: mos7.0-security
|
||||
type: deb
|
||||
- name: mos-holdback
|
||||
section: main restricted
|
||||
uri: http://mirror.fuel-infra.org/mos/ubuntu/
|
||||
priority: 1100
|
||||
suite: mos7.0-holdback
|
||||
type: deb
|
||||
- name: Auxiliary
|
||||
section: main restricted
|
||||
uri: http://10.109.5.2:8080/2014.2.2-7.0/ubuntu/auxiliary
|
||||
priority: 1150
|
||||
suite: auxiliary
|
||||
type: deb
|
||||
metadata:
|
||||
always_editable: true
|
||||
weight: 50
|
||||
label: Repositories
|
||||
installer_initrd:
|
||||
local: "/var/www/nailgun/ubuntu/x86_64/images/initrd.gz"
|
||||
remote_relative: dists/trusty/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz
|
||||
deployment_mode: ha_compact
|
||||
management_vrouter_vip: 10.109.7.3
|
||||
novanetwork_parameters:
|
||||
network_manager: FlatDHCPManager
|
||||
network_size: 65536
|
||||
num_networks: 1
|
||||
sahara:
|
||||
db_password: l4FVpcAq
|
||||
user_password: 7kDIRxHM
|
||||
enabled: false
|
||||
use_vcenter: true
|
||||
network_scheme:
|
||||
transformations:
|
||||
- action: add-br
|
||||
name: br-fw-admin
|
||||
- action: add-br
|
||||
name: br-storage
|
||||
- action: add-br
|
||||
name: br-mgmt
|
||||
- action: add-br
|
||||
name: br-ex
|
||||
- action: add-port
|
||||
bridge: br-fw-admin
|
||||
name: eth0
|
||||
- action: add-port
|
||||
bridge: br-ex
|
||||
name: eth1
|
||||
- action: add-port
|
||||
bridge: br-mgmt
|
||||
name: eth2
|
||||
- action: add-port
|
||||
bridge: br-storage
|
||||
name: eth4
|
||||
- action: add-port
|
||||
name: eth3.103
|
||||
roles:
|
||||
murano/api: br-mgmt
|
||||
keystone/api: br-mgmt
|
||||
mgmt/database: br-mgmt
|
||||
sahara/api: br-mgmt
|
||||
novanetwork/fixed: eth3.103
|
||||
ceilometer/api: br-mgmt
|
||||
ex: br-ex
|
||||
ceph/public: br-mgmt
|
||||
mgmt/messaging: br-mgmt
|
||||
management: br-mgmt
|
||||
swift/api: br-mgmt
|
||||
mgmt/api: br-mgmt
|
||||
storage: br-storage
|
||||
mgmt/corosync: br-mgmt
|
||||
cinder/api: br-mgmt
|
||||
public/vip: br-ex
|
||||
swift/replication: br-storage
|
||||
ceph/radosgw: br-ex
|
||||
admin/pxe: br-fw-admin
|
||||
mongo/db: br-mgmt
|
||||
fw-admin: br-fw-admin
|
||||
glance/api: br-mgmt
|
||||
heat/api: br-mgmt
|
||||
mgmt/vip: br-mgmt
|
||||
nova/api: br-mgmt
|
||||
horizon: br-mgmt
|
||||
mgmt/memcache: br-mgmt
|
||||
cinder/iscsi: br-storage
|
||||
ceph/replication: br-storage
|
||||
interfaces:
|
||||
eth4: {}
|
||||
eth3: {}
|
||||
eth2: {}
|
||||
eth1: {}
|
||||
eth0: {}
|
||||
version: '1.1'
|
||||
provider: lnx
|
||||
endpoints:
|
||||
eth3.103:
|
||||
IP: none
|
||||
br-fw-admin:
|
||||
IP:
|
||||
- 10.109.5.4/24
|
||||
br-storage:
|
||||
IP:
|
||||
- 10.109.9.3/24
|
||||
br-mgmt:
|
||||
IP:
|
||||
- 10.109.7.5/24
|
||||
br-ex:
|
||||
IP:
|
||||
- 10.109.6.5/24
|
||||
gateway: 10.109.6.1
|
||||
heat:
|
||||
db_password: LUQaf5HX
|
||||
user_password: n6d22XtZ
|
||||
enabled: true
|
||||
auth_encryption_key: 25500a6a9e95055c22137d0877254d21
|
||||
rabbit_password: QiGrTxvm
|
||||
storage_network_range: 10.109.9.0/24
|
||||
fuel_version: '7.0'
|
||||
rabbit:
|
||||
password: XAIF8v50
|
||||
public_network_assignment:
|
||||
assign_to_all_nodes: false
|
||||
metadata:
|
||||
restrictions:
|
||||
- action: hide
|
||||
condition: cluster:net_provider != 'neutron'
|
||||
weight: 50
|
||||
label: Public network assignment
|
||||
test_vm_image:
|
||||
- os_name: cirros
|
||||
img_path: "/usr/share/cirros-testvm/cirros-i386-disk.vmdk"
|
||||
container_format: bare
|
||||
min_ram: 64
|
||||
disk_format: vmdk
|
||||
glance_properties: "--property vmware_disktype=sparse --property vmware_adaptertype=lsilogic
|
||||
--property hypervisor_type=vmware"
|
||||
img_name: TestVM-VMDK
|
||||
public: 'true'
|
||||
- os_name: cirros
|
||||
img_path: "/usr/share/cirros-testvm/cirros-x86_64-disk.img"
|
||||
container_format: bare
|
||||
min_ram: 64
|
||||
disk_format: qcow2
|
||||
glance_properties: ''
|
||||
img_name: TestVM
|
||||
public: 'true'
|
||||
management_network_range: 10.109.7.0/24
|
||||
nodes:
|
||||
- user_node_name: slave-01_controller
|
||||
uid: '1'
|
||||
public_address: 10.109.6.4
|
||||
internal_netmask: 255.255.255.0
|
||||
fqdn: node-1.test.domain.local
|
||||
role: primary-controller
|
||||
public_netmask: 255.255.255.0
|
||||
internal_address: 10.109.7.4
|
||||
storage_address: 10.109.9.2
|
||||
swift_zone: '1'
|
||||
storage_netmask: 255.255.255.0
|
||||
name: node-1
|
||||
- user_node_name: slave-02_compute-vmware
|
||||
uid: '2'
|
||||
public_address: 10.109.6.5
|
||||
internal_netmask: 255.255.255.0
|
||||
fqdn: node-2.test.domain.local
|
||||
role: compute-vmware
|
||||
public_netmask: 255.255.255.0
|
||||
internal_address: 10.109.7.5
|
||||
storage_address: 10.109.9.3
|
||||
swift_zone: '2'
|
||||
storage_netmask: 255.255.255.0
|
||||
name: node-2
|
||||
neutron_advanced_configuration:
|
||||
neutron_dvr: false
|
||||
neutron_l2_pop: false
|
||||
metadata:
|
||||
restrictions:
|
||||
- action: hide
|
||||
condition: cluster:net_provider != 'neutron'
|
||||
weight: 45
|
||||
label: Neutron Advanced Configuration
|
||||
base_syslog:
|
||||
syslog_port: '514'
|
||||
syslog_server: 10.109.5.2
|
||||
vms_conf: []
|
||||
workloads_collector:
|
||||
username: fuel_stats_user
|
||||
enabled: true
|
||||
create_user: true
|
||||
password: 27LKnvIe
|
||||
tenant: services
|
||||
metadata:
|
||||
restrictions:
|
||||
- action: hide
|
||||
condition: 'true'
|
||||
weight: 10
|
||||
label: Workloads Collector User
|
||||
floating_network_range:
|
||||
- 10.109.6.128-10.109.6.254
|
||||
auth_key: ''
|
||||
horizon:
|
||||
secret_key: a24a5aea2ae41a7d12bb22cbe0eb417ea0466bb650e9a6c9c4f1fee5b44e59ca
|
||||
puppet_debug: true
|
||||
access:
|
||||
metadata:
|
||||
weight: 10
|
||||
label: Access
|
||||
password: admin
|
||||
user: admin
|
||||
tenant: admin
|
||||
email: admin@localhost
|
||||
last_controller: node-1
|
||||
fqdn: node-2.test.domain.local
|
||||
public_ssl:
|
||||
hostname: 10.109.6.2
|
||||
horizon: true
|
||||
services: true
|
||||
cert_data: ''
|
||||
cert_source: self_signed
|
||||
metadata:
|
||||
weight: 110
|
||||
label: Public TLS
|
||||
auto_assign_floating_ip: false
|
||||
mp:
|
||||
- weight: '1'
|
||||
point: '1'
|
||||
- weight: '2'
|
||||
point: '2'
|
||||
neutron_mellanox:
|
||||
vf_num: '16'
|
||||
metadata:
|
||||
restrictions:
|
||||
- action: hide
|
||||
condition: not ('experimental' in version:feature_groups)
|
||||
enabled: true
|
||||
weight: 50
|
||||
toggleable: false
|
||||
label: Mellanox Neutron components
|
||||
plugin: disabled
|
||||
dns_nameservers:
|
||||
- 8.8.4.4
|
||||
- 8.8.8.8
|
||||
debug: true
|
||||
cinder:
|
||||
instances:
|
||||
- availability_zone_name: vcenter
|
||||
vc_password: Qwer!1234
|
||||
vc_host: 172.16.0.254
|
||||
vc_user: administrator@vsphere.local
|
||||
user_password: 4oo4d5XG
|
||||
fixed_key: 103b9824ff372023ce335a0468bfb8cf510db3e7e6b8bb51d9da230a709a0518
|
||||
db_password: gvPrBg8w
|
||||
deployment_id: 1
|
||||
external_ntp:
|
||||
ntp_list: 10.109.6.1
|
||||
metadata:
|
||||
weight: 100
|
||||
label: Host OS NTP Servers
|
||||
openstack_version_prev:
|
|
@ -1,6 +1,6 @@
|
|||
require 'spec_helper'
|
||||
require 'shared-examples'
|
||||
manifest = 'vmware/compute.pp'
|
||||
manifest = 'vmware/compute-vmware.pp'
|
||||
|
||||
describe manifest do
|
||||
test_ubuntu_and_centos manifest
|
Loading…
Reference in New Issue