Skip to content

Rolle | Routing für die VMs

Aufgaben

Zugehörige MRs

Bemerkungen

Die Herausforderung hier ist, dass die Schritte an VPN-Server und -Clients "über Kreuz" durchgeführt werden müssen. Soll heißen: Wenn man es sauber machen will, müssten die Werte, welche während der Ausführung der Server-Rolle anfallen, in der Ausführung der Cient-Rolle nutzen umgekehrt. Dazu müsste man innerhalb eines Playbooks Rollen an verschiedene/einzelne Ziel-Systeme delegieren, was aus meiner Sicht das Konzept eines Playbooks zerstören würde.

Ein Weg das zu umgehen ist allen Rollen so von einander zu entkoppeln, dass keine Werte anfallen, die im Anschluss noch anderweitig verarbeitet werden müssen. Dafür habe ich keinen anderen Weg gesehen, als bestimmte Variablen/Angaben in den anderen Rollen abrufbar zu machen, die dort eigentlich nicht hin gehören. Das betrifft insbesondere private keys. In der Theorie wäre das ein NoGo, aber in der Praxis sollte das keine Schwierigkeiten bereiten, da die keys selbst nicht gespeichert werden, sondern nur bei der Ausführung des Tasks zum Einsatz kommen.

Ich bin offen für andere Vorschläge.

Beispiel für entsprechende Playbooks

- hosts: server
  roles:
  - role: vpn_server_setup
    cfg_vpn_server_setup_overrides:
      label: test
      private_key: ICQMss0UqUoBTzsJs+uISDFXZu4ZoHQNACUG3XxAdXI=
      address_space: 10.0.0.1/24
      immediate_clients:
      - name: charly
        address: 10.0.0.4
        public_key: qKIe5gdswkCb6ZW5LmE6RQZEsoBxO7apAJbJYg8qTC8=
        preshared_key: yHB3+AoTUTNGOM06CY+IeRHJXnQkUv2CfvBwnBT8i1s=
      - name: dorothy
        address: 10.0.0.5
        public_key: qvWEtFD34oJSNPuTknokxKymSatpn5iOKNskvvxvdys=
        preshared_key: cLPR7N1MgLq5N3RAnczMHVaU2ZAEH6XYQQTUd9hhS38=
  - role: vpn_server_augment
    cfg_vpn_server_augment_overrides:
      label: test
      name: alice
      preshared_key: 2PQlqwKxlNENjX0UWHZVTawEV78ugFxnxfL7K67onFg=
      private_key: CI4SB5TrBD9oAC3/9o6LgBCi6zeHSWUl0+ly8Vhbt3U=
      address: 10.0.0.2
  - role: vpn_server_augment
    cfg_vpn_server_augment_overrides:
      label: test
      name: bob
      preshared_key: GDvqEV/jB3EmQEnOwKU2kJrozSaEQNqcc4cJgTegw0E=
      private_key: EDu3xo7eorgoR2WGtGtGzdLOMreEgv0BaY59VibRZW0=
      address: 10.0.0.3
- hosts: machine_of_alice
  roles:
  - role: vpn_client
    cfg_vpn_client_overrides:
      label: test
      name: alice
      address: 10.0.0.2
      preshared_key: 2PQlqwKxlNENjX0UWHZVTawEV78ugFxnxfL7K67onFg=
      private_key: CI4SB5TrBD9oAC3/9o6LgBCi6zeHSWUl0+ly8Vhbt3U=
      server_private_key: ICQMss0UqUoBTzsJs+uISDFXZu4ZoHQNACUG3XxAdXI=
      server_public_address: 192.168.1.102
- hosts: machine_of_bob
  roles:
  - role: vpn_client
    cfg_vpn_client_overrides:
      label: test
      name: bob
      address: 10.0.0.3
      preshared_key: GDvqEV/jB3EmQEnOwKU2kJrozSaEQNqcc4cJgTegw0E=
      private_key: EDu3xo7eorgoR2WGtGtGzdLOMreEgv0BaY59VibRZW0=
      server_private_key: ICQMss0UqUoBTzsJs+uISDFXZu4ZoHQNACUG3XxAdXI=
      server_public_address: 192.168.1.102
Edited by christian.frass

Merge request reports

Loading