target / pacemaker-cookbook Goto Github PK
View Code? Open in Web Editor NEWChef cookbook for managing pacemaker on RHEL
Home Page: https://supermarket.chef.io/cookbooks/pacemaker
License: Apache License 2.0
Chef cookbook for managing pacemaker on RHEL
Home Page: https://supermarket.chef.io/cookbooks/pacemaker
License: Apache License 2.0
One of the main "problems" with this cookbook that really isn't addressed in the documentation is the issue of ordering.
Lets say you have a 3 node cluster (node1[master],node2[slave],node3[slave]) that you want to control. Before you can run any of the pacemaker::cluster_create scripts on node1, both node2/3 will have to have had the pacemaker::node_prepare recipes run against them. Any deviation from this ordering will cause failures in the chef runs.
Also, the various providers should really only be run against node1 in the cluster, as if you try to run them against node2/3 before the cluster creation is complete you will get errors in your chef run.
It would be ideal if there were information stored in some data bag or something that could be modified from within the recipes to inform the master that they've been successfully setup so the node_prepare or any primitive etc provider don't try and run until all "slave" nodes within the cluster have been setup.
This cookbook is unusable without some hint as how to setup the vault as well as listing it as a requirement.
Having the hostname added to the /etc/hosts localhost entry confuses corosync. Added a resource to manage the localhost entry, but would like to see if there is a better pattern to deal with this.
The code in question is here:
https://github.com/target/pacemaker-cookbook/blob/2d8e2234b099e366e0be433ff731c20d85067ed0/recipes/node_prepare.rb#L29-L35
Property resources
of resource pacemaker_group
overwrites an existing method. A different name should be used for this property.
/var/chef/cache/cookbooks/pacemaker/resources/group.rb:
17: # limitations under the License.
18: #
19:
20: actions :create, :delete
21: default_action :create
22:
23: attribute :name, kind_of: String, name_attribute: true
24>> attribute :resources, kind_of: Array, required: true
"""""""""""""
Chef user resource didn't deal with shadow password hash very well. Need to make a function or possible extend the user resource.
Maybe related to something like this:
https://tickets.opscode.com/browse/CHEF-4976
The code in question is here:
https://github.com/target/pacemaker-cookbook/blob/2d8e2234b099e366e0be433ff731c20d85067ed0/recipes/node_prepare.rb#L45-L49
The Testing section calls out ChefDK >= 0.10.0
as the only requirement:
─ chef -v
Chef Development Kit Version: 0.10.0
chef-client version: 12.5.1
berks version: 4.0.1
kitchen version: 1.4.2
I have a different library for net-ssh that appears to take precedence in Gem Load order
╰─ chef exec rspec
/opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/specification.rb:2273:in `check_version_conflict': can't activate net-ssh-3.0.2, already activated net-ssh-2.9.2 (Gem::LoadError)
There are other dependencies for the older net-ssh
library.
Thoughts?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.