[VCP SOAP API] - Ansteuerung der API per bash für FailOverIP

  • Hallo Leute,


    Erstmal muss ich sagen, dass ich froh bin hier bei Netcup zu sein. Die Qualität und der Service, im Hinblick auf Mitbewerber wie "S...o", ist unschlagbar. Mittlerweile habe ich bereits 5 Server hier laufen - und die laufen auch wirklich ;).
    Ich suche schon seit Wochen nach einer Lösung für mein Problem. Netcup hat seit Ende Februar endlich eine FailOverIP im Angebot. Leider sind die Hilfen zur Soap Api im Wiki mehr als knapp bemessen. Insbesondere fehlt noch immer ein grobes Beispiel-Script für die Benutzung der FailOverIP. Auch in den Weiten des WWW sind nur begrenzt Antworten zu finden für meine (doch recht simplen) Anforderungen.


    Grundlegend sieht es bei mir wie folgt aus:
    Anfragen -> LoadBalancer1 (haProxy)


    |


    ---------------- Server 1


    ---------------- Server 2


    ---------------- Server 3


    |


    LoadBalancer2 (haProxy)



    Mit Hilfe einer IPV4 Failover IP möchte ich ich ein zeitnahes Umschalten des LB´s, im Falle eines Ausfalls, ermöglichen, OHNE dass die FailOver IP manuell im VCP umgestellt werden muss. Die Prüfung auf Erreichbarkeit sollen unabhängig LB1 und LB2 durchführen. Nun läuft auf beiden Servern kein PHP, daher der Gedanke das Ganze über ein bash-Script zu realisieren. Dieses soll dann für einen Cron-Job verwendet werden.


    Folgenden Ansatz habe ich finden können:

    Code
    1. curl -H "Content-Type: text/xml; charset=utf-8" -H "SOAPAction:" -d @your_soap_request.xml -X POST https://www.vservercontrolpanel.de:443/WSEndUser?xsd=1


    In der Datei "your_soap_request.xml" müsste sich dann der Request befinden.


    Laut Informationen des Supports sind folgende Werte erforderlich:
    changeIPRouting.loginName:
    changeIPRouting.password:
    changeIPRouting.routedIP:
    changeIPRouting.routedMask:
    changeIPRouting.destinationVserverName:
    changeIPRouting.destinationInterfaceMAC:


    Und jetzt sind die Profis gefragt, denn genau an dieser Stelle komme ich nicht mehr weiter. Vielleicht lesen dies auch die Entwickler der VCP API ;). Bisher musste ich mit SOAP noch nichts veranstalten. Hier fehlen leider praktische Beispiele in der Wiki. Es wäre schade, wenn man eine FailOverIP nicht zum eigentlichen Zweck der Ausfallsicherheit und Verfügbarkeit im Sinne einer unterbrechungsfreien Umschaltung verwenden könnte. Vielleicht kennt jemand auch einen eleganteren Weg, um das VCP anzusteuern. Ich hoffe ich bin mit meinem Problem nicht so ganz allein, wie ich mich gerade fühle?! 8)


    Ich würde mich über Anregungen und Ideen sehr freuen :thumbup:, also besten Dank im Voraus!

  • Hallo,

    curl -H "Content-Type: text/xml; charset=utf-8" -H "SOAPAction:" -d @your_soap_request.xml -X POST https://www.vservercontrolpanel.de:443/WSEndUser?xsd=1
    In der Datei "your_soap_request.xml" müsste sich dann der Request befinden.

    das stimmt soweit. Das einzige was dir fehlt ist die Datei your_soap_request.xml. Diese sollte so aussehen:



    Die entsprechenden Daten musst du noch einsetzen. Als Antwort bekommst du nach etwas warten folgendes:


    XML
    1. <?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:changeIPRoutingResponse xmlns:ns2="http://enduser.service.web.vcp.netcup.de/"><return>true</return></ns2:changeIPRoutingResponse></S:Body></S:Envelope>


    Viele Grüße aus Karlsruhe

  • Hey qu_gomer,


    ich dachte schon ich bin mit meinem Anliegen ganz allein :thumbup: . Das war genau der richtige TIP und ich habe es auch gleich ausprobiert, und in der Tat, es funktioniert jetzt wie gewünscht ;). Manchmal ist die Antwort simpel, wenn man sie denn kennt :thumbup: .


    Vielen vielen Dank für den Profi-TIP, der so ausschaut, als könnte er von einem Netcup-Entwickler stammen?! :D .


    Wie kann man sich erdenklich zeigen?
    Beste Grüße aus Waiblingen.

  • Guten Tag.
    Erst mal Danke für den wirklich sehr hilfreichen Thread. Aktuell stehe ich vor der gleichen Herausforderung und habe das ganze jetzt mal bei mir nach gebaut.


    Aber anscheinend übersehe ich etwas. Beim Aufruf des XML Files durch Curl bekomme ich folgende Fehlermeldung

    Code
    1. ./switch.sh
    2. <?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope"><faultcode>S:Server</faultcode><faultstring>validation error</faultstring></S:Fault></S:Body></S:Envelope>v1234567890:~ #




    Woher der Validation Error kommt ist für mich jetzt nicht wirklich nachvollziehbar.


    Das XML File sieht wie oben beschrieben aus.




    Für eine mögliche Anregung wäre ich wirklich dankbar.


    Mit freundlichen Grüßen. :-)

  • Grüß dich BerndH


    also ich hab das damals so gemacht (und es läuft noch immer).


    1. XML Datei erstellt



    Diese XML wird dann von einer sh-Datei ausgeführt.


    Code
    1. curl -H "Content-Type: text/xml; charset=utf-8" -H "SOAPAction:" -d @test.xml -X POST https://www.vservercontrolpanel.de:443/WSEndUser?xsd=1


    Läuft alles ohne Probleme. Evtl. musst du bei deiner XML bei dem vServername nur die Leerzeichen wegnehmen ;).


    Deine Fehlermeldung "validation error" könnte auch auf Grund falscher Zugänge ausgegeben werden. Für die WebService VCP Soap API musst du separat ein Passwort vergeben, hast du das eingestellt und vergeben? Ansonsten kann man die API nicht ansteuern.


    Grüße
    Daniel

  • Hallo.


    Hab es grad selbst fest gestellt... typisches Layer 8 Problem. Hab eben kein Passwort erstellt für den Webservice.
    Nach dem ich das Passwort erstellt hab, klappt es jetzt auch mit der Nachbarin. :-)


    Vielen Dank und auch beste Grüße