From 5963c9a58aeba728eb067295520685a87713fca1 Mon Sep 17 00:00:00 2001 From: Giulio Fidente Date: Fri, 10 Apr 2015 23:40:26 +0200 Subject: Perform basic setup of pacemaker cluster on controllers Change-Id: Ia2e4eae619ca95c0f417f713676732eb4f01304b Depends-On: I9563eec0a2266deb2ebef2e3d76ae89d39b2be29 --- controller.yaml | 3 +++ overcloud-without-mergepy.yaml | 6 ++++++ puppet/controller-puppet.yaml | 8 ++++++++ puppet/hieradata/controller.yaml | 4 ++++ puppet/manifests/overcloud_controller.pp | 17 +++++++++++++++++ 5 files changed, 38 insertions(+) diff --git a/controller.yaml b/controller.yaml index 9c0fa0cd..4a21bac7 100644 --- a/controller.yaml +++ b/controller.yaml @@ -59,6 +59,9 @@ parameters: default: 'br-ex' description: Interface where virtual ip will be assigned. type: string + CorosyncAuthKey: + description: Auth encryption key for corosync + type: string Debug: default: '' description: Set to True to enable debugging on all services. diff --git a/overcloud-without-mergepy.yaml b/overcloud-without-mergepy.yaml index d8c84bc0..f61536ca 100644 --- a/overcloud-without-mergepy.yaml +++ b/overcloud-without-mergepy.yaml @@ -516,6 +516,11 @@ resources: HeatAuthEncryptionKey: type: OS::Heat::RandomString + CorosyncAuthKey: + type: OS::Heat::RandomString + properties: + length: 128 + Controller: type: OS::Heat::ResourceGroup properties: @@ -535,6 +540,7 @@ resources: CloudName: {get_param: CloudName} ControlVirtualInterface: {get_param: ControlVirtualInterface} ControllerExtraConfig: {get_param: controllerExtraConfig} + CorosyncAuthKey: {get_resource: CorosyncAuthKey} Debug: {get_param: Debug} EnableGalera: {get_param: EnableGalera} ExtraConfig: {get_param: ExtraConfig} diff --git a/puppet/controller-puppet.yaml b/puppet/controller-puppet.yaml index 780c8cfa..9184a92a 100644 --- a/puppet/controller-puppet.yaml +++ b/puppet/controller-puppet.yaml @@ -59,6 +59,9 @@ parameters: default: 'br-ex' description: Interface where virtual ip will be assigned. type: string + CorosyncAuthKey: + description: Auth encryption key for corosync + type: string Debug: default: '' description: Set to True to enable debugging on all services. @@ -433,6 +436,7 @@ resources: bootstack_nodeid: {get_attr: [Controller, name]} controller_host: {get_attr: [Controller, networks, ctlplane, 0]} controller_virtual_ip: {get_param: VirtualIP} + corosync_auth_key: {get_param: CorosyncAuthKey} neutron_enable_tunneling: {get_param: NeutronEnableTunnelling} heat.watch_server_url: list_join: @@ -628,6 +632,10 @@ resources: bootstack_nodeid: {get_input: bootstack_nodeid} controller_host: {get_input: controller_host} #local-ipv4 + # Pacemaker + corosync::authkey: {get_input: corosync_auth_key} + corosync::bind_address: {get_input: controller_host} + # Swift swift::proxy::proxy_local_net_ip: {get_input: controller_host} swift::proxy::authtoken::auth_uri: {get_input: keystone_auth_uri} diff --git a/puppet/hieradata/controller.yaml b/puppet/hieradata/controller.yaml index 47f358a9..1e1f50a7 100644 --- a/puppet/hieradata/controller.yaml +++ b/puppet/hieradata/controller.yaml @@ -70,6 +70,10 @@ heat::engine::heat_stack_user_role: '' heat::engine::configure_delegated_roles: false heat::engine::trusts_delegated_roles: [] +# pacemaker +corosync::authkey_source: 'string' +corosync::multicast_address: broadcast + mysql::server::manage_config_file: true tripleo::loadbalancer::keystone_admin: true diff --git a/puppet/manifests/overcloud_controller.pp b/puppet/manifests/overcloud_controller.pp index 3e3f2e70..0727eda3 100644 --- a/puppet/manifests/overcloud_controller.pp +++ b/puppet/manifests/overcloud_controller.pp @@ -31,6 +31,23 @@ if hiera('step') >= 1 { controller_hosts => $controller_node_ips, } + class { '::corosync': + quorum_members => $controller_node_ips, + } + corosync::service { 'pacemaker': + version => '0', + } + service { 'pacemaker': + ensure => running, + require => Service['corosync'], + } + cs_property { 'stonith-enabled': + value => 'false', + } + cs_property { 'no-quorum-policy': + value => 'ignore', + } + } if hiera('step') >= 2 { -- cgit 1.2.3-korg