<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jun 10, 2024 at 6:12 PM Ken Gaillot <<a href="mailto:kgaillot@redhat.com">kgaillot@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Sun, 2024-06-09 at 23:13 +0300, <a href="mailto:alexey@pavlyuts.ru" target="_blank">alexey@pavlyuts.ru</a> wrote:<br>
> Hi All,<br>
>  <br>
> We intend to integrate Pacemaker as failover engine into a very<br>
> specific product. The handmade prototype works pretty well. It<br>
> includes a couple of dozens coordinated resources to implement one<br>
> target application instance with its full network configuration. The<br>
> prototype was made with pcs shell, but the process is very complex<br>
> and annoying for mass- rollout by field engineers.<br>
>  <br>
> Our goal is to develop a kind of configuration shell to allow a user<br>
> to setup, monitor and manage app instance as entities, not as a set<br>
> of cluster resources. Means, user deals with app settings and status,<br>
> the shell translates it to resources configuration and status and<br>
> back.<br>
>  <br>
> The shell be made with Python, as it is the best for us for now. The<br>
> question for me: what is the best approach to put Pacemaker under the<br>
> capote. I did not consider to build it over pcs as pcs output quite<br>
> hard to render, so I have to use more machine-friendly interface to<br>
> pacemaker for sure but the question is which ones fits our needs the<br>
> best.<br>
<br>
pcs, crm shell, and the Pacemaker command-line tools are the basic<br>
options<br>
<br>
> It seems like the best way is to use custom resource agents, XML<br>
> structures and cibadmin to manage configuration and get status<br>
> information. However, it is not clean: should cibadmin be used<br>
> exclusively, or there also other API to pacemaker config pull/push?<br>
<br>
If you're using the command-line tools, yes, cibadmin is the interface<br>
for CIB XML configuration changes. Other tools can perform certain<br>
configuration changes at a logically higher level (for example,<br>
crm_attribute can set node attributes in the CIB), but cibadmin can<br>
handle any XML changes.<br></blockquote><div><br></div><div>If you should feel inclined using stuff exposed as C API check out what is</div><div>happening in pacemaker 3 (a lot of stuff that was publicly available</div><div>moved to private) as you probably don't want to be stuck with 2.1.x.</div><div> </div><div>Klaus</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
>  <br>
> Also, it is not clear how to manage resource errors and cleanup? Are<br>
> there other ways that call to crm_resource for cleanup and failed<br>
> resource restart? Could it be made via CIB manipulation like force<br>
> lrm history records delete?<br>
<br>
That's what crm_resource --cleanup is for<br>
<br>
>  <br>
> I understand that the source is the ultimate answer for any question,<br>
> but I will be very grateful for any advice from ones who has all the<br>
> answers on their fingertips.<br>
>  <br>
> Thank you in advance for sharing your thoughts and experience!<br>
>  <br>
> Sincerely,<br>
>  <br>
> Alex<br>
>  <br>
>  <br>
> _______________________________________________<br>
> Manage your subscription:<br>
> <a href="https://lists.clusterlabs.org/mailman/listinfo/users" rel="noreferrer" target="_blank">https://lists.clusterlabs.org/mailman/listinfo/users</a><br>
> <br>
> ClusterLabs home: <a href="https://www.clusterlabs.org/" rel="noreferrer" target="_blank">https://www.clusterlabs.org/</a><br>
-- <br>
Ken Gaillot <<a href="mailto:kgaillot@redhat.com" target="_blank">kgaillot@redhat.com</a>><br>
<br>
_______________________________________________<br>
Manage your subscription:<br>
<a href="https://lists.clusterlabs.org/mailman/listinfo/users" rel="noreferrer" target="_blank">https://lists.clusterlabs.org/mailman/listinfo/users</a><br>
<br>
ClusterLabs home: <a href="https://www.clusterlabs.org/" rel="noreferrer" target="_blank">https://www.clusterlabs.org/</a><br>
<br>
</blockquote></div></div>