Enable conntrackd for Ubuntu.

As described in BP https://review.openstack.org/#/c/122123/
this patch enables conntrackd connection synchronizing
for Ubuntu ONLY! Conntrackd for CentOS 6 doesn't work in
namespaces.

DocImpact
Closes-Bug: 1436935

Change-Id: I71a841741da27ba8be00b6d02f03a6b1b6c7b536
This commit is contained in:
Oleksiy Molchanov 2015-03-26 18:57:35 +02:00
parent 6d366b4e7d
commit 66f5ebe3c7
3 changed files with 86 additions and 61 deletions

View File

@ -0,0 +1,76 @@
notice('MODULAR: conntrackd.pp')
case $operatingsystem {
Centos: { $conntrackd_package = "conntrack-tools" }
Ubuntu: { $conntrackd_package = "conntrackd" }
}
### CONNTRACKD for CentOS 6 doesn't work under namespaces ##
if $operatingsystem == 'Ubuntu' {
package { $conntrackd_package:
ensure => installed,
} ->
exec { 'Disable conntrackd':
command => 'service conntrackd stop; killall conntrackd; chmod -x /etc/init.d/conntrackd; exit 0',
path => '/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin',
onlyif => '[ -x "/etc/init.d/conntrackd" ]',
} ->
file { '/etc/conntrackd/conntrackd.conf':
content => template('cluster/conntrackd.conf.erb'),
} ->
file { '/usr/lib/ocf/resource.d/fuel/ns_conntrackd':
mode => '0755',
owner => root,
group => root,
source => 'puppet:///modules/cluster/ocf/ns_conntrackd',
} ->
cs_resource {'p_conntrackd':
ensure => present,
primitive_class => 'ocf',
provided_by => 'fuel',
primitive_type => 'ns_conntrackd',
metadata => {
'migration-threshold' => 'INFINITY',
'failure-timeout' => '180s'
},
complex_type => 'master',
ms_metadata => {
'notify' => 'true',
'ordered' => 'false',
'interleave' => 'true',
'clone-node-max' => '1',
'master-max' => '1',
'master-node-max' => '1',
'target-role' => 'Master'
},
operations => {
'monitor' => {
'interval' => '30',
'timeout' => '60'
},
'monitor:Master' => {
'role' => 'Master',
'interval' => '27',
'timeout' => '60'
},
},
}
cs_colocation { 'conntrackd-with-public-vip':
primitives => [ 'master_p_conntrackd:Master', 'vip__public_vrouter' ],
}
File['/etc/conntrackd/conntrackd.conf'] -> Cs_resource['p_conntrackd'] -> Service['p_conntrackd'] -> Cs_colocation['conntrackd-with-public-vip']
service { 'p_conntrackd':
ensure => 'running',
enable => true,
provider => 'pacemaker',
}
}

View File

@ -9,3 +9,13 @@
timeout: 3600
test_post:
cmd: ruby /etc/puppet/modules/osnailyfacter/modular/virtual_ips/virtual_ips_post.rb
- id: conntrackd
type: puppet
groups: [primary-controller, controller]
required_for: [deploy_end]
requires: [virtual_ips]
parameters:
puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/virtual_ips/conntrackd.pp
puppet_modules: /etc/puppet/modules
timeout: 3600

View File

@ -109,65 +109,4 @@ class virtual_ips () {
} # End If keep_vips_together
}
case $operatingsystem {
Centos: { $conntrackd_package = "conntrack-tools" }
Ubuntu: { $conntrackd_package = "conntrackd" }
}
class { 'virtual_ips': }
if $use_conntrackd {
package { $conntrackd_package:
ensure => installed,
require => Class['virtual_ips'],
} ->
file { '/etc/conntrackd/conntrackd.conf':
content => template('cluster/conntrackd.conf.erb'),
}
cs_resource {'conntrackd':
ensure => present,
primitive_class => 'ocf',
provided_by => 'fuel',
primitive_type => 'ns_conntrackd',
metadata => {
'migration-threshold' => 'INFINITY',
'failure-timeout' => '180s'
},
complex_type => 'master',
ms_metadata => {
'notify' => 'true',
'ordered' => 'false',
'interleave' => 'true',
'clone-node-max' => '1',
'master-max' => '1',
'master-node-max' => '1',
'target-role' => 'Master'
},
operations => {
'monitor' => {
'interval' => '30',
'timeout' => '60'
},
'monitor:Master' => {
'role' => 'Master',
'interval' => '27',
'timeout' => '60'
},
},
}
cs_colocation { 'conntrackd-with-public-vip':
primitives => [ 'conntrackd:Master', 'vip__public_vrouter' ],
}
File['/etc/conntrackd/conntrackd.conf'] -> Cs_resource['conntrackd'] -> Service['conntrackd']
service { 'conntrackd':
ensure => 'running',
enable => true,
provider => 'pacemaker',
}
}