In Anlehnung an das Thema Failover IP und Ansteuerung der SOAP Api über den Corosync Pacemaker Cluster.
Die entscheidende Anregung habe ich in diesem Thread im Betcup Forum gefunden.
Hier noch mal meinen herzlichen Dank noch an die Threadteilnehmer.
Daran angelehnt habe ich mir folgende Prozedur zusammen gebastelt, die auch funktioniert.
Hier beschreibe ich nur die Konfiguration wie man Pacemaker beibringt das Er die IP schalten und verwalten soll. Eine weitergehende Clusterkonfiguration beschreibe ich hier nicht. Nur die von mir verwendete Methode um das ganze zum fliegen zu kriegen. Eine weitergehende Clusterkonfiguration, ist in dem Thread nicht vorgesehen.
Schritt 1
Grundsätzlich kann die Prozedur mit jedem Pacemaker Cluster umgesetzt werden und ist nicht distributionsabhängig.
Ein Sonderfall ist CentOS. Beim Einsatz von CentOS müssen die Primitives und Gruppen mit der PCS Shell umgesetzt werden.
Schritt 1
Anlegen folgender Directories auf allen Maschinen
Schritt 2
Anlegen der XML Datei mit der Konfiguration um die SOAP API anzusprechen.
<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://enduser.service.web.vcp.netcup.de/">
<SOAP-ENV:Body>
<ns1:changeIPRouting>
<loginName>12345678</loginName>
<password>daskundenpasswortfürdenwebservice</password>
<routedIP>1.2.3.4.</routedIP>
<routedMask>32</routedMask>
<destinationVserverName>v123456789012</destinationVserverName>
<destinationInterfaceMAC>co:ff:ee:00:00:001</destinationInterfaceMAC>
</ns1:changeIPRouting>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Alles anzeigen
Schritt 3
Anlegen des Systemd Services
[Unit]Description=Netcupfailoverip
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/curl -H "Content-Type: text/xml; charset=utf-8" -H
"SOAPAction:" -d @/etc/netcupip/netcupip.xml -X POST
https://www.vservercontrolpanel.de:443/WSEndUser?xsd=1
[Install]
WantedBy=multi-user.target
Alles anzeigen
[size=10]
Schritt 4
Prüfen ob Systemd das Unit File findet...
Schritt Fünf
Konfigurieren des Dienstes im Cluster
Die Bezeichnung res-netcupip steht nur für den Namen Resource/primitive systems:System-netcupip für den Aufruf des Dienstes durch das Clusterframework.
Schritt Sechs:
primitive res-virtual-ip IPaddr2 \\
params ip=46.1.2.3 cidr_netmask=32 lvs_support=false nic=eth0 \\
op start interval=0 timeout=600 \\
op stop interval=0 timeout=600 \\
op monitor interval=10 timeout=240 \\
meta target-role=Started
Die erzeugten Ressourcen packen wir noch in eine Gruppe.
Wenn das ganze abgeschlossen ist, sollte der Output auf dem Cluster folgendermaßen
aussehen.
Resource Group: rg-network
res-netcupip (systemd:systemd-netcupip): Started vserver1
res-virtual-ip (ocf::heartbeat:IPaddr2): Started vserver1
Have fun!