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:
Igor Zinovik 2015-06-26 18:27:06 +03:00
parent 0c29bbc15c
commit 0f6abf96c3
13 changed files with 858 additions and 117 deletions

View File

@ -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]

View File

@ -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"

View File

@ -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)

View File

@ -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

View File

@ -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,
}
}

View File

@ -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}"]
}
}

View File

@ -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']
}
}

View File

@ -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
}
}

View File

@ -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,

View File

@ -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" }
]
}

View File

@ -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 %>

View File

@ -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:

View File

@ -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