Dedicated node role for Contrail Analytics added

Change-Id: Ibbfa8feadddd2b78517943bd189251129dabd4d1
This commit is contained in:
Vlad Naboichenko 2016-10-13 16:48:10 -07:00
parent 7ad134016e
commit 6f76e62e64
14 changed files with 167 additions and 36 deletions

View File

@ -0,0 +1,18 @@
# Copyright 2015 Mirantis, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
notice('MODULAR: contrail/contrail-analytics-provision.pp')
include contrail
class { 'contrail::provision::analytics': }

View File

@ -0,0 +1,18 @@
# Copyright 2015 Mirantis, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
notice('MODULAR: contrail/contrail-analytics.pp')
include contrail
class { 'contrail::analytics': }

View File

@ -16,5 +16,4 @@ notice('MODULAR: contrail/contrail-config.pp')
include contrail
include contrail::config
include contrail::analytics
include contrail::webui

View File

@ -33,7 +33,7 @@ class contrail::analytics {
# Packages
package { 'redis-server': } ->
package { 'contrail-analytics': } ->
package { 'contrail-analytics': }
package { 'contrail-openstack-analytics': }
# Analytics config files
@ -130,6 +130,18 @@ class contrail::analytics {
'DISCOVERY/disc_server_port': value => '5998';
}
contrail_keystone_auth_config {
'KEYSTONE/auth_host': value => $contrail::keystone_address;
'KEYSTONE/auth_protocol': value => $contrail::keystone_protocol;
'KEYSTONE/auth_port': value => '35357';
'KEYSTONE/admin_user': value => $contrail::neutron_user;
'KEYSTONE/admin_password': value => $contrail::service_token;
'KEYSTONE/admin_token': value => $contrail::admin_token;
'KEYSTONE/admin_tenant_name': value => $contrail::service_tenant;
'KEYSTONE/insecure': value => true;
'KEYSTONE/memcache_servers': value => '127.0.0.1:11211';
}
ini_setting { 'analytics-fdlimit':
ensure => present,
path => '/etc/contrail/supervisord_analytics.conf',
@ -193,7 +205,7 @@ class contrail::analytics {
# Cron job for transfer contrail-logs to Fuel master
# Runs on primary analytics node
if roles_include('primary-contrail-config') {
if roles_include('primary-contrail-analytics') {
file { 'contrailsyslog.sh':
ensure => 'present',
path => '/usr/local/sbin/contrailsyslog.sh',
@ -215,6 +227,7 @@ class contrail::analytics {
}
Contrail_analytics_nodemgr_config <||> ~> Service['supervisor-analytics']
Contrail_topology_config <||> ~> Service['supervisor-analytics']
Contrail_keystone_auth_config <||> ~> Service['supervisor-analytics']
Contrail_snmp_collector_config <||> ~> Service['supervisor-analytics']
Contrail_query_engine_config <||> ~> Service['supervisor-analytics']
Contrail_analytics_api_config <||> ~> Service['supervisor-analytics']

View File

@ -81,12 +81,6 @@ class contrail::config {
content => template('contrail/basicauthusers.properties.erb'),
}
if !defined(File['/etc/contrail/vnc_api_lib.ini']) {
file { '/etc/contrail/vnc_api_lib.ini':
content => template('contrail/vnc_api_lib.ini.erb')
}
}
contrail_api_config {
'DEFAULTS/ifmap_server_ip': value => $contrail::address;
'DEFAULTS/ifmap_server_port': value => '8443';

View File

@ -39,13 +39,6 @@ class contrail::control {
package { 'contrail-control': }
package { 'contrail-openstack-control': }
# Contrail control config files
if !defined(File['/etc/contrail/vnc_api_lib.ini']) {
file { '/etc/contrail/vnc_api_lib.ini':
content => template('contrail/vnc_api_lib.ini.erb')
}
}
contrail_control_config {
'DEFAULT/hostip': value => $contrail::address;
'DEFAULT/hostname': value => $::fqdn;

View File

@ -30,12 +30,6 @@ class contrail::database {
package_name => 'contrail-database-common',
service_name => 'contrail-database',
}
# VNC API
if !defined(File['/etc/contrail/vnc_api_lib.ini']) {
file { '/etc/contrail/vnc_api_lib.ini':
content => template('contrail/vnc_api_lib.ini.erb'),
}
}
if roles_include($contrail::contrail_db_roles) {
$cassandra_seeds = $contrail::primary_contrail_db_ip

View File

@ -219,6 +219,10 @@ class contrail {
$contrail_config_ips = ipsort(values(get_node_to_ipaddr_map_by_network_role($contrail_config_nodes_hash, 'neutron/mesh')))
$contrail_config_ips_adm = ipsort(values(get_node_to_ipaddr_map_by_network_role($contrail_config_nodes_hash, 'fw-admin')))
# Contrail Analytics nodes Private IP list
$contrail_analytics_nodes_hash = get_nodes_hash_by_roles($network_metadata, ['primary-contrail-analytics', 'contrail-analytics'])
$contrail_analytics_ips = sort(values(get_node_to_ipaddr_map_by_network_role($contrail_analytics_nodes_hash, 'neutron/mesh')))
# Cassandra, Kafka & Zookeeper servers list
$contrail_db_list = inline_template("<%= scope.lookupvar('contrail::contrail_db_ips').map{ |ip| \"#{ip}:9042\" }.join(' ') %>")
$contrail_db_list_9160 = inline_template("<%= scope.lookupvar('contrail::contrail_db_ips').map{ |ip| \"#{ip}:9160\" }.join(' ') %>")
@ -234,4 +238,7 @@ class contrail {
$use_syslog = pick($settings['use_syslog'], '1')
$syslog_facility = pick($settings['syslog_facility'], 'LOG_LOCAL0')
$log_level = pick($settings['log_level'], 'SYS_INFO')
}

View File

@ -0,0 +1,31 @@
# Copyright 2015 Mirantis, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
class contrail::provision::analytics {
Exec {
provider => 'shell',
path => '/usr/bin:/bin:/sbin',
}
contrail::provision::api_readiness::check{'/opt/contrail/prov_analytics_node-DONE':} ->
exec { 'prov_analytics_node':
command => "python /opt/contrail/utils/provision_analytics_node.py \
--api_server_ip ${contrail::contrail_mgmt_vip} --api_server_port ${contrail::api_server_port} \
--oper add --host_name ${::fqdn} --host_ip ${contrail::address} \
--admin_user '${contrail::neutron_user}' --admin_tenant_name '${contrail::service_tenant}' --admin_password '${contrail::service_token}' \
&& touch /opt/contrail/prov_analytics_node-DONE",
creates => '/opt/contrail/prov_analytics_node-DONE',
}
}

View File

@ -27,18 +27,9 @@ class contrail::provision::config {
--admin_user '${contrail::neutron_user}' --admin_tenant_name '${contrail::service_tenant}' --admin_password '${contrail::service_token}' \
&& touch /opt/contrail/prov_config_node-DONE",
creates => '/opt/contrail/prov_config_node-DONE',
} ->
contrail::provision::api_readiness::check{'/opt/contrail/prov_analytics_node-DONE':} ->
exec { 'prov_analytics_node':
command => "python /opt/contrail/utils/provision_analytics_node.py \
--api_server_ip ${contrail::contrail_mgmt_vip} --api_server_port ${contrail::api_server_port} \
--oper add --host_name ${::fqdn} --host_ip ${contrail::address} \
--admin_user '${contrail::neutron_user}' --admin_tenant_name '${contrail::service_tenant}' --admin_password '${contrail::service_token}' \
&& touch /opt/contrail/prov_analytics_node-DONE",
creates => '/opt/contrail/prov_analytics_node-DONE',
}
if roles_include('primary-contrail-config') {
contrail::provision::api_readiness::check{'/opt/contrail/prov_metadata_service-DONE':} ->
exec { 'prov_metadata_services':

View File

@ -49,5 +49,9 @@ class contrail::utils {
class { 'contrail::package':
install => $pkgs,
pip_install => $pip_pkgs,
} ->
file { '/etc/contrail/vnc_api_lib.ini':
content => template('contrail/vnc_api_lib.ini.erb')
}
}

View File

@ -31,8 +31,8 @@ class contrail::vip {
order => '201',
listen_port => 8081,
balancermember_port => 9081,
server_names => $contrail::contrail_config_ips,
ipaddresses => $contrail::contrail_config_ips,
server_names => $contrail::contrail_analytics_ips,
ipaddresses => $contrail::contrail_analytics_ips,
public => true,
internal => true,
haproxy_config_options => { 'option' => ['nolinger', 'tcp-check'],

View File

@ -61,6 +61,29 @@
parameters:
strategy:
type: one_by_one
#
# Contrail - Analytics
- id: primary-contrail-analytics
type: group
role: [primary-contrail-analytics]
tasks: [hiera, globals, tools, logging, netconfig, hosts, deploy_start]
required_for: [deploy_end]
requires: [deploy_start, contrail-db, primary-contrail-config]
parameters:
strategy:
type: one_by_one
- id: contrail-analytics
type: group
role: [contrail-analytics]
tasks: [hiera, globals, tools, logging, netconfig, hosts, deploy_start]
required_for: [deploy_end]
requires: [deploy_start, contrail-db, primary-contrail-analytics]
parameters:
strategy:
type: parallel
#
# Contrail - Control
- id: primary-contrail-control
@ -89,6 +112,7 @@
type: group
role: [primary-contrail-db, contrail-db, primary-contrail-config, contrail-config,
primary-contrail-control, contrail-control,
primary-contrail-analytics,contrail-analytics,
primary-contrail-analytics-db, contrail-analytics-db]
tasks: [configure_default_route, dns-client, ntp-client]
required_for: [post_deployment_end]
@ -331,6 +355,8 @@
strategy:
type: parallel
################
#11. Install and configure Contrail Control Node
################
@ -425,6 +451,38 @@
strategy:
type: parallel
###############
#16. Install and configure Contrail Analytics Node
###############
#
- id: contrail-analytics-all
type: puppet
version: 2.0.0
groups: [primary-contrail-analytics,contrail-analytics]
required_for: [deploy_end]
requires: [contrail-utils, deploy_start]
cross-depends:
- name: /contrail-config(-primary|-all)/
- name: /contrail-config-provision(-primary|-all)/
parameters:
puppet_manifest: puppet/manifests/contrail-analytics.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 1440
# Provision Control analytics
- id: contrail-analytics-provision
type: puppet
version: 2.0.0
groups: [primary-contrail-analytics,contrail-analytics]
required_for: [deploy_end]
requires: [contrail-analytics-all]
parameters:
puppet_manifest: puppet/manifests/contrail-analytics-provision.pp
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 1440
##############################################################
# Openstack Controller tasks section
##############################################################
@ -861,5 +919,3 @@
parameters:
cmd: if [ -f /tmp/contrail-reboot-require ]; then /sbin/reboot; fi
timeout: 720

View File

@ -28,6 +28,19 @@ contrail-config:
- contrail-vmware
- compute-vmware
contrail-analytics:
name: Contrail - Analytics
description: >
Contrail analytics role. Provides Collector, Analytics API, Query engine and Topology services.
has_primary: true
public_ip_required: false
weight: 100
conflicts:
- controller
- compute
- ceph-osd
- cinder
contrail-analytics-db:
name: Contrail - Analytics DB
description: >