aruhier.systemd_networkd
Ansible Rola: systemd_networkd
Rola Ansible do konfiguracji systemd-networkd.
Zmienne Roli
# połączenia
systemd_networkd_link: {}
# urządzenia sieciowe
systemd_networkd_netdev: {}
# sieci
systemd_networkd_network: {}
# czy rola musi zrestartować systemd-networkd, aby zastosować nową konfigurację?
systemd_networkd_apply_config: false
# włączyć lub nie systemd_resolved
systemd_networkd_enable_resolved: true
# usuń pliki konfiguracyjne pasujące do prefiksu
systemd_networkd_cleanup: false
systemd_networkd_cleanup_prefix: ''
systemd_networkd_cleanup_prefix_is_regex: false
Zależności
Brak
Przykład Playbooka
- Konfiguruj interfejs sieciowy
systemd_networkd_network:
  eth0:
    - Match:
      - Name: "eth0"
    - Network:
      - DHCP: "no"
      - IPv6AcceptRouterAdvertisements: "no"
      - DNS: 8.8.8.8
      - DNS: 8.8.4.4
      - Domains: "twoja.tld"
      - Address: "192.0.2.176/24"
      - Gateway: "192.0.2.1"
      - Address: "2001:db8::302/64"
      - Address: "fc00:0:0:103::302/64"
      - Gateway: "2001:db8::1"
Stworzy plik eth0.network w /etc/systemd/network/ i włączy
systemd-networkd oraz systemd-resolved.
Każdy klucz pod systemd_networkd_* odpowiada nazwie pliku do utworzenia
(.network w systemd_networkd_network, .link w systemd_networkd_link,
itd…). Każdy klucz pod nazwą pliku to sekcja udokumentowana w
systemd-networkd, która zawiera pary opcja: wartość. Każda
para jest następnie konwertowana do formatu opcja=wartość.
- Konfiguruj interfejs bondingu
systemd_networkd_netdev:
  bond0:
    - NetDev:
      - Name: "bond0"
      - Kind: "bond"
    - Bond:
      - Mode: "802.3ad"
      - LACPTransmitRate: "fast"
systemd_networkd_network:
  bond0:
    - Match:
      - Name: "eth*"
    - Network:
      - DHCP: "yes"
      - Bond: "bond0"
Utworzy interfejs LACP bond bond0, zawierający wszystkie interfejsy
zaczynające się od eth.
- Konfiguruj routowanie oparte na interfejsach
systemd_networkd_conf:
  route_tables:
    - Network:
        - RouteTable: "rtvlan10:10"
        - RouteTable: "rtvlan11:11"
systemd_networkd_netdev:
  netdev_bond0:
    - NetDev:
        - Name: bond0
        - Kind: bond
    - Bond:
        - Mode: active-backup
        - MIIMonitorSec: 0.1
        - UpDelaySec: 0.2
        - DownDelaySec: 0.2
        - LACPTransmitRate: fast
        - TransmitHashPolicy: layer2+3
  netdev_vlan10:
    - NetDev:
        - Name: netdev_vlan10
        - Kind: vlan
    - VLAN:
        - Id: 10
  netdev_vlan11:
    - NetDev:
        - Name: netdev_vlan11
        - Kind: vlan
    - VLAN:
        - Id: 11
  netdev_bridge_vm_vlan10:
    - NetDev:
        - Name: netdev_bridge_vlan10
        - Kind: bridge
  netdev_bridge_vm_vlan11:
    - NetDev:
        - Name: netdev_bridge_vlan11
        - Kind: bridge
systemd_networkd_network:
  # Interfejsy fizyczne
  eno3:
    - Match:
        - Name: eno3
    - Network:
        - Bond: bond0
  eno4:
    - Match:
        - Name: eno4
    - Network:
        - Bond: bond0
  bond0:
    - Match:
        - Name: bond0
    - Network:
        - Description: "Statyczny/nieskonfigurowany bond, dla eno3 & eno4"
        # Nie chcemy żadnego IP "na" bondzie
        - LinkLocalAddressing: "no"
        - LLDP: "no"
        - EmitLLDP: "no"
        - IPv6AcceptRA: "no"
        - IPv6SendRA: "no"
        - VLAN: netdev_vlan10
        - VLAN: netdev_vlan11
  network_interface_vlan10:
    - Match:
        - Name: netdev_vlan10
        - Type: vlan
    - Network:
        - Description: "Interfejs sieciowy na vlan10, podłączony do netdev_bridge_vm_vlan10"
        - Bridge: "netdev_bridge_vm_vlan10"
        - DHCP: "no"
        - DNS: &gw_vlan10 "10.0.10.1"
        - Address: "10.0.10.161/24"
        - DNS: *gw_vlan10
        - Gateway: *gw_vlan10
  network_interface_vlan11:
    - Match:
        - Name: netdev_vlan11
        - Type: vlan
    - Network:
        - Description: "Interfejs sieciowy na vlan11, podłączony do netdev_bridge_vm_vlan11"
        - Bridge: "netdev_bridge_vm_vlan11"
        - DHCP: "no"
        - DNS: &gw_vlan11 "10.0.11.1"
        - Address: "10.0.11.161/24"
        - DNS: *gw_vlan11
        - Gateway: *gw_vlan11
systemd_networkd_rt_tables:
  - id: 11
    name: rtvlan11
  - id: 20
    name: rtvlan20
systemd-resolved
Domyślnie ta rola zarządza /etc/resolv.conf i /etc/nsswitch.conf, aby używać
sterażera DNS oraz modułów NSS dostarczanych przez systemd-resolved.
To zachowanie można dezaktywować, ustawiając
systemd_networkd_symlink_resolv_conf oraz
systemd_networkd_manage_nsswitch_config na false, lub można zmienić
kolejność rozwiązywania. Domyślna konfiguracja używa domyślnej bazy
danych files i modułów systemd, gdzie to właściwe:
systemd_networkd_nsswitch_passwd: "files systemd"
systemd_networkd_nsswitch_group: "files systemd"
systemd_networkd_nsswitch_shadow: "files systemd"
systemd_networkd_nsswitch_gshadow: "files systemd"
systemd_networkd_nsswitch_hosts: "files resolve [!UNAVAIL=return] myhostname dns"
systemd_networkd_nsswitch_networks: "files dns"
systemd_networkd_nsswitch_protocols: "files"
systemd_networkd_nsswitch_services: "files"
systemd_networkd_nsswitch_ethers: "files"
systemd_networkd_nsswitch_rpc: "files"
systemd_networkd_nsswitch_netgroup: "nis"
systemd_networkd_nsswitch_automount: "files"
systemd_networkd_nsswitch_aliases: "files"
systemd_networkd_nsswitch_publickey: "files"
Licencja
Narzędzie objęte licencją BSD. Nie wahaj się zgłaszać błędów, zadawać pytania lub składać prośby o dodanie zmian, jeśli chcesz!
ansible-galaxy install aruhier.systemd_networkd