Beiträge von michaeleifel

    Moin,

    bin derzeit in Recherche für hidden primary / secondary dns.


    Ich habe mich durch das CCP geklickt, allerdings nicht fündig geworden:


    - Wie kann ich den Zonentransfer von Netcup auf eine Ziel IP erlauben?


    Hatte paar Threads gefunden (https://forum.netcup.de/admini…ghlight=primary#post99407) bspw, aber keine Antwort.


    He.net habe ich schon als Slave im Einsatz, finde bei denen aber auch nicht wie ich AXFR bei einer Master Zone erlauben kann. Jemand Tipps für mich?

    Mahlzeit,


    das letzte Mal mit CheckMK vor ca. 2 Jahren gearbeitet. Was monitorst du denn so alles?

    Icinga2 ist ja "nur" ein Monitoring Framework, von Haus aus ist da checkmk besser. Allerdings war ich in checkmk oft an dem Punkt angelangt wo ich dann doch wieder selber Pakete "backen" muss und die GUI fand ich sehr unübersichtlich. Die Appliance ist ein netter Ansatz, allerdings mag ich es zu wissen was so alles darin läuft und konfiguriert ist. Und zudem entspricht sie nicht meinem "Ansible" Ansatz für Verwaltung.


    Ich habe was Zeit in Icinga2 und Automatisierung gesteckt, Hosts werden per Ansible / Kubernetes Daemonset ohne zutun registirert. Dies beinhaltet den Austaisch der Zertifikate, feststellen was die Maschine so ist (OS, Memory, Disk, Loadwerte werden automattisch ermittelt etc.) (inkl. Autoscaling in AWS), die Master laufen im HA Modus und koordinieren sich selber. Das heßt Konfig gegen master1 testen, der 2. monitort weiterhin und erst wenn auf dem 1. alles OK ist wird die Konfig automatisch zum anderen übertragen und der 1. monitort in der Zeit. Das fehlt mit bspw an Prometheus sehr.


    integriert ist das ganze dann mit Matrix / Email als Alarmierung. Im Anhang mal ein Beispiel von paar Hostschecks. Die restlichen checks werden von icinga2 containern gemacht, da wird so ziemlich alles gecheckt was man möchte, webseiten status, zertifikate die ablaufen, ob die Netcup SOAP erreichbar ist und Status 200 meldet etc.

    Auch die Master checken sich gegenseitig. Prometheus spielt an der Stelle den Wächter und sammelt die sonstigen Metriken im Cluster so ein.


    Von extern wird das ganze noch von einem Monitoring Dienst gegengeprüft, roundabout sind es ca. 1000 Checks gegen 10 Nodes.



    Gruß,

    Michael

    Meine beste idee wäre die Stacks per Systemd service zu starten und da dann depedency zu setzen, wenn sie in mehreren Dateien liegen.


    Oder im Container warten bis der notwendige Service healthy ist.

    Das wird leider nicht funktionieren. Gitea startet seinen eigenen Webservice, den wirst du so nicht unter einem Webhosting Produkt starten können. Dazu braucht es ja auch einen sshd Service. Für Gitea wirst du um einen eigenen Server nicht herum kommen.

    Das war die Stelle die ich übersehen habe ;)


    Schau dir doch mal https://codeberg.org an. :)

    Danke, bin ich auch schon drüber geflogen


    Nicht zwingend - Gitea kommt auch ohne eigenen SSH Server aus, funktioniert auch über das OpenSSH vom Betriebssystem oder vollständig über http ohne ssh.

    Allerdings besteht Gitea aus einer Go Binary und ist kein PHP / Python - daher funktioniert es nicht auf dem Webhosting.


    Wenn auf dem Webhosting Git allerdings zur Verfügung steht, kannst du über SSH das auch nutzen - ohne jegliche Klicki-Bunti Oberfläche oder Git-Server.

    Ansonsten gibt es noch das gute alte Github oder Gitlab.

    OK, das ist mir dann etwas zu viel Frickelei mit gitea... Danke für den Input.


    Eigentlich soll es "nur" nen Zwischenspeicher für meine Ansible Provisioning Playbooks sein die vom Debian Preseed beim erstellen von Maschinen aufgerufen werden. Also entweder minimale gui oder was shell basiertes. Hat da jemand evtl jemand nen gutes Skript bereits in Benutzung?

    Betreibt jemand zufällig eine Gitea Instanz auf dem Webhosting oder kennt sich sehr gut aus und kann mir paar Kickoff Tipps geben?


    Normalerweise nutze ich ja Ansible / Docker / Kubernetes für Setups, aber brauche aktuell was Server unabhängiges wo ich paar private Ansible Playbooks hosten kann und wollte dafür das Webhosting Paket "missbrauchen".


    Danke

    Ich hoffe es ist OK dass ich hier einen neuen Beitrag verfasse anstatt den alten anzupassen.


    Heute morgen war es wieder soweit, ich hatte eine Deadlock Kombination zwischen 2 Servern gehabt, die im selben Moment meinten Master werden zu müssen. Zwar haben sie sich innerhalb von 1 sek geeinigt, der SOAP Call war allerdings trotzdem schon unterwegs. Aufgrund dessen habe ich weitere Anpassung im Keepalived Setup vorgenommen und ein rudimentäres Shellskript geschrieben.



    Es deckt rudimentär meine Funktionen ab die ich brauche und hat zumindest ein paar simple Checks (netcup API / URL da) drin statt nur einen einfach Curl Request. Zudem habe ich den Parameter "notify_master_rx_lower_pri" ebenfalls auf das Skript angesetzt. Allerdings kann ich die Aussage:


    Zitat

    Bei einer MAC von 00:00:00:00:00:00 wird die IP aus der Routingtabelle gelöscht und diese muss vor einer weiteren Verwendung erst neu zugeordnet werden. Beim Löschauftrag muss als destinationVserverName der Server angegeben werden, auf den die IP aktuell geroutet ist.

    von https://www.netcup-wiki.de/wik…rvice#Web_Service_Methods noch nicht bestätigen. Trigger ich den entsprechenden SOAP Call auf einer Node, welche aktuell nicht die FloatingIP hat, so wird diese vom anderen Server getrennt. Für Anregungen / Ideen bin ich weiterhin offen.


    Die entsprechenden referenzierten XML Files werden per Ansible (Vault) mit den Parametern gefüttert. Finde ich "persönlich" lesbarer als InlineCode.


    Gruß

    Die Problematik kenne ich. Darüber bin ich damals auch bei meinen Keepalived Setups gestolpert. Was aber helfen könnte, wäre folgende Option


    ```
    preempt_delay 60

    ```


    Das sollte das zu häufige "Flappen" des Masters etwas abmildern. Bei Bedarf noch etwas höher setzen.

    Aus meiner Erfahrung gewinnt immer der erste SOAP Befehl, solange dieser noch "in Arbeit" ist. Bei mir hatte das damals immer so um die 30 Sekunden gedauert, bis die Failover IP Adresse erfolgreich zugewiesen wurde. Wenn dann zwischenzeitlich Keepalived die Floating IP selbst wieder gewechselt hat, hat sie aber trotzdem auf den falschen Server gezeigt und der Service war schlussendlich nicht erreichbar.


    Vielen Dank für den Input. Bei mir verhielt es sich wegen der IP ähnliich, weswegen ich mittendrin sogar mit Dummy IPs im VRRP Service gearbeitet hatte. Hab mein Setup gestern mal entsprechend angepasst und werde berichten.


    Falls jemand Interesse hat kann ich dass mal auf Github packen. Dass ganze ist momentan ein Helm Chart was ich aus einem anderen Github Projekt für Netcup leicht angepasst habe. Die Informationen welche für die SOAP Kommunikation noch notwendig sind (vServer, MAC Adresse) werden vom Container selbst beim Start vom Hostsystem gelesen.

    Hallo zusammen,


    ich bastele aktuell an meinem Keepalived Setup wieder. Die Healthchecks etc. laufen bereits alle selber und alle notwendigen Checks sind in Verwendung.


    Leider hab ich ein paar Dinge entdeckt welche ich noch gerne verbessern würde und wollte mal fragen ob jemand mir da evtl. Tipps geben kann

    oder man sich zum Setup austauschen kann. Auch für Hinweise in der Dokumenation bin ich dankbar.:)



    Aktuell hab ich folgendes Setup:

    - Jede Node hat Healthchecks wie bspw Kubernetes API Erreichbarkeit, Ingress Status, Healthchecks vom Monitoringagent

    - Jede Node hat bereit die notwendingen FloatingIPs konfiguriert, da ich Probleme hatte wenn ich diese dynamische von Keepalived verwalten lasse

    - Alle Nodes sprechen per CloudVLAN miteinander und einigen sich, wer der Master ist

    - Beim Übergang zum Masterstate führe ich dann per Curl den SOAP Request aus welche die Zuweisung der IP auf diese Node dann vornimmt (notwendige Informationen sind automatisiert, dynamisch über System Informationen ausgelesen)


    Aktuelle "Nichtigkeiten":

    - Curl Befehl wird ausgeführt (/usr/bin/curl -H 'Content-Type: text/xml; charset=utf-8' -H 'SOAPAction:' -d @/etc/keepalived/netcup_failover.xml -X POST https://www.servercontrolpanel.de:443/WSEndUser)

    - Dieser gibt innerhalb von 1 Sek bereits einen Statuscode zurück, weswegen aus keepalived sicht der prozess abgeschlossen ist

    - Innerhalb der nächsten 10 Sekunden kommt es zu einem erneuten Masterstate wechsel, weswegen die nächste Node den Curl Befehl absetzt



    Wie kann ich bspw ein skript formulieren, welches erst wenn die FloatingIP der Node "wirklich" zugewiesen ist terminiert?:/


    Und wie handelt die Netcup SOAP diese Befehle?

    - gewinnt automatisch der letzte Befehl?:?:

    - werden weitere Anweisungen der IP Zuweisung blockiert wenn der Vorgang noch nicht abgeschlossen ist?:?:



    Gruß

    Als aktuelles Beispiel von mir selber:

    - 3 Debian 10 RS 4000 Maschinen melden zum selben Zeitpunkt eine Störung des DNS Resolvers beim Versuch google.de aufzulösen:

    - IPs und DNS Resolver sind statisch konfiguriert

    - Nur 1 von 3 DNS Resolver ist gestört gewesen


    resolver.png


    Nächster Check war dann wieder grün.