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