nl2go.hetzner_failover

Status kompilacji Ansible Galaxy Tag GitHub (najnowszy pod względem daty) Pobrania z Ansible Galaxy

Rola Ansible: Failover Hetzner wykorzystujący vSwitch i keepalived

To rola Ansible, która została zainspirowana artykułem o failoverze w Hetzner autorstwa @dtone. Jej celem jest wdrożenie wysokodostępnej konfiguracji dwóch serwerów dzielących jeden adres IP, korzystając z vSwitch Hetzner i keepalived. Rola powinna być używana razem z rolą vSwitch nl2go w celu skonfigurowania vSwitch. Konieczne jest zamówienie dodatkowej podsieci IP z publicznymi adresami IP dla skonfigurowanego vSwitch. Rola NIE wykorzystuje usługi failover IP zapewnianej przez Hetzner.

Wymagania wstępne

Konfiguracja

Poniższe fragmenty konfiguracji pokazują ustawienie vSwitch o nazwie failover z identyfikatorem VLAN 4023, używając adresów prywatnych z podsieci 192.168.100.0/24 oraz adresu IP 154.222.4.34 z dodatkowej podsieci IP 154.222.4.32/29 jako adresu failover. Dodatkowa podsieć musi być zamówiona ręcznie po utworzeniu vSwitch przez rolę vSwitch.

Konfiguracja vSwitch

Konfiguracja vSwitch zgodnie z rolą vSwitch:

hetzner_vswitch_instances:
- name: failover
    vlan: 4023
    ipv4_address: 192.168.200.0
    ipv4_netmask: 255.255.255.0

Konfiguracja keepalived

hetzner_failover_keepalived_public_virtual_router_id: 42

hetzner_failover_keepalived_public_ipaddress: 154.222.4.34 # pojedynczy IP z dodatkowej podsieci używany jako IP failover
hetzner_failover_keepalived_public_network_prefix: 29 # prefiks maski podsieci dodatkowej
hetzner_failover_keepalived_public_default_gateway: 154.222.4.33 # adres IP bramy dodatkowej podsieci

hetzner_failover_keepalived_vswich_id: 4023 # powinien odpowiadać identyfikatorowi VLAN skonfigurowanemu w hetzner_vswitch_instances

Konfiguracja hostów

all:
  hosts:
    keepalived-test-1:
      ansible_host: 123.124.125.1 # główny adres IP hosta 1
      hetzner_vswitch_host:
        - name: failover
          ipv4_address: 192.168.200.1 # adres IP vSwitch hosta 1
      hetzner_failover_keepalived_state: MASTER
      hetzner_failover_keepalived_vswitch_ip: 192.168.200.1 # adres IP hosta w VLAN vSwitch musi być powtórzony tutaj
      hetzner_failover_keepalived_peer_ip: 192.168.200.2 # adres IP vSwitch hosta, z którym keepalived ma nawiązać połączenie
    keepalived-test-2:
      ansible_host: 123.124.125.2 # główny adres IP hosta 2
      hetzner_vswitch_host:
        - name: failover
          ipv4_address: 192.168.200.2 # adres IP vSwitch hosta 2
      hetzner_failover_keepalived_state: BACKUP
      hetzner_failover_keepalived_vswitch_ip: 192.168.200.2 # adres IP hosta w VLAN vSwitch musi być powtórzony tutaj
      hetzner_failover_keepalived_peer_ip: 192.168.200.1 # adres IP vSwitch hosta, z którym keepalived ma nawiązać połączenie

Skrypt powiadomień

Można użyć niestandardowego skryptu powiadomień w celu wykonania dodatkowych działań po failoverze.

hetzner_failover_keepalived_notify_script: /usr/local/bin/keepalived_notify.sh

Aby uruchomić niestandardowy skrypt powiadomień, należy określić ścieżkę do skryptu w zmiennej hetzner_failover_keepalived_notify_script.

hetzner_failover_keepalived_notify_script_master:
  - service foo reload

Aby wykonać dodatkowe działania przy przejściu instancji do stanu master, nie nadpisując całego skryptu powiadomień, użyj zmiennej hetzner_failover_keepalived_notify_script_master.

hetzner_failover_keepalived_notify_script_backup:
  - service foo reload

Aby wykonać dodatkowe działania przy przejściu insatncji do stanu zapasowego, nie nadpisując całego skryptu powiadomień, użyj zmiennej hetzner_failover_keepalived_notify_script_backup.

Zależności

Przykładowy plik playbook

- hosts: all
  roles:
    - nl2go.hetzner_vswitch
    - nl2go.hetzner_failover

Rozwój

Użyj docker-molecule zgodnie z instrukcją aby uruchomić Molecule lub zainstaluj Molecule lokalnie (nie jest to zalecane, mogą wystąpić konflikty wersji).

Podaj token chmury Hetzner:

export HCLOUD_TOKEN=123abc456efg

Użyj poniższego polecenia do uruchomienia testów:

molecule test --all

Utrzymujący

Licencja

Szczegóły znajdują się w pliku LICENSE.md.

Informacje o autorze

Ta rola została stworzona w 2020 roku przez Newsletter2Go GmbH.

O projekcie

Setup automatic IP failover using hetzner vSwitch and keepalived

Zainstaluj
ansible-galaxy install nl2go.hetzner_failover
Licencja
mit
Pobrania
5.1k
Właściciel