fuel-library/deployment/puppet/pacemaker
Alex Schultz abd991b230 Update CI tasks and module fixtures
This change updates the fixtures files for the modules within
fuel-library to use the relative path to the upstream modules used by
fuel-library. With this change we are also adding an initial prep task
that is used by CI to pull down all the modules first and only one time
to reduce the amount of repeated calls to the upstream git repositories.

Included in this change is also an update to exclude all the upstream
modules from the spec and lint tasks as those are maintained in the
upstream modules and should not be done when testing fuel-library.

This change also adds documentation to the README.md on how to run the
tests from the root of fuel-library.

Change-Id: I9cde21b94a8367fd45cf046af48d7618076a385c
Related-Bug: #1535832
2016-01-25 15:11:37 +00:00
..
lib/puppet Remove PROXY-ARP artifacts from ns_IPaddr2 OCF script 2015-08-24 22:47:07 +03:00
spec Remove vendor/downstream specific code 2015-11-24 13:51:11 +00:00
.fixtures.yml Update CI tasks and module fixtures 2016-01-25 15:11:37 +00:00
.gitignore Sync corosync upstream 2015-01-23 11:05:09 +01:00
.rspec Sync corosync upstream 2015-01-23 11:05:09 +01:00
.travis.yml Sync corosync upstream 2015-01-23 11:05:09 +01:00
Gemfile Pacemaker fixes for controller add/remove 2015-04-30 12:07:23 +03:00
LICENSE Sync corosync upstream 2015-01-23 11:05:09 +01:00
Rakefile Sync corosync upstream 2015-01-23 11:05:09 +01:00
README.md Sync corosync upstream 2015-01-23 11:05:09 +01:00

Fuel module for Pacemaker

These manfisests are derived from puppetlabs-corosync modules v0.1.0.

Basic usage

Configuring primitives

The resources that Pacemaker will manage can be referred to as a primitive. These are things like virtual IPs or services like drbd, nginx, and apache.

To assign a VIP to a network interface to be used by Nginx

cs_resource { 'nginx_vip':
  primitive_class => 'ocf',
  primitive_type  => 'IPaddr2',
  provided_by     => 'heartbeat',
  parameters      => { 'ip' => '172.16.210.100', 'cidr_netmask' => '24' },
  operations      => { 'monitor' => { 'interval' => '10s' } },
}

Make Pacemaker manage and monitor the state of Nginx using a custom OCF agent

cs_resource { 'nginx_service':
  primitive_class => 'ocf',
  primitive_type  => 'nginx_fixed',
  provided_by     => 'pacemaker',
  operations      => {
    'monitor' => { 'interval' => '10s', 'timeout' => '30s' },
    'start'   => { 'interval' => '0', 'timeout' => '30s', 'on-fail' => 'restart' }
  },
  require         => Cs_primitive['nginx_vip'],
}

Make Pacemaker manage and monitor the state of Apache using a LSB agent

cs_resource { 'nginx_service':
  primitive_class => 'lsb',
  primitive_type  => 'apache2',
  provided_by     => 'heartbeat',
  operations      => {
    'monitor' => { 'interval' => '10s', 'timeout' => '30s' },
    'start'   => { 'interval' => '0', 'timeout' => '30s', 'on-fail' => 'restart' }
  },
  require         => Cs_primitive['apache2_vip'],
}

*You can also specify multi-state resource such as clone or master

cs_resource {'nginx_service':
primitive_class => 'lsb',
  provided_by     => 'heartbeat',
  operations      => {
    'monitor' => { 'interval' => '10s', 'timeout' => '30s' },
    'start'   => { 'interval' => '0', 'timeout' => '30s', 'on-fail' => 'restart' }
  },
  require         => Cs_primitive['apache2_vip'],
  multistate_hash => {'type'=>'clone','name'=>'nginx_clone'
  ms_metadata => {'interleave'=>'true'}
  }
}

Dependencies

Tested and built on Ubuntu 12.04 with 1.4.2 of Corosync is validated to function.

Notes

Contributors

Copyright (C) 2012 Puppet Labs Inc

Puppet Labs can be contacted at: info@puppetlabs.com

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.