voxpupuli/puppet-corosync

RHEL 6.4: crm replaced by pcs

Closed this issue · 19 comments

kbon commented

See https://bugzilla.redhat.com/show_bug.cgi?id=878508 .

Apparently RedHat chose to remove the crm command from their RHEL 6.4 release in favor of pcs. This Puppet module relies on crm for all operations, which means this module is currently broken on RHEL 6.4 based systems e.g. CentOS 6.4.

Solutions:

I would prefer the first option as this is probably the best supported way forward.

Agree, although implementing pcs means writing most everything from scratch. I knew this was going to happen but have not had time to look into it. For now I'm using the upstream crmsh repositories on both CentOS and RHEL.

@beddari : does that work for you? Even with upstream crmsh to substitute for crm commands, I get stuck where simple things like VIPs are continuously re-generated. Has syntax changed in those crm commands as well?

Are there plans on supporting the 'default' pcs or are you happy with the crmsh workaround?

I would agree that I was bit by this RHEL change and would greatly appreciate help in updating the module. I've tried modifying the code to handle both crm and pcs cleanly, but don't really see a way for them to coexist.

+1 for this. I've just got bitten by it also. For now i'll look at using the upstream crm repos, but pcs support would be a great plus for this module.

This wasn't a RedHat packaging decision, it was the decision of the pacemaker project and the maintainer of crm. I have a blog rant about this (sorry for the self plug) https://joshua.hoblitt.com/rtfm/2013/05/pacemaker_1_1_8_no_longer_includes_the_crm_shell/

I just tried this module for the first time on EL6.x. Has anyone started work on a pcs based provider?

Anyone got an idea where I could find a crmsh package these days ?

I think better would be to output the resources to be configured as XML, and then load them with cibadmin. This avoids the need to maintain both crm and pcs providers, and also uses the same data format used when the existing resources are parsed.

Both crm and pcs are wrappers around cibadmin.

I started a pcs provider for just cs_primitive a while ago but haven't had time to pick it up again. It's all @hunner's fault for ducking talking to me about this at the puppetconf devday. :) This is as far as I got with it.

how do you guys work around this module not working from RHEL/CentOS/SL 6.4 and up ?
or has someone tried to merge jhoblitt's work on a pcs provider into current corosync repo ?

arghh.. not going to be easy to get corosync going it seems, using a generic puppet module that is..

@KlavsKlavsen using the crmsh package worked for me. bit hackish, but it means this does work at least in the mean time.

https://github.com/roidelapluie/puppetlabs-corosync/tree/pcs

I started working on a pcs based provider

I am hitting a problem: there is no push command anymore, so you need to even modify ressources individually, or modify the whole cluster.

kbon commented

We also use the crmsh package. Fine by me as long as it works, though I agree a PCS provider would be preferred.
@roidelapluie: with push command, do you refer to crm configure load update in all flush methods, or the shadow CIB functionality?

crm configure load update

You can find PCS version of that module at http://github.com/roidelapluie/puppetlabs-corosync

There still seems to be a lot of problems using this module with pcs / CentOS 7, for example the module doesn't seem to be able to read that resources are properly setup with pcs so it tries to re-create them every puppet run.

I plan to start working on el7 in the next couple of weeks/months. I will fix the issues I find at that time.

Closing ths in favour of #162