linux-system-roles.network
linux-system-roles/sieć
Przegląd
Rola siec umożliwia użytkownikom konfigurowanie sieci na docelowych maszynach.
Ta rola może być używana do konfigurowania:
- interfejsów Ethernet
- interfejsów mostkowych
- interfejsów zgrupowanych
- interfejsów VLAN
- interfejsów MacVLAN
- interfejsów InfiniBand
- interfejsów bezprzewodowych (WiFi)
- konfiguracji IP
- uwierzytelnienia 802.1x
Wprowadzenie
Rola siec obsługuje dwóch dostawców: nm oraz initscripts. nm jest
używany domyślnie od RHEL7, a initscripts w RHEL6. Dostawca initscripts
wymaga pakietu network-scripts, który jest przestarzały w RHEL8 i usunięty w
RHEL9. Można skonfigurować tych dostawców na poziomie hosta za pomocą zmiennej
network_provider. W przypadku braku explicitnej konfiguracji,
dostawca jest automatycznie wykrywany na podstawie dystrybucji. Należy jednak pamiętać, że nm lub initscripts
nie są związane z określoną dystrybucją. Rola siec działa wszędzie tam, gdzie dostępne jest wymagane
API. Oznacza to, że nm wymaga co najmniej wersji API NetworkManager 1.2
oraz pewnych ustawień wspieranych przez dostawcę nm, które również wymagają wyższej
wersji API NetworkManager, od której wprowadzone są te ustawienia.
Rola siec obsługuje dwa moduły: network_connections i network_state.
Dla każdego hosta można konfigurować listę profili sieciowych poprzez
zmienną network_connections.
Dla
initscriptsprofile odpowiadają plikom ifcfg w katalogu/etc/sysconfig/network-scripts/i te pliki ifcfg mają linięNM_CONTROLLED=no.Dla
nm, profile odpowiadają profilom połączeń obsługiwanym przez NetworkManager, a w RHEL9 obsługiwany jest tylko format plików kluczy NetworkManager w/etc/NetworkManager/system-connections/.
Dla każdego hosta konfiguracja stanu sieci również może być stosowana do interfejsu
bezpośrednio za pomocą zmiennej network_state, przy czym tylko dostawca nm obsługuje używanie
zmiennej network_state.
Należy pamiętać, że rola siec działa zarówno na profilach połączeń urządzeń
(za pomocą zmiennej network_connections), jak i na urządzeniach bezpośrednio (za pomocą zmiennej
network_state). Podczas konfigurowania profili połączeń przez rolę,
domyślnie używana jest nazwa profilu jako nazwa interfejsu. Możliwe jest także
tworzenie ogólnych profili, na przykład przez stworzenie profilu z określoną konfiguracją IP
bez aktywacji profilu. Aby zastosować konfigurację do rzeczywistego
interfejsu sieciowego, należy użyć poleceń nmcli na systemie docelowym.
Uwaga: Rola siec aktualizuje lub tworzy wszystkie profile połączeń na
systemie docelowym zgodnie z wymaganiami opisanymi w zmiennej network_connections. Dlatego
rola siec usuwa opcje z określonych profili, jeśli opcje te
znajdują się tylko na systemie, ale nie w zmiennej network_connections.
Wyjątki są wymienione poniżej. Jednak częściowa konfiguracja sieci może być
osiągnięta przez określenie konfiguracji stanu sieci w zmiennej network_state.
Wymagania
Zobacz poniżej
Wymagania dotyczące kolekcji
Rola wymaga zewnętrznych kolekcji tylko do zarządzania węzłami rpm-ostree.
Proszę uruchomić następujące polecenie, aby je zainstalować, jeśli potrzebujesz zarządzać
węzłami rpm-ostree:
ansible-galaxy collection install -vv -r meta/collection-requirements.yml
Zmienne
Rola siec jest konfigurowana za pomocą zmiennych zaczynających się od network_ jako
prefiksu nazwy. Lista zmiennych:
network_provider- Zmiennanetwork_providerpozwala ustawić specyficzny dostawcę (nmlubinitscripts). Ustawiając ją na{{ network_provider_os_default }}, dostawca jest ustawiony w zależności od systemu operacyjnego. Jest to zazwyczajnm, z wyjątkiem systemów RHEL 6 lub CentOS 6. Zmiana dostawcy dla istniejącego profilu nie jest wspierana. Aby zmienić dostawców, zaleca się najpierw usunięcie profili z poprzednim dostawcą, a następnie stworzenie nowych profili z nowym dostawcą.network_connections- Profile połączeń są konfigurowane jakonetwork_connections, co jest listą słowników zawierających specyficzne opcje.network_allow_restart- Domyślnie ustawiona nafalse. Aby załadować wtyczki NetworkManager po instalacji, NetworkManager wymaga ponownego uruchomienia. Na przykład, jeśli skonfigurowane jest połączenie bezprzewodowe i NetworkManager-wifi nie jest zainstalowany, NetworkManager musi być ponownie uruchomiony przed skonfigurowaniem połączenia. Restart może spowodować utratę łączności, dlatego rola nie pozwala na to bez wyraźnej zgody. Użytkownik może wyrazić zgodę, ustawiającnetwork_allow_restartnatrue. Ustawienienetwork_allow_restartnafalsezapobiegnie roli w ponownym uruchomieniu NetworkManager.network_state- Ustawienia stanu sieci mogą być konfigurowane w zarządzanym hoście, a format oraz składnia konfiguracji powinny być zgodne z przykładami stanu nmstate (YAML).
Przykłady zmiennych
Ustawianie zmiennych
network_provider: nm
network_connections:
- name: eth0
#...
network_allow_restart: true
network_provider: nm
network_state:
interfaces:
- name: eth0
#...
routes:
config:
#...
dns-resolver:
config:
#...
Opcje network_connections
Zmienna network_connections jest listą słowników, które zawierają
następujące opcje. Lista opcji:
name (zazwyczaj wymagana)
Opcja name identyfikuje profil połączenia, który ma być skonfigurowany. Nie jest to
nazwa interfejsu sieciowego, do którego odnosi się profil, chociaż możemy skojarzyć profil
z interfejsem i nadać im tę samą nazwę. Należy pamiętać, że można mieć wiele profili
dla tego samego urządzenia, ale tylko jeden profil może być aktywny na urządzeniu w danym
momencie. Dla NetworkManagera, połączenie może być aktywne tylko na jednym urządzeniu w danym
momencie.
Dla
NetworkManageropcjanameodpowiada właściwościconnection.id. Chociaż NetworkManager wspiera wiele połączeń z tym samymconnection.id, rolasiecnie potrafi poradzić sobie z duplikującą sięname. Podanienamewięcej niż jeden raz odnosi się do tego samego profilu połączenia.Dla
initscriptsopcjanameokreśla nazwę pliku ifcfg/etc/sysconfig/network-scripts/ifcfg-$NAME. Należy pamiętać, żenamenie określaDEVICE, ale nazwę pliku. W rezultacie,'/'nie jest prawidłowym znakiem dlaname.
Możesz także używać tego samego profilu połączenia wielokrotnie. Dlatego możliwe jest stworzenie profilu i aktywowanie go osobno.
Uwaga: Rola sieciowa zmieni tylko profile, które są określone w
zmiennej network_connections. Dlatego, jeśli tylko porty profilu są wskazane
do usunięcia z kontrolera i kontroler nie jest określony, profil kontrolera pozostanie
na systemie. Może to się zdarzyć, jeśli na przykład usunięto wszystkie porty z interfejsu zgrupowanego.
Uwaga: Aby usunąć wszystkie profile na systemie, które nie są określone w
zmiennej network_connections, dodaj wpis bez nazwy i persistent_state: absent. To spowoduje dopasowanie i usunięcie wszystkich pozostałych profili:
network_connections:
- name: eth0 # profile do zachowania/konfigurowania w systemie
[...]
- persistent_state: absent # usuń wszystkie inne profile
state
Opcja state identyfikuje, jaka jest stan wykonania każdego profilu połączenia. Opcja
state (opcjonalna) może być ustawiona na następujące wartości:
up- profil połączenia jest aktywowanydown- profil połączenia jest dezaktywowany
state: up
Dla
NetworkManager, odpowiada tonmcli connection id {{name}} up.Dla
initscripts, odpowiada to wywołaniuifup {{name}}.
Kiedy opcja state jest ustawiona na up, można także określić opcję wait (opcjonalnie):
wait: 0- inicjuje tylko aktywację, ale nie czeka, aż urządzenie będzie całkowicie połączone. Połączenie zakończy się w tle, na przykład po uzyskaniu dzierżawy DHCP.wait: <sekundy>to limit czasowy, który pozwala decydować, jak długo dajesz urządzeniu na aktywację. Domyślnie używany jest odpowiedni limit czasowy. Należy pamiętać, że opcjawaitjest wspierana tylko przez NetworkManager.
Należy pamiętać, że state: up zawsze ponownie aktywuje profil i może
zmienić konfigurację sieciową, nawet jeśli profil był już aktywny wcześniej. W
rezultacie state: up zawsze zmienia system.
state: down
Dla
NetworkManager, odpowiada tonmcli connection id {{name}} down.Dla
initscripts, odpowiada to wywołaniuifdown {{name}}.
Możesz dezaktywować profil połączenia, nawet jeśli jest obecnie nieaktywny. W
rezultacie state: down zawsze zmienia system.
Należy pamiętać, że jeśli opcja state jest nieustawiona, stan wykonania profilu
połączenia nie zostanie zmieniony.
persistent_state
Opcja persistent_state identyfikuje, czy profil połączenia jest trwały (zapisany na
dysku). Opcja persistent_state może być ustawiona na następujące wartości:
persistent_state: present (domyślnie)
Należy pamiętać, że jeśli persistent_state jest present, a profil połączenia zawiera
opcję type, profil zostanie utworzony lub zaktualizowany. Jeśli profil połączenia
jest niekompletny (brakuje opcji type), zachowanie jest nieokreślone. Ponadto wartość
present nie prowadzi bezpośrednio do zmiany konfiguracji sieciowej. Jeśli opcja
state nie jest ustawiona na up, profil jest tylko tworzony lub modyfikowany, nie
aktywowany.
Dla NetworkManager, nowy profil połączenia jest tworzony z włączoną opcją
autoconnect domyślnie. W związku z tym, NetworkManager może aktywować nowy
profil na obecnie odłączonym urządzeniu. (rh#1401515).
persistent_state: absent
Wartość absent zapewnia, że profil nie jest obecny na
docelowym hoście. Jeśli profil o podanej name istnieje, zostanie usunięty. W takim przypadku:
NetworkManagerusuwa wszystkie profile połączeń z odpowiadającymconnection.id. Usunięcie profilu zwykle nie zmienia obecnej konfiguracji sieciowej, chyba że profil był aktualnie aktywowany na urządzeniu. Usunięcie aktywnego profilu połączenia powoduje odłączenie urządzenia. To sprawia, że urządzenie nadaje się do ponownego połączenia z innym połączeniem (zobacz więcej szczegółów na rh#1401515).initscriptsusuwa plik ifcfg w większości przypadków bez wpływu na stan wykonania systemu, chyba że jakiś komponent monitoruje katalog sysconfig.
Uwaga: Dla profili, które tylko zawierają opcję state, rola siec wyłącznie aktywuje
lub dezaktywuje połączenie bez zmiany jego konfiguracji.
type
Opcja type może być ustawiona na następujące wartości:
ethernetbridgebondteamvlanmacvlaninfinibandwirelessdummy
type: ethernet
Jeśli typ to ethernet, to może wystąpić dodatkowy słownik ethernet z następującymi
elementami (opcje): autoneg, speed i duplex, które odpowiadają ustawieniom narzędzia
ethtool o tej samej nazwie.
autoneg:true(domyślnie) lubfalse[czy auto-negocjacja jest włączona lub wyłączona]speed: prędkość w Mbit/sduplex:halflubfull
Należy pamiętać, że ustawienia linków speed i duplex są wymagane
gdy auto-negocjacja jest wyłączona (autoneg: false).
type: bridge, type: bond, type: team
Typy urządzeń bridge, bond, team działają podobnie. Należy pamiętać, że team nie jest
wspierany w jądrze RHEL6, a jego użycie jest przestarzałe w RHEL 9.
Dla portów muszą być ustawione właściwości port_type i controller. Należy pamiętać, że porty
nie powinny mieć ustawień ip, co oznacza, że aktywne porty nie będą miały przypisanych adresów IP.
controller odnosi się do name profilu w Ansible
playbook. Nie jest to ani nazwa interfejsu, ani connection-id NetworkManager.
Dla NetworkManager,
controllerzostanie przekształcony naconnection.uuidodpowiadającego profilu.Dla initscripts, kontroler jest wyszukiwany jako
DEVICEz odpowiadającego pliku ifcfg.
Ponieważ controller odnosi się do innych profili tego samego lub innego play, kolejność
listy connections ma znaczenie. Profile, które są odwoływane przez inne profile, muszą
być określone jako pierwsze. Również --check ignoruje wartość controller
i zakłada, że będzie obecna podczas rzeczywistego uruchamiania. To oznacza, że w obecności
nieprawidłowego controller, --check może sygnalizować sukces, ale rzeczywiste uruchomienie
gry się nie powiedzie.
Jeśli tylko zmniejszisz profil controller, profile portów zostaną wyłączone automatycznie. Jeżeli zmniejszysz połączenie na niektórych lub wszystkich portach, profil kontrolera pozostanie aktywny.
Typ team używa roundrobin jako konfiguracji runner. Żadne dalsze
konfiguracje nie są obecnie wspierane.
type: vlan
Podobnie jak controller, parent odnosi się do profilu połączenia w roli ansible. ID vlan
można określić, używając zagnieżdżonego ustawienia vlan, a ważne wartości ID vlan mieszczą się w zakresie od 0 do 4094. Oto jak określić ID vlan:
type: vlan
vlan:
id: 6
type: macvlan
Podobnie jak controller i vlan, parent odnosi się do profilu połączenia w
rolę ansible.
type: infiniband
Dla połączenia infiniband, obecnie wspierane jest tylko przez dostawcę nm, a
następujące opcje są wspierane:
p_key: P_Key infiniband do użycia dla urządzenia. Kiedy nie jest określony, połączenie tworzona jest na fizycznych tkaninach infiniband. W przeciwnym razie jest to 16-bitowa liczba całkowita a połączenie ipoib (IP przez Infiniband) będzie utworzone, wysoki bit powinien być ustawiony, jeśli jest to "pełne członkostwo" P_Key. Specjalne wartościp_key0x0000 i 0x8000 są nieprawidłowe, ponieważ jądro ich nie obsługuje.transport_mode: tryb operacyjny połączenia ipoib (IP przez Infiniband). Możliwe tryby todatagram(domyślnie) iconnected.
Uwaga: Jeśli p_key jest określony, interface_name musi być nieustawione.
type: wireless
Typ bezprzewodowy wspiera autoryzację WPA-PSK (hasło), autoryzację WPA-EAP (802.1x),
autoryzację WPA3-Personal SAE (hasło) oraz Enhanced Open (OWE).
nm (NetworkManager) jest jedynym wspieranym network_provider dla tego typu.
Jeśli używana jest WPA-EAP, ustawienia ieee802_1x muszą być zdefiniowane w opcji ieee802_1x.
Następujące opcje są wspierane:
ssid: SSID sieci bezprzewodowej (wymagana)key_mgmt(wymagana)Jakikolwiek klucz z następującej listy kluczy:
owesaewpa-eapwpa-psk
password: hasło do sieci (wymagane, jeśli używane jestwpa-psklubsae)
type: dummy
Dummy interfejs sieciowy, nm (NetworkManager) jest jedynym wspieranym network_provider
dla tego typu.
autoconnect
Domyślnie profile są tworzone z włączonym autoconnect.
Dla
NetworkManager, to odpowiada właściwościconnection.autoconnect.Dla
initscripts, to odpowiada właściwościONBOOT.
mac
Adres mac jest opcjonalny i ogranicza profil do używania tylko na
urządzeniach z danym adresem MAC. mac jest dozwolone tylko dla type
ethernet lub infiniband, aby dopasować nie-wirtualne urządzenie do profilu. Wartość adresu mac
musi być określona w notacji szesnastkowej używanej z dwukropkami (np.: mac: "00:00:5e:00:53:5d"). Aby uniknąć parsowania YAML adresów
mac jako liczb całkowitych w notacji sexagesimalnej (podstawa 60) (zobacz
https://yaml.org/spec/1.1/#id858600), zaleca się zawsze cytować wartość
podwójnymi cudzysłowami, a czasem jest to konieczne.
Dla
NetworkManager,macjest stałym adresem MAC,ethernet.mac-address.Dla
initscripts,macjest obecnie skonfigurowanym adresem MAC urządzenia (HWADDR).
cloned_mac
Adres cloned_mac jest opcjonalny i pozwala określić strategię uzyskiwania domyślnej
mac lub ustawić własne mac. Wartość adresu cloned_mac musi być zdefiniowana w
notacji szesnastkowej, tak jak opcja mac. Oprócz jawnego podania wartości jako adresu MAC
używając notacji szesnastkowej, również wspierane są następujące specjalne wartości:
default: honorować domyślne zachowanie w NetworkManagerpermanent: użyć stałego adresu MAC urządzeniapreserve: nie zmieniać adresu MAC urządzenia podczas aktywacjirandom: generować zrandomizowaną wartość przy każdym połączeniustable: generować stabilny, haszowany adres MAC
mtu
Opcja mtu oznacza maksymalną jednostkę transmisji dla urządzenia profilu. Maksymalna wartość
zależy od urządzenia. Dla urządzeń wirtualnych maksymalna wartość opcji mtu
zależy od podległego urządzenia.
interface_name
Dla typów ethernet i infiniband, opcja interface_name ogranicza
profil do podanego interfejsu po nazwie. Ten argument jest opcjonalny, a domyślnie używana jest nazwa profilu, chyba że zdefiniowano adres MAC
używając klucza mac. Podanie pustego ciągu ("") oznacza, że profil nie jest
ograniczony do konkretnego interfejsu sieciowego.
Uwaga: Przy naming konfiguracyjnym persistent,
interfejs jest przewidywalny na podstawie konfiguracji sprzętowej.
W przeciwnym razie, adres mac może być opcją.
Dla typów interfejsów wirtualnych, takich jak mostki, opcja interface_name to nazwa utworzonego
interfejsu. W razie braku interface_name, używana jest nazwa profilu.
Uwaga: name (nazwa profilu) i interface_name (nazwa urządzenia) mogą być
różne lub profil może nie być związany z interfejsem wcale.
match
Ustawienia do określenia urządzeń lub systemów dopasowujących do profilu. Obecnie tylko
ustawienie path zostało wdrożone.
Ustawienia wspierają listę wzorów, które wspierają następujące modyfikatory oraz dzikie karty:
Specjalne modyfikatory dla ustawień match:
|, element jest alternatywą, dopasowanie ocenia się jako prawdziwe, jeśli przynajmniej jeden z alternatyw pasuje (logiczne LUB). Domyślnie element jest alternatywą. Oznacza to, że elementfoozachowuje się tak samo jak|foo&, element jest obowiązkowy, dopasowanie ocenia się jako prawdziwe, jeśli wszystkie elementy pasują (logiczne I)!, element można również odwrócić używając znaku wykrzyknika (!) pomiędzy symbolem rury (lub ampersand) i przed wzorem. Należy pamiętać, że!footo skrót dla obowiązkowego dopasowania&!foo\, ś Backslash można użyć na początku elementu (po opcjonalnych znakach specjalnych) do ucieczki startu wzoru. Na przykład&\!aoznacza obowiązkowe dopasowanie dla dosłownego!a
Wzorce dzikich kart dla ustawień match: W ogóle działają tak jak globy powłoki.
*, dopasowuje zero lub więcej dowolnych znaków?, dopasowuje dowolny pojedynczy znak[fo]- dopasowuje dowolny pojedynczyflubo- wspiera również zakresy -[0-9]pasuje do dowolnego pojedynczego znaku cyfr
path
Ustawienie path jest listą wzorów, które powinny odpowiadać właściwości ID_PATH udev
urządzeń. Właściwość ID_PATH udev reprezentuje trwałą ścieżkę urządzenia. Składa się z
ciągu subsystemu (pci, usb, platform, itp.) oraz identyfikatora specyficznego dla subsystemu.
Właściwość ID_PATH urządzenia można uzyskać za pomocą polecenia
udevadm info /sys/class/net/$dev | grep ID_PATH= lub patrząc na właściwość path
wyeksportowaną przez NetworkManager (nmcli -f general.path device show $dev).
Ustawienie path jest opcjonalne i ogranicza profil, aby był aktywowany tylko na urządzeniach
z dopasowującym ID_PATH. Ustawienie path jest wspierane tylko dla profili Ethernet lub Infiniband. Wspiera modyfikatory i dzikie karty, które zostały opisane
dla ustawień dopasowania.
zone
Opcja zone ustawia strefę firewalld dla interfejsu.
Porty do mostków, zgrupowanych lub urządzeń zespołowych nie mogą określać strefy.
ip
Konfiguracja IP wspiera następujące opcje:
addressRęczne adresowanie można określić za pomocą listy adresów pod ustawieniemaddress.auto_gatewayJeśli włączone, domyślna trasa zostanie skonfigurowana używając domyślnej bramy. Jeśli wyłączone, domyślna trasa zostanie usunięta.
Jeśli ta zmienna nie jest określona, rola użyje domyślnego zachowania wybranego
network_provider.Ustawienie tej opcji na
falsejest równoważne z:DEFROUTE = now initscripts, lubipv4.never-default/ipv6.never-default yesw nmcli
dhcp4,auto6, iipv6_disabledRównież, ręczne adresowanie można określić poprzez ustawienie albo
dhcp4, alboauto6. Kluczdhcp4jest dla DHCPv4, aauto6dla Stanu Adresu Bez Stanów (SLAAC). Należy pamiętać, że kluczedhcp4iauto6można pominąć, a domyślny klucz zależy od obecności adresów ręcznych.ipv6_disabledmożna ustawić, aby wyłączyć ipv6 dla połączenia.dhcp4_send_hostnameJeśli
dhcp4jest włączone, można skonfigurować, czy prośba DHCPv4 zawiera nazwę hosta przez opcjędhcp4_send_hostname. Należy pamiętać, żedhcp4_send_hostnamejest wspierane tylko przez dostawcęnmi odpowiada właściwościipv4.dhcp-send-hostname.dnsRęczna konfiguracja DNS może być określona za pomocą listy adresów podanych w opcji
dns.dns_searchRęczna konfiguracja DNS może być określona za pomocą listy domen do przeszukania podanych w opcji
dns_search.dns_optionsdns_optionsjest wspierane tylko dla dostawcy NetworkManager. Ręczna konfiguracja DNS poprzez listę opcji DNS może być podana wdns_options. Lista wspieranych opcji DNS dla serwerów nazw IPv4 jest opisana w man 5 resolv.conf. Obecnie lista wspieranych opcji DNS obejmuje:attempts:ndebugedns0inet6ip6-bytestringip6-dotintndots:nno-aaaano-check-namesno-ip6-dotintno-reloadno-tld-queryrotatesingle-requestsingle-request-reopentimeout:ntrust-aduse-vc
Uwaga: Ustawienie "trust-ad" jest honorowane tylko jeśli profil wnosi serwery nazw do resolv.conf, a jeśli wszystkie wnosiące profile mają włączone "trust-ad". Gdy używasz wtyczki DNS do buforowania (dnsmasq lub systemd-resolved w NetworkManager.conf) wtedy "edns0" i "trust-ad" są automatycznie dodawane.
dns_priorityPriorytet serwerów DNS. Relatywny priorytet dla serwerów DNS określonych przez to ustawienie. Domyślną wartością jest 0, niższa wartość liczby ma wyższy priorytet. Ważna wartość
dns_prioritymieści się w zakresie od -2147483648 do 2147483647. Ujemne wartości mają szczególny efekt wykluczający inne konfiguracje z wyższą wartością priorytetu numerycznego; więc w obecności przynajmniej jednego ujemnego priorytetu będą używane tylko serwery DNS z połączeń z najniższą wartością priorytetu.gateway4igateway6Domyślna brama dla pakietów IPv4 (
gateway4) lub IPv6 (gateway6).ipv4_ignore_auto_dnsiipv6_ignore_auto_dnsJeśli włączone, automatycznie skonfigurowane serwery nazw oraz domeny wyszukiwania (poprzez DHCPv4, DHCPv6, modem itp.) dla IPv4 lub IPv6 są ignorowane, używane są tylko serwery nazw oraz domeny wyszukiwania określone w właściwościach
dnsorazdns_search. Ustawienia są rozróżniane przez rodziny adresów. Zmienne nie są wspierane przez dostawcę initscripts.Jeżeli zmienne nie są określone, rola użyje domyślnego zachowania dostawcy nm.
route_metric4iroute_metric6Dla
NetworkManager,route_metric4iroute_metric6odpowiadają właściwościipv4.route-metricorazipv6.route-metric, odpowiednio. Jeśli ustawione, określa metrykę trasy dla tras przyznanych przez DHCP i dla domyślnej trasy, a zatem priorytet dla wielu interfejsów. Dlainitscripts,route_metric4ustawia metrykę dla domyślnej trasy, aroute_metric6nie jest wspierany.routeKonfiguracja statycznej trasy może być określona za pomocą listy tras podanej w opcji
route. Domyślną wartością jest pusta lista. Każda trasa jest słownikiem z następującymi wpisami:gateway,metric,network,prefix,src,tableoraztype.networkiprefixokreślają docelową sieć.srcokreśla adres źródłowy dla trasy.tablewspiera zarówno numeryczną, jak i nazwane tabelę. Aby określić nazwaną tabelę, użytkownicy muszą upewnić się, że ta nazwana tabela jest poprawnie zdefiniowana w/etc/iproute2/rt_tableslub/etc/iproute2/rt_tables.d/*.conf. Opcjonalny klucztypewspiera wartościblackhole,prohibit, orazunreachable. Zobacz man 8 ip-route dla ich definicji. Trasy z tymi typami nie wspierają bramy. Nie określając typu, trasa uznawana jest za trasę unicast. Należy pamiętać, że notacja CIDR (Classless Inter-Domain Routing) lub notacja maski sieci nie są obsługiwane dla kluczanetwork.routing_ruleOparte na polityce reguły trasowania mogą być określone za pomocą listy reguł podanej w opcji
routing_rule, które pozwalają na kierowanie pakietów na podstawie innych pól pakietów oprócz adresu docelowego. Domyślną wartością jest pusta lista. Każda reguła jest słownikiem z następującymi wpisami:priority- Priorytet reguły. Ważny priorytet waha się od 0 do 4294967295. Wyższa liczba oznacza niższy priorytet.action- Akcja reguły. Możliwe wartości toto-table(domyślnie),blackhole,prohibit,unreachable.dport- Zakres portu docelowego (np.1000 - 2000). Ważna wartość dport dla obu zakresów zaczynających się i kończących waha się od 0 do 65534. A początek nie może być większy niż koniec.family- Rodzina IP reguły. Możliwe wartości toipv4iipv6.from- Adres źródłowy pakietu do dopasowania (np.192.168.100.58/24).fwmark- Wartość fwmark pakietu do dopasowania.fwmask- Wartość fwmask pakietu do dopasowania.iif- Wybierz nazwę interfejsu przychodzącego do dopasowania.invert- Odwróć wybrane dopasowanie reguły. Możliwe wartości to wartości boolowskietrueifalse(domyślnie). Jeśli wartość totrue, to jest to równoważne dla dopasowania każdego pakietu, który nie spełnia wybranego dopasowania reguły.ipproto- Wybierz wartość protokołu IP do dopasowania, ważna wartość waha się od 1 do 255.oif- Wybierz nazwę interfejsu wychodzącego do dopasowania.sport- Zakres portu źródłowego (np.1000 - 2000). Ważna wartość sport dla obu zakresów zaczynających się i kończących waha się od 0 do 65534. I początek nie może być większy niż koniec.suppress_prefixlength- Odrzuć decyzje trasowania, które mają długość prefiksu określoną lub mniejszą.table- Tabela trasowania, której należy szukać w akcjito-table.tablewspiera zarówno numeryczną tabelę, jak i nazwaną tabelę. Aby określić nazwaną tabelę, użytkownicy muszą upewnić się, że nazwana tabela jest odpowiednio zdefiniowana w/etc/iproute2/rt_tableslub/etc/iproute2/rt_tables.d/*.conf.to- Adres docelowy dopasowywanego pakietu (np.192.168.100.58/24).tos- Wybierz wartość tos do dopasowania.uid- Zakres uid do dopasowania (np.1000 - 2000). Ważna wartość uid dla obu zakresów zaczynających się i kończących waha się od 0 do 4294967295. I początek nie może być większy niż koniec.
route_append_onlyOpcja
route_append_onlypozwala na dodawanie nowych tras do istniejących tras na systemie.Jeśli opcja
route_append_onlyjest ustawiona natrue, określone trasy są dodawane do istniejących tras. Jeśliroute_append_onlyjest ustawione nafalse(domyślnie), obecne trasy są zastępowane. Należy pamiętać, że ustawienieroute_append_onlynatruebez ustawianiaroutema efekt zachowania obecnych tras statycznych.rule_append_onlyOpcja boolowska
rule_append_onlypozwala na zachowanie obecnych reguł trasowania.
Uwaga: Gdy route_append_only lub rule_append_only nie są określone, rola
sieciowa usuwa obecne trasy lub reguły trasowania.
Uwaga: Porty do mostków, zgrupowanych lub urządzeń zespołowych nie mogą określać ustawień ip.
ethtool
Ustawienia ethtool pozwalają włączyć lub wyłączyć różne funkcje. Nazwy
odpowiadają nazwom używanym przez narzędzie ethtool. W zależności od rzeczywistego
jądra i urządzenia, zmiana niektórych opcji może nie być wspierana.
Konfiguracja ethtool wspiera następujące opcje:
ringZmienia parametry
rx/txringdla określonego urządzenia sieciowego. Lista wspieranych parametrówringjest następująca:rx- Zmienia liczbę wpisów ring dla Rx.rx-jumbo- Zmienia liczbę wpisów ring dla Jumbo Rx.rx-mini- Zmienia liczbę wpisów ring dla Mini Rx.tx- Zmienia liczbę wpisów ring dla Tx.
ethtool:
features:
esp_hw_offload: true|false # opcjonalnie
esp_tx_csum_hw_offload: true|false # opcjonalnie
fcoe_mtu: true|false # opcjonalnie
gro: true|false # opcjonalnie
gso: true|false # opcjonalnie
highdma: true|false # opcjonalnie
hw_tc_offload: true|false # opcjonalnie
l2_fwd_offload: true|false # opcjonalnie
loopback: true|false # opcjonalnie
lro: true|false # opcjonalnie
ntuple: true|false # opcjonalnie
rx: true|false # opcjonalnie
rx_all: true|false # opcjonalnie
rx_fcs: true|false # opcjonalnie
rx_gro_hw: true|false # opcjonalnie
rx_udp_tunnel_port_offload: true|false # opcjonalnie
rx_vlan_filter: true|false # opcjonalnie
rx_vlan_stag_filter: true|false # opcjonalnie
rx_vlan_stag_hw_parse: true|false # opcjonalnie
rxhash: true|false # opcjonalnie
rxvlan: true|false # opcjonalnie
sg: true|false # opcjonalnie
tls_hw_record: true|false # opcjonalnie
tls_hw_tx_offload: true|false # opcjonalnie
tso: true|false # opcjonalnie
tx: true|false # opcjonalnie
tx_checksum_fcoe_crc: true|false # opcjonalnie
tx_checksum_ip_generic: true|false # opcjonalnie
tx_checksum_ipv4: true|false # opcjonalnie
tx_checksum_ipv6: true|false # opcjonalnie
tx_checksum_sctp: true|false # opcjonalnie
tx_esp_segmentation: true|false # opcjonalnie
tx_fcoe_segmentation: true|false # opcjonalnie
tx_gre_csum_segmentation: true|false # opcjonalnie
tx_gre_segmentation: true|false # opcjonalnie
tx_gso_partial: true|false # opcjonalnie
tx_gso_robust: true|false # opcjonalnie
tx_ipxip4_segmentation: true|false # opcjonalnie
tx_ipxip6_segmentation: true|false # opcjonalnie
tx_nocache_copy: true|false # opcjonalnie
tx_scatter_gather: true|false # opcjonalnie
tx_scatter_gather_fraglist: true|false # opcjonalnie
tx_sctp_segmentation: true|false # opcjonalnie
tx_tcp_ecn_segmentation: true|false # opcjonalnie
tx_tcp_mangleid_segmentation: true|false # opcjonalnie
tx_tcp_segmentation: true|false # opcjonalnie
tx_tcp6_segmentation: true|false # opcjonalnie
tx_udp_segmentation: true|false # opcjonalnie
tx_udp_tnl_csum_segmentation: true|false # opcjonalnie
tx_udp_tnl_segmentation: true|false # opcjonalnie
tx_vlan_stag_hw_insert: true|false # opcjonalnie
txvlan: true|false # opcjonalnie
coalesce:
adaptive_rx: true|false # opcjonalnie
adaptive_tx: true|false # opcjonalnie
pkt_rate_high: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
pkt_rate_low: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
rx_frames: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
rx_frames_high: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
rx_frames_irq: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
rx_frames_low: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
rx_usecs: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
rx_usecs_high: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
rx_usecs_irq: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
rx_usecs_low: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
sample_interval: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
stats_block_usecs: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
tx_frames: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
tx_frames_high: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
tx_frames_irq: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
tx_frames_low: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
tx_usecs: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
tx_usecs_high: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
tx_usecs_irq: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
tx_usecs_low: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
ring:
rx: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
rx_jumbo: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
rx_mini: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
tx: 0 # opcjonalnie minimalna=0 maksymalna=0xffffffff
ieee802_1x
Konfiguracja uwierzytelnienia 802.1x dla interfejsu.
Obecnie NetworkManager jest jedynym wspieranym dostawcą i EAP-TLS jest jedyną akceptowaną metodą EAP.
Certyfikaty SSL i klucze muszą być wdrożone na hoście przed uruchomieniem roli.
eapDozwolona metoda EAP, która może być używana podczas uwierzytelniania do sieci za pomocą 802.1x.
Obecnie
tlsjest domyślną i jedynie akceptowaną wartością.identity(wymagana)Ciąg identyfikacyjny dla metod uwierzytelniania EAP.
private_key(wymagana)Absolutna ścieżka do klucza prywatnego kodowanego PEM lub PKCS#12 klienta używanego do uwierzytelnienia 802.1x.
private_key_passwordHasło do klucza prywatnego określonego w
private_key.private_key_password_flagsLista flag, które konfigurują sposób zarządzania hasłem klucza prywatnego.
Można określić wiele flag.
Ważne flagi to:
noneagent-ownednot-savednot-required
Zobacz dokumentację NetworkManager o typach "Flag sekretów" dla dodatkowych szczegółów (
man 5 nm-settings).client_cert(wymagana)Absolutna ścieżka do certyfikatu PEM kodowanego klienta używanego do uwierzytelnienia 802.1x.
ca_certAbsolutna ścieżka do certyfikatu uwierzytelniającego PEM, który służy do weryfikacji serwera EAP.
ca_pathAbsolutna ścieżka do katalogu zawierającego dodatkowe certyfikaty CA kodowane PEM używane do weryfikacji serwera EAP. Może być używane zamiast lub dodatkowo do ca_cert. Nie może być używane, jeśli enabled system_ca_certs.
system_ca_certsJeśli ustawione na
true, NetworkManager użyje zaufanych certyfikatów CA systemu, aby zweryfikować serwer EAP.domain_suffix_matchJeśli ustawione, NetworkManager zapewni, że nazwa domeny certyfikatu serwera EAP pasuje do tego ciągu.
bond
Ustawienie bond konfiguruje opcje zgrupowanych interfejsów (typ bond).
Zobacz dokumentację jądra dla
bondingu lub
dokumentację nmcli twojej dystrybucji dla ważnych wartości. Wspiera
następujące opcje:
modetryb łączenia. Możliwe wartości to
balance-rr(domyślnie),active-backup,balance-xor,broadcast,802.3ad,balance-tlb, lubbalance-alb.ad_actor_sys_prioW
802.3adtrybie łączenia, określa to priorytet systemu. Ważny zakres to 1 - 65535.ad_actor_systemW
802.3adtrybie łączenia, określa to adres MAC systemu dla aktora w wymianach protokołu (LACPDUs).ad_selectTa opcja określa logikę wyboru agregacji 802.3ad, która ma być używana. Możliwe wartości to:
stable,bandwidth,count.ad_user_port_keyW
802.3adtrybie łączenia, ta opcja definiuje górne 10 bitów klucza portu. Dozwolony zakres to 0 - 1023.all_ports_activeall_slaves_activew kernelu i NetworkManagerze. Boolowska wartośćfalseodrzuca duplikowane ramki (odebrane na nieaktywnych portach) a boolowska wartośćtrueprzekazuje duplikowane ramki.arp_all_targetsTa opcja określa ilość
arp_ip_targets, która musi być osiągalna, aby ARP monitor uznał port za aktywny. Możliwe wartości toanyluball.arp_intervalTa opcja określa częstotliwość monitorowania ARP w milisekundach. Wartość 0 wyłącza monitorowanie ARP.
arp_validateW każdym trybie, który wspiera monitorowanie ARP, ta opcja określa, czy pakiety ARP i odpowiedzi powinny być weryfikowane. Lub dla celów monitorowania łącza, czy ruch nie-ARP powinien być filtrowany (ignorowany). Możliwe wartości to:
none,active,backup,all,filter,filter_active,filter_backup.arp_ip_targetGdy
arp_intervaljest włączone, opcja ta określa adresy IP do użycia jako monitorowanie ARP.downdelayCzas oczekiwania (w milisekundach) przed wyłączeniem portu po wykryciu awarii łącza.
fail_over_macTa opcja określa politykę wyboru adresu MAC dla interfejsu bond w trybie active-backup. Możliwe wartości to:
none(domyślnie),active,follow.lacp_rateW
802.3adtrybie łączenia, ta opcja definiuje szybkość, według której żądamy od partnera łącza przesyłania pakietów LACPDU. Możliwe wartości to:slow,fast.lp_intervalTa opcja określa liczbę sekund między instancjami, podczas których sterownik łączenia wysyła pakiety uczące do każdego portu.
miimonUstala interwał monitorowania linków MII (w milisekundach).
min_linksTa opcja określa minimalną liczbę linków, które muszą być aktywne przed stwierdzeniem nośnika.
num_grat_arpTa opcja określa, ile notyfikacji peerowych (gratuitous ARPs) będzie wydawanych po zdarzeniu przełączenia. Dozwolony zakres dla wartości to 0 - 255.
packets_per_portW
balance-rrtrybie łączenia, ta opcja określa liczbę pakietów dozwolonych na porcie w transmisji sieciowej przed przejściem do następnego. Dozwolony zakres dla wartości to 0 - 65535.peer_notif_delayTa opcja określa opóźnienie (w milisekundach) między każdą powiadomieniem peerowym, gdy są one wydawane po zdarzeniu przełączenia.
primaryTa opcja definiuje główne urządzenie.
primary_reselectTa opcja określa politykę ponownego wyboru dla głównego portu. Możliwe wartości to:
always,better,failure.resend_igmpTa opcja określa liczbę raportów członkostwa IGMP, które będą wydawane po zdarzeniu przełączenia. Dozwolony zakres dla wartości to 0 - 255.
tlb_dynamic_lbTa opcja określa, czy dynamiczne przemieszanie przepływów jest włączone w trybie tlb. Boolowska wartość
truewłącza przemieszanie przepływu, podczas gdy boolowska wartośćfalseje wyłącza.updelayTa opcja określa czas (w milisekundach), aby poczekać przed włączeniem portu po wykryciu odzyskania łącza.
use_carrierTa opcja określa, czy miimon powinien używać MII lub ETHTOOL ioctlów w porównaniu do netif_carrier_ok() do określenia statusu łącza. Boolowska wartość
truewłącza użycie netif_carrier_ok(), podczas gdy boolowska wartośćfalseużywa MII lub ETHTOOL ioctlów zamiast tego.xmit_hash_policyTa opcja określa politykę haszowania przesyłu wykorzystywaną do wyboru portu, a możliwe wartości to:
layer2,layer3+4,layer2+3,encap2+3,encap3+4,vlan+srcmac.
Przykłady opcji
Ustawienie tego samego profilu połączenia wiele razy:
network_connections:
- name: Wired0
type: ethernet
interface_name: eth0
ip:
dhcp4: true
- name: Wired0
state: up
Aktywowanie istniejącego profilu połączenia:
network_connections:
- name: eth0
state: up
Dezaktywowanie istniejącego profilu połączenia:
network_connections:
- name: eth0
state: down
Tworzenie trwałego profilu połączenia:
network_connections:
- name: eth0
#persistent_state: present # domyślnie
type: ethernet
autoconnect: true
mac: "00:00:5e:00:53:5d"
ip:
dhcp4: true
Określenie profilu łączącego dla urządzenia ethernet z ID_PATH:
network_connections:
- name: eth0
type: ethernet
# Dla urządzeń PCI, ścieżka ma formę "pci-$domain:$bus:$device.$function"
# Profil będzie pasował tylko do interfejsu na adresie PCI pci-0000:00:03.0
match:
path:
- pci-0000:00:03.0
ip:
address:
- 192.0.2.3/24
- name: eth0
type: ethernet
# Określenie profilu łączącego dla urządzenia ethernet z identyfikatorem PCI
# pci-0000:00:01.0 lub pci-0000:00:03.0
match:
path:
- pci-0000:00:0[1-3].0
- &!pci-0000:00:02.0
ip:
address:
- 192.0.2.3/24
Usunięcie profilu połączenia o nazwie eth0 (jeśli istnieje):
network_connections:
- name: eth0
persistent_state: absent
Konfiguracja ustawień linku Ethernet:
network_connections:
- name: eth0
type: ethernet
ethernet:
autoneg: false
speed: 1000
duplex: full
Tworzenie połączenia mostkowego:
network_connections:
- name: br0
type: bridge
#interface_name: br0 # domyślnie nazywa się połączenie
Konfiguracja połączenia mostkowego:
network_connections:
- name: internal-br0
interface_name: br0
type: bridge
ip:
dhcp4: false
auto6: false
Ustawić controller i port_type:
network_connections:
- name: br0-bond0
type: bond
interface_name: bond0
controller: internal-br0
port_type: bridge
- name: br0-bond0-eth1
type: ethernet
interface_name: eth1
controller: br0-bond0
port_type: bond
Konfiguracja VLAN:
network_connections:
- name: eth1-profile
autoconnect: false
type: ethernet
interface_name: eth1
ip:
dhcp4: false
auto6: false
- name: eth1.6
autoconnect: false
type: vlan
parent: eth1-profile
vlan:
id: 6
ip:
address:
- 192.0.2.5/24
auto6: false
Konfiguracja MACVLAN:
network_connections:
- name: eth0-profile
type: ethernet
interface_name: eth0
ip:
address:
- 192.168.0.1/24
- name: veth0
type: macvlan
parent: eth0-profile
macvlan:
mode: bridge
promiscuous: true
tap: false
ip:
address:
- 192.168.1.1/24
Konfiguracja połączenia bezprzewodowego:
network_connections:
- name: wlan0
type: wireless
wireless:
ssid: "Moja sieć WPA2-PSK"
key_mgmt: "wpa-psk"
# zaleca się szyfrowanie hasła bezprzewodowego
# zobacz https://docs.ansible.com/ansible/latest/user_guide/vault.html
password: "p@55w0rD"
Ustawienie konfiguracji IP:
network_connections:
- name: eth0
type: ethernet
ip:
route_metric4: 100
dhcp4: false
#dhcp4_send_hostname: false
gateway4: 192.0.2.1
dns:
- 192.0.2.2
- 198.51.100.5
dns_search:
- example.com
- subdomain.example.com
dns_options:
- rotate
- timeout:1
route_metric6: -1
auto6: false
gateway6: 2001:db8::1
address:
- 192.0.2.3/24
- 198.51.100.3/26
- 2001:db8::80/7
route:
- network: 198.51.100.128
prefix: 26
gateway: 198.51.100.1
metric: 2
- network: 198.51.100.64
prefix: 26
gateway: 198.51.100.6
metric: 4
route_append_only: false
rule_append_only: true
Konfiguracja 802.1x:
network_connections:
- name: eth0
type: ethernet
ieee802_1x:
identity: myhost
eap: tls
private_key: /etc/pki/tls/client.key
# zaleca się szyfrowanie hasła klucza prywatnego
# zobacz https://docs.ansible.com/ansible/latest/user_guide/vault.html
private_key_password: "p@55w0rD"
client_cert: /etc/pki/tls/client.pem
ca_cert: /etc/pki/tls/cacert.pem
domain_suffix_match: example.com
Konfiguracja Enhanced Open(OWE):
network_connections:
- name: wlan0
type: wireless
wireless:
ssid: "WIFI_SSID"
key_mgmt: "owe"
Przykłady stosowania konfiguracji stanu sieci
Konfiguracja adresów IP:
network_state:
interfaces:
- name: ethtest0
type: ethernet
state: up
ipv4:
enabled: true
address:
- ip: 192.168.122.250
prefix-length: 24
dhcp: false
ipv6:
enabled: true
address:
- ip: 2001:db8::1:1
prefix-length: 64
autoconf: false
dhcp: false
- name: ethtest1
type: ethernet
state: up
ipv4:
enabled: true
address:
- ip: 192.168.100.192
prefix-length: 24
auto-dns: false
dhcp: false
ipv6:
enabled: true
address:
- ip: 2001:db8::2:1
prefix-length: 64
autoconf: false
dhcp: false
Konfiguracja trasy:
network_state:
interfaces:
- name: eth1
type: ethernet
state: up
ipv4:
enabled: true
address:
- ip: 192.0.2.251
prefix-length: 24
dhcp: false
routes:
config:
- destination: 198.51.100.0/24
metric: 150
next-hop-address: 192.0.2.251
next-hop-interface: eth1
table-id: 254
Konfiguracja wyszukiwania DNS oraz serwera:
network_state:
dns-resolver:
config:
search:
- example.com
- example.org
server:
- 2001:4860:4860::8888
- 8.8.8.8
Nieprawidłowa i zła konfiguracja
Rola siec odrzuca nieprawidłowe konfiguracje. Zaleca się, aby najpierw przetestować rolę
za pomocą --check. Nie ma ochrony przed złą (ale prawidłową) konfiguracją.
Dokładnie sprawdź swoją konfigurację przed jej zastosowaniem.
wewnętrzny moduł network_connections
Wewnętrzny moduł network_connections jest przeznaczony do użytku wewnętrznego lub testowania
integracji i nie jest przeznaczony do bezpośredniego zewnętrznego dostępu lub użycia.
Kiedy ten wewnętrzny moduł jest wykorzystywany w testach integracyjnych, zadania, które są
określone w tasks/main.yaml, są pomijane, co przyspiesza wykonanie testu.
Kompatybilność
Rola siec obsługuje tę samą schemat konfiguracyjny dla obu dostawców (nm
i initscripts). Oznacza to, że możesz korzystać z tego samego playbooka z NetworkManagerem
i z initscripts. Należy jednak pamiętać, że nie każda opcja jest obsługiwana dokładnie
tak samo przez każdego dostawcę. Najpierw przetestuj uruchomienie z --check.
Nie jest wspierane tworzenie konfiguracji dla jednego dostawcy i oczekiwanie, że inny
dostawca je obsłuży. Na przykład, tworzenie profili z dostawcą initscripts,
a później włączenie NetworkManagera nie gwarantuje, że będzie działać automatycznie. Możliwe,
że będziesz musiał dostosować konfigurację, aby mogła być używana przez innego dostawcę.
Na przykład, konfigurowanie hosta RHEL6 z initscripts i aktualizacja do RHEL7 podczas kontynuowania korzystania z initscripts w RHEL7 to akceptowalny scenariusz. To czego nie można zagwarantować, to aktualizacja do RHEL7, wyłączenie initscripts i oczekiwanie, że NetworkManager automatycznie przejmie konfigurację.
W zależności od konfiguracji NetworkManagera, połączenia mogą być przechowywane jako pliki ifcfg także, ale nie ma gwarancji, że zwykłe initscripts będą mogły obsługiwać te pliki ifcfg po wyłączeniu usługi NetworkManager.
Rola siec wspiera także konfigurowanie w pewnych dystrybucjach Ansible, które
rola traktuje jak RHEL, takich jak AlmaLinux, CentOS, OracleLinux czy Rocky.
Ograniczenia
Ponieważ Ansible działa zwykle przez sieć, na przykład przez SSH, istnieje kilka ograniczeń, które należy wziąć pod uwagę:
Rola siec nie obsługuje bootstrapowania konfiguracji sieciowej. Jedną z opcji może być
ansible-pull.
Inną opcją może być wstępna automatyczna konfiguracja hosta podczas instalacji (z bazą ISO, kickstart itp.), aby host był połączony
z management LAN lub VLAN. Zależy to głównie od twojego środowiska.
Dla dostawcy initscripts, wdrożenie profilu oznacza jedynie utworzenie plików ifcfg. Nic nie
dzieje się automatycznie, aż polecenie ifup lub ifdown zostanie wydane przez rolę
przez stany up lub down -- chyba, że są inne komponenty, które
polegają na plikach ifcfg i reagują na zmiany.
Dostawca initscripts wymaga, aby różne profile były w odpowiedniej kolejności, gdy opierają się na sobie.
Na przykład kontroler urządzenia zgrupowanego musi być określony przed urządzeniami portowymi.
Gdy profil jest usuwany dla NetworkManager, łączenie również spada i może usuwać wirtualne interfejsy. W przypadku dostawcy initscripts
Configure networking
ansible-galaxy install linux-system-roles.network