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
initscripts
profile 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_provider
pozwala ustawić specyficzny dostawcę (nm
lubinitscripts
). 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_restart
natrue
. Ustawienienetwork_allow_restart
nafalse
zapobiegnie 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
NetworkManager
opcjaname
odpowiada właściwościconnection.id
. Chociaż NetworkManager wspiera wiele połączeń z tym samymconnection.id
, rolasiec
nie potrafi poradzić sobie z duplikującą sięname
. Podaniename
więcej niż jeden raz odnosi się do tego samego profilu połączenia.Dla
initscripts
opcjaname
określa nazwę pliku ifcfg/etc/sysconfig/network-scripts/ifcfg-$NAME
. Należy pamiętać, żename
nie 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 opcjawait
jest 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:
NetworkManager
usuwa 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).initscripts
usuwa 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:
ethernet
bridge
bond
team
vlan
macvlan
infiniband
wireless
dummy
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
:half
lubfull
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,
controller
zostanie przekształcony naconnection.uuid
odpowiadającego profilu.Dla initscripts, kontroler jest wyszukiwany jako
DEVICE
z 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_key
0x0000 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:
owe
sae
wpa-eap
wpa-psk
password
: hasło do sieci (wymagane, jeśli używane jestwpa-psk
lubsae
)
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
,mac
jest stałym adresem MAC,ethernet.mac-address
.Dla
initscripts
,mac
jest 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 elementfoo
zachowuje 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!foo
to 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&\!a
oznacza 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 pojedynczyf
lubo
- 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:
address
Ręczne adresowanie można określić za pomocą listy adresów pod ustawieniemaddress
.auto_gateway
Jeś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
false
jest równoważne z:DEFROUTE = no
w initscripts, lubipv4.never-default/ipv6.never-default yes
w nmcli
dhcp4
,auto6
, iipv6_disabled
Również, ręczne adresowanie można określić poprzez ustawienie albo
dhcp4
, alboauto6
. Kluczdhcp4
jest dla DHCPv4, aauto6
dla Stanu Adresu Bez Stanów (SLAAC). Należy pamiętać, że kluczedhcp4
iauto6
można pominąć, a domyślny klucz zależy od obecności adresów ręcznych.ipv6_disabled
można ustawić, aby wyłączyć ipv6 dla połączenia.dhcp4_send_hostname
Jeśli
dhcp4
jest włączone, można skonfigurować, czy prośba DHCPv4 zawiera nazwę hosta przez opcjędhcp4_send_hostname
. Należy pamiętać, żedhcp4_send_hostname
jest wspierane tylko przez dostawcęnm
i odpowiada właściwościipv4.dhcp-send-hostname
.dns
Ręczna konfiguracja DNS może być określona za pomocą listy adresów podanych w opcji
dns
.dns_search
Ręczna konfiguracja DNS może być określona za pomocą listy domen do przeszukania podanych w opcji
dns_search
.dns_options
dns_options
jest 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:n
debug
edns0
inet6
ip6-bytestring
ip6-dotint
ndots:n
no-aaaa
no-check-names
no-ip6-dotint
no-reload
no-tld-query
rotate
single-request
single-request-reopen
timeout:n
trust-ad
use-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_priority
Priorytet 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_priority
mieś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.gateway4
igateway6
Domyślna brama dla pakietów IPv4 (
gateway4
) lub IPv6 (gateway6
).ipv4_ignore_auto_dns
iipv6_ignore_auto_dns
Jeś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
dns
orazdns_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_metric4
iroute_metric6
Dla
NetworkManager
,route_metric4
iroute_metric6
odpowiadają właściwościipv4.route-metric
orazipv6.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_metric4
ustawia metrykę dla domyślnej trasy, aroute_metric6
nie jest wspierany.route
Konfiguracja 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
,table
oraztype
.network
iprefix
określają docelową sieć.src
określa adres źródłowy dla trasy.table
wspiera 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_tables
lub/etc/iproute2/rt_tables.d/*.conf
. Opcjonalny klucztype
wspiera 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_rule
Oparte 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 toipv4
iipv6
.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 boolowskietrue
ifalse
(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
.table
wspiera 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_tables
lub/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_only
Opcja
route_append_only
pozwala na dodawanie nowych tras do istniejących tras na systemie.Jeśli opcja
route_append_only
jest ustawiona natrue
, określone trasy są dodawane do istniejących tras. Jeśliroute_append_only
jest ustawione nafalse
(domyślnie), obecne trasy są zastępowane. Należy pamiętać, że ustawienieroute_append_only
natrue
bez ustawianiaroute
ma efekt zachowania obecnych tras statycznych.rule_append_only
Opcja boolowska
rule_append_only
pozwala 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:
ring
Zmienia parametry
rx
/tx
ring
dla określonego urządzenia sieciowego. Lista wspieranych parametrówring
jest 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.
eap
Dozwolona metoda EAP, która może być używana podczas uwierzytelniania do sieci za pomocą 802.1x.
Obecnie
tls
jest 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_password
Hasło do klucza prywatnego określonego w
private_key
.private_key_password_flags
Lista flag, które konfigurują sposób zarządzania hasłem klucza prywatnego.
Można określić wiele flag.
Ważne flagi to:
none
agent-owned
not-saved
not-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_cert
Absolutna ścieżka do certyfikatu uwierzytelniającego PEM, który służy do weryfikacji serwera EAP.
ca_path
Absolutna ś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_certs
Jeśli ustawione na
true
, NetworkManager użyje zaufanych certyfikatów CA systemu, aby zweryfikować serwer EAP.domain_suffix_match
Jeś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:
mode
tryb łączenia. Możliwe wartości to
balance-rr
(domyślnie),active-backup
,balance-xor
,broadcast
,802.3ad
,balance-tlb
, lubbalance-alb
.ad_actor_sys_prio
W
802.3ad
trybie łączenia, określa to priorytet systemu. Ważny zakres to 1 - 65535.ad_actor_system
W
802.3ad
trybie łączenia, określa to adres MAC systemu dla aktora w wymianach protokołu (LACPDUs).ad_select
Ta 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_key
W
802.3ad
trybie łączenia, ta opcja definiuje górne 10 bitów klucza portu. Dozwolony zakres to 0 - 1023.all_ports_active
all_slaves_active
w kernelu i NetworkManagerze. Boolowska wartośćfalse
odrzuca duplikowane ramki (odebrane na nieaktywnych portach) a boolowska wartośćtrue
przekazuje duplikowane ramki.arp_all_targets
Ta opcja określa ilość
arp_ip_targets
, która musi być osiągalna, aby ARP monitor uznał port za aktywny. Możliwe wartości toany
luball
.arp_interval
Ta opcja określa częstotliwość monitorowania ARP w milisekundach. Wartość 0 wyłącza monitorowanie ARP.
arp_validate
W 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_target
Gdy
arp_interval
jest włączone, opcja ta określa adresy IP do użycia jako monitorowanie ARP.downdelay
Czas oczekiwania (w milisekundach) przed wyłączeniem portu po wykryciu awarii łącza.
fail_over_mac
Ta 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_rate
W
802.3ad
trybie łą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_interval
Ta opcja określa liczbę sekund między instancjami, podczas których sterownik łączenia wysyła pakiety uczące do każdego portu.
miimon
Ustala interwał monitorowania linków MII (w milisekundach).
min_links
Ta opcja określa minimalną liczbę linków, które muszą być aktywne przed stwierdzeniem nośnika.
num_grat_arp
Ta 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_port
W
balance-rr
trybie łą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_delay
Ta opcja określa opóźnienie (w milisekundach) między każdą powiadomieniem peerowym, gdy są one wydawane po zdarzeniu przełączenia.
primary
Ta opcja definiuje główne urządzenie.
primary_reselect
Ta opcja określa politykę ponownego wyboru dla głównego portu. Możliwe wartości to:
always
,better
,failure
.resend_igmp
Ta 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_lb
Ta opcja określa, czy dynamiczne przemieszanie przepływów jest włączone w trybie tlb. Boolowska wartość
true
włącza przemieszanie przepływu, podczas gdy boolowska wartośćfalse
je wyłącza.updelay
Ta opcja określa czas (w milisekundach), aby poczekać przed włączeniem portu po wykryciu odzyskania łącza.
use_carrier
Ta 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ść
true
włącza użycie netif_carrier_ok(), podczas gdy boolowska wartośćfalse
używa MII lub ETHTOOL ioctlów zamiast tego.xmit_hash_policy
Ta 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