From 442a5854850fd78cc4ec08e489c90bf2f36bfa26 Mon Sep 17 00:00:00 2001 From: Alejandro Andreu Date: Mon, 20 Feb 2017 17:49:01 +0100 Subject: [PATCH] Doesn't make analytics manifests :bomb: on RHEL7 Change-Id: I7d1f5cc753802ae8112086a4ec42cdd777603dc0 --- manifests/analytics.pp | 255 ++++++++++++++++---------------- manifests/analytics/services.pp | 58 ++++---- 2 files changed, 155 insertions(+), 158 deletions(-) diff --git a/manifests/analytics.pp b/manifests/analytics.pp index 091e388..a184e9e 100644 --- a/manifests/analytics.pp +++ b/manifests/analytics.pp @@ -118,11 +118,13 @@ class midonet::analytics ( if versioncmp($midonet_version,'5.2') > 0 { - $ins_service_name = 'elasticsearch-es-01' - $config = { 'network.host' => ['_local_',$elk_bind_ip], - 'cluster.name' => $elk_cluster_name, - 'discovery.zen.ping.unicast.hosts' => $elk_hosts, - 'discovery.zen.minimum_master_nodes' => (size($elk_hosts)/2)+1} + $ins_service_name = 'elasticsearch-instance-es-01' + $config = { + 'network.host' => ['_local_',$elk_bind_ip], + 'cluster.name' => $elk_cluster_name, + 'discovery.zen.ping.unicast.hosts' => $elk_hosts, + 'discovery.zen.minimum_master_nodes' => (size($elk_hosts)/2)+1 + } } else { @@ -130,129 +132,122 @@ class midonet::analytics ( $ins_service_name = 'elasticsearch-instance-es-01' } - class { 'elasticsearch': - manage_repo => true, - repo_version => $elastic_version, - config => $config, - require => Class['::logstash'] - } - contain elasticsearch - - class { 'logstash': - manage_repo => true, - repo_version => $logstash_version, - } - contain logstash - - - - elasticsearch::instance { 'es-01': - require => Class['::logstash','::elasticsearch'] - } - - if $::osfamily == 'Debian' { - anchor { 'curator-begin': } -> - class { 'curator': - version => $curator_version, - } -> - anchor { 'curator-end': } - } elsif $::osfamily == 'RedHat' { - anchor { 'curator-begin': } -> - exec { 'rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch': - path => '/usr/bin' - } -> - yumrepo { 'curator-3': - descr => 'CentOS/RHEL repository for Elasticsearch Curator 3 packages', - baseurl => 'http://packages.elastic.co/curator/3/centos/$releasever', - gpgcheck => true, - gpgkey => 'http://packages.elastic.co/GPG-KEY-elasticsearch', - enabled => true, - } -> - package { 'python-elasticsearch-curator': ensure => installed } -> - anchor { 'curator-end': } - } - - if $is_mem { - if $manage_repo == true { - if !defined(Class['midonet::repository']) { - class {'midonet::repository': - is_mem => $is_mem, - midonet_version => undef, - midonet_stage => undef, - openstack_release => undef, - mem_version => undef, - mem_username => $mem_username, - mem_password => $mem_password, - before => Class['midonet::analytics::services', - 'midonet::analytics::quickstart'] - } - } - } - - class { 'midonet::analytics::services': - calliope_port => $calliope_port, - midonet_version => $midonet_version, - require => [ - Class['::logstash','::elasticsearch'], - Elasticsearch::Instance['es-01'], - Anchor['curator-end'] - ] - } - - unless $allinone { - if versioncmp($midonet_version,'5.2') > 0 - { - class { 'midonet::analytics::quickstart': - zookeeper_hosts => $zookeeper_hosts, - } - } - else { - class { 'midonet::analytics::quickstart': - zookeeper_hosts => $zookeeper_hosts, - notify => Service[$real_analytics_package_name] - } - } - } - - - - } - else { - notice('Skipping installation of midonet analytics services') - } - - if $::osfamily == 'Debian' { - file_line { 'Set LS_HEAP_SIZE': - path => '/etc/default/logstash', - line => "LS_HEAP_SIZE='${heap_size_gb}g'", - match => '^LS_HEAP_SIZE.*$', - require => Package['logstash'], - notify => Service['logstash'], - } - - file_line { 'Set ES_HEAP_SIZE': - path => '/etc/default/elasticsearch', - line => "ES_HEAP_SIZE='${heap_size_gb}g'", - match => '^ES_HEAP_SIZE.*$', - require => Package['elasticsearch'], - notify => Service[$ins_service_name], - } - } - if $::osfamily == 'RedHat' { - file_line { 'Set LS_HEAP_SIZE': - path => '/etc/sysconfig/logstash', - line => "LS_HEAP_SIZE='${heap_size_gb}g'", - match => '^LS_HEAP_SIZE.*$', - require => Package['logstash'], - notify => Service['logstash'], - } - - file_line { 'Set ES_HEAP_SIZE': - path => '/etc/sysconfig/elasticsearch', - line => "ES_HEAP_SIZE='${heap_size_gb}g'", - match => '^ES_HEAP_SIZE.*$', - require => Package['elasticsearch'], - notify => Service[$ins_service_name], - } - } + class { 'elasticsearch': + manage_repo => true, + repo_version => $elastic_version, + config => $config, + require => Class['::logstash'] } + contain elasticsearch + + class { 'logstash': + manage_repo => true, + repo_version => $logstash_version, + } + contain logstash + + + + elasticsearch::instance { 'es-01': + require => Class['::logstash','::elasticsearch'] + } + + if $::osfamily == 'Debian' { + anchor { 'curator-begin': } -> + class { 'curator': + version => $curator_version, + } -> + anchor { 'curator-end': } + } + elsif $::osfamily == 'RedHat' { + anchor { 'curator-begin': } -> + exec { 'rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch': + path => '/usr/bin' + } -> + yumrepo { 'curator-3': + descr => 'CentOS/RHEL repository for Elasticsearch Curator 3 packages', + baseurl => 'http://packages.elastic.co/curator/3/centos/$releasever', + gpgcheck => true, + gpgkey => 'http://packages.elastic.co/GPG-KEY-elasticsearch', + enabled => true, + } -> + package { 'python-elasticsearch-curator': ensure => installed } -> + anchor { 'curator-end': } + } + + if $is_mem { + if $manage_repo == true { + if !defined(Class['midonet::repository']) { + class {'midonet::repository': + is_mem => $is_mem, + midonet_version => undef, + midonet_stage => undef, + openstack_release => undef, + mem_version => undef, + mem_username => $mem_username, + mem_password => $mem_password, + before => Class['midonet::analytics::services', + 'midonet::analytics::quickstart'] + } + } + } + + class { 'midonet::analytics::services': + calliope_port => $calliope_port, + midonet_version => $midonet_version, + require => [ + Class['::logstash','::elasticsearch'], + Elasticsearch::Instance['es-01'], + Anchor['curator-end'] + ] + } + + unless $allinone { + if versioncmp($midonet_version,'5.2') > 0 + { + class { 'midonet::analytics::quickstart': + zookeeper_hosts => $zookeeper_hosts, + } + } + else { + class { 'midonet::analytics::quickstart': + zookeeper_hosts => $zookeeper_hosts, + notify => Service['analytics_service'] + } + } + } + + } + else { + notice('Skipping installation of midonet analytics services') + } + + if $::osfamily == 'Debian' { + $logstash_config_file = '/etc/default/logstash' + $elasticsearch_config_file = '/etc/default/elasticsearch' + $logstash_service = 'logstash' + $elasticsearch_service = 'elasticsearch' + } + if $::osfamily == 'RedHat' { + $logstash_config_file = '/etc/sysconfig/logstash' + $elasticsearch_config_file = '/etc/sysconfig/elasticsearch' + $logstash_service = 'logstash' + $elasticsearch_service = 'elasticsearch' + } + file_line { 'Set LS_HEAP_SIZE': + path => $logstash_config_file, + line => "LS_HEAP_SIZE='${heap_size_gb}g'", + match => '^LS_HEAP_SIZE.*$', + require => Package['logstash'], + notify => Service[$ins_service_name], + } + + file_line { 'Set ES_HEAP_SIZE': + path => $elasticsearch_config_file, + line => "ES_HEAP_SIZE='${heap_size_gb}g'", + match => '^ES_HEAP_SIZE.*$', + require => Package['elasticsearch'], + notify => Service[$ins_service_name], + } +} + diff --git a/manifests/analytics/services.pp b/manifests/analytics/services.pp index f986c04..0acafa1 100644 --- a/manifests/analytics/services.pp +++ b/manifests/analytics/services.pp @@ -51,7 +51,9 @@ class midonet::analytics::services ( $tools_package_name = 'midonet-tools', $elk_package_name = 'midonet-elk', $calliope_port = '8080', - $midonet_version = '5.2' + $midonet_version = '5.2', + $logstash_service = 'logstash', + $elasticsearch_service = 'elasticsearch', ) { include ::stdlib $real_analytics_package_name = versioncmp($midonet_version,'5.2') ? {'1' => $elk_package_name, default => $analytics_package_name} @@ -66,65 +68,65 @@ class midonet::analytics::services ( if versioncmp($midonet_version,'5.2') > 0 { - if $::osfamily == 'Debian' { - exec {'update-ca-certificates -f': - path => ['/usr/bin', '/usr/sbin','/bin'], - before => Package[$tools_package_name], - } - } - package { $tools_package_name: - ensure => present, - name => $tools_package_name, - } - + package { $tools_package_name: ensure => present, } package { $real_analytics_package_name: ensure => present, - name => $real_analytics_package_name, - } -> - - exec { $logstash_command: - path => ['/usr/bin', '/usr/sbin','/sbin'], - require => Package[$real_analytics_package_name], + notify => $analytics_notifications, } - exec {'service elasticsearch-es-01 restart': - path => ['/usr/bin', '/usr/sbin',], - require => Package[$real_analytics_package_name], - } + if $::osfamily == 'RedHat' { + $analytics_notifications = Service['logstash', 'elasticsearch'] + } + elsif $::osfamily == 'Debian' { + $analytics_notifications = undef + exec {'update-ca-certificates -f': + path => ['/usr/bin', '/usr/sbin','/bin'], + before => Package['midonet_tools'], + } + exec { $logstash_command: + path => ['/usr/bin', '/usr/sbin','/sbin'], + require => Package['analytics'], + } + exec { 'service elasticsearch-es-01 restart': + path => ['/usr/bin', '/usr/sbin',], + require => Package['analytics'], + } + } } else { - package { $tools_package_name: + package { 'midonet_tools': ensure => present, name => $tools_package_name, } - package { $real_analytics_package_name: + package { 'analytics': ensure => present, name => $real_analytics_package_name, } -> exec { $logstash_command: path => ['/usr/bin', '/usr/sbin','/sbin'], - before => Service[$real_analytics_package_name], + before => Service['analytics_service'], } unless $calliope_port == '8080' { exec { "echo calliope.service.ws_port : ${calliope_port} | mn-conf set -t default": path => ['/usr/bin', '/bin'], - before => Service[$real_analytics_package_name], + before => Service['analytics_service'], } } - service { $real_analytics_package_name: + service { 'analytics_service': ensure => 'running', name => $real_analytics_package_name, enable => true, - require => Package[$real_analytics_package_name], + require => Package['analytics'], } } } +