linux-system-roles.network
linux-system-roles/réseau
Présentation
Le rôle réseau
permet aux utilisateurs de configurer le réseau sur les machines cibles.
Ce rôle peut être utilisé pour configurer :
- Interfaces Ethernet
- Interfaces de pont
- Interfaces agrégées
- Interfaces VLAN
- Interfaces MacVLAN
- Interfaces Infiniband
- Interfaces sans fil (WiFi)
- Configuration IP
- Authentification 802.1x
Introduction
Le rôle réseau
prend en charge deux fournisseurs : nm
et initscripts
. nm
est
utilisé par défaut depuis RHEL7 et initscripts
dans RHEL6. Le fournisseur initscripts
nécessite le paquet network-scripts
, qui est déprécié dans RHEL8 et supprimé dans
RHEL9. Ces fournisseurs peuvent être configurés par hôte via la variable
network_provider
. En l'absence de configuration explicite, il est
détecté automatiquement selon la distribution. Cependant, notez que ni nm
ni initscripts
ne sont liés à une distribution particulière. Le rôle réseau
fonctionne partout où l'API
requise est disponible. Cela signifie que nm
nécessite au moins la version 1.2 de l'API de
NetworkManager, et certains paramètres pris en charge par le fournisseur nm
nécessitent une
version plus élevée de l'API de NetworkManager.
Le rôle réseau
prend en charge deux modules : network_connections
et network_state
.
Pour chaque hôte, une liste de profils de réseau peut être configurée via la variable
network_connections
.
Pour
initscripts
, les profils correspondent aux fichiers ifcfg dans le répertoire/etc/sysconfig/network-scripts/
et ces fichiers ifcfg contiennent la ligneNM_CONTROLLED=no
.Pour
nm
, les profils correspondent aux profils de connexion gérés par NetworkManager et seuls les profils au format fichier clé NetworkManager sont pris en charge dans/etc/NetworkManager/system-connections/
depuis RHEL9.
Pour chaque hôte, la configuration de l'état du réseau peut également être appliquée à l'interface
directement via la variable network_state
, et seul le fournisseur nm
prend en charge l'utilisation
de la variable network_state
.
Notez que le rôle réseau
opère à la fois sur les profils de connexion des appareils
(via la variable network_connections
) et sur les appareils directement (via la
variable network_state
). Lors de la configuration des profils de connexion via le rôle,
il utilise par défaut le nom du profil comme nom d'interface. Il est également possible
de créer des profils génériques, par exemple en créant un profil avec une certaine IP
sans activer le profil. Pour appliquer la configuration à l'interface réseau réelle,
utilisez les commandes nmcli
sur le système ciblé.
Avertissement : Le rôle réseau
met à jour ou crée tous les profils de connexion sur
le système cible tels que spécifiés dans la variable network_connections
. Par conséquent,
le rôle réseau
supprime les options des profils spécifiés si les options ne sont
présentes que sur le système mais pas dans la variable network_connections
. Les exceptions sont
mentionnées ci-dessous. Cependant, une configuration réseau partielle peut être réalisée
en spécifiant la configuration de l'état du réseau dans la variable network_state
.
Exigences
Voir ci-dessous
Exigences en matière de collections
Le rôle nécessite des collections externes uniquement pour la gestion des nœuds rpm-ostree
.
Veuillez exécuter la commande suivante pour les installer si vous devez gérer
des nœuds rpm-ostree
:
ansible-galaxy collection install -vv -r meta/collection-requirements.yml
Variables
Le rôle réseau
est configuré via des variables commençant par le préfixe network_
.
Liste des variables :
network_provider
- La variablenetwork_provider
permet de définir un fournisseur spécifique (nm
ouinitscripts
). En la définissant à{{ network_provider_os_default }}
, le fournisseur est défini en fonction du système d'exploitation. Cela est généralementnm
sauf pour RHEL 6 ou CentOS 6. Changer le fournisseur pour un profil existant n'est pas pris en charge. Pour changer de fournisseur, il est recommandé de d’abord supprimer les profils avec l’ancien fournisseur, puis de créer de nouveaux profils avec le nouveau fournisseur.network_connections
- Les profils de connexion sont configurés en tant quenetwork_connections
, qui est une liste de dictionnaires contenant des options spécifiques.network_allow_restart
- Il est par défautfalse
. Pour charger les plugins NetworkManager après installation, NetworkManager doit être redémarré. Par exemple, si une connexion sans fil est configurée et que NetworkManager-wifi n'est pas installé, NetworkManager doit être redémarré avant que la connexion soit configurée. Le redémarrage peut entraîner une perte de connectivité et donc le rôle ne le permet pas sans consentement explicite. L'utilisateur peut y consentir en définissantnetwork_allow_restart
àtrue
. Définirnetwork_allow_restart
àfalse
empêchera le rôle de redémarrer NetworkManager.network_state
- Les paramètres d'état du réseau peuvent être configurés sur l'hôte géré, et le format et la syntaxe de la configuration doivent être conformes aux exemples d'état nmstate (YAML).
Exemples de variables
Définir les variables
network_provider: nm
network_connections:
- name: eth0
#...
network_allow_restart: true
network_provider: nm
network_state:
interfaces:
- name: eth0
#...
routes:
config:
#...
dns-resolver:
config:
#...
Options network_connections
La variable network_connections
est une liste de dictionnaires qui comprend les
options suivantes. Liste des options :
name
(habituellement requis)
L'option name
identifie le profil de connexion à configurer. Ce n'est pas
le nom de l'interface réseau à laquelle le profil s'applique, bien que nous
puissions associer le profil à une interface et leur donner le même nom.
Notez que vous pouvez avoir plusieurs profils pour le même appareil,
mais un seul profil peut être actif sur l'appareil à la fois. Pour
NetworkManager, une connexion ne peut être active que sur un appareil chaque fois.
Pour
NetworkManager
, l'optionname
correspond à l'option de propriétéconnection.id
. Bien que NetworkManager prenne en charge plusieurs connexions avec le mêmeconnection.id
, le rôleréseau
ne peut pas gérer unname
en double. Spécifier unname
plusieurs fois fait référence au même profil de connexion.Pour
initscripts
, l'optionname
détermine le nom du fichier ifcfg/etc/sysconfig/network-scripts/ifcfg-$NAME
. Notez que lename
ne spécifie pas leDEVICE
mais un nom de fichier. En conséquence,'/'
n'est pas un caractère valide pour lename
.
Vous pouvez également utiliser le même profil de connexion plusieurs fois. Il est donc possible de créer un profil et de l'activer séparément.
Remarque : Le rôle réseau ne modifiera que les profils qui sont spécifiés
dans la variable network_connections
. Par conséquent, si seuls les ports d'un
profil sont spécifiés pour être supprimés du contrôleur et que le contrôleur
n'est pas spécifié, alors le profil du contrôleur restera sur le système.
Cela peut se produire, par exemple, si tous les ports sont supprimés d'une
interface de liaison.
Remarque : Pour supprimer tous les profils sur un système qui ne sont pas
spécifiés dans la variable network_connections
, ajoutez une entrée sans nom et
persistent_state: absent
. Cela correspondra et supprimera tous les profils restants :
network_connections:
- name: eth0 # profils à conserver/configurer sur le système
[...]
- persistent_state: absent # supprimer tous les autres profils
state
L'option state
identifie quelle est l'état d'exécution de chaque profil de
connexion. L'option state
(optionnelle) peut être définie sur les valeurs
suivantes :
up
- le profil de connexion est activédown
- le profil de connexion est désactivé
state: up
Pour
NetworkManager
, cela correspond ànmcli connection id {{name}} up
.Pour
initscripts
, cela correspond àifup {{name}}
.
Lorsque l'option state
est définie sur up
, vous pouvez également spécifier
l'option wait
(optionnelle) :
wait: 0
- initie uniquement l'activation, mais n'attend pas que l'appareil soit complètement connecté. La connexion sera complétée en arrière-plan, par exemple après qu'un bail DHCP a été reçu.wait: <seconds>
est un délai qui vous permet de décider combien de temps vous donnez à l'appareil pour s'activer. La valeur par défaut utilise un délai approprié. Notez que l'optionwait
est uniquement prise en charge par NetworkManager.
Notez que state: up
réactive toujours le profil et peut éventuellement
modifier la configuration réseau, même si le profil était déjà actif auparavant.
En conséquence, state: up
change toujours le système.
state: down
Pour
NetworkManager
, cela correspond ànmcli connection id {{name}} down
.Pour
initscripts
, cela correspond à l’appelifdown {{name}}
.
Vous pouvez désactiver un profil de connexion, même s'il n'est actuellement pas
actif. En conséquence, state: down
change toujours le système.
Notez que si l'option state
n'est pas définie, l'état d'exécution du
profil de connexion ne sera pas modifié.
persistent_state
L'option persistent_state
identifie si un profil de connexion est
permanent (sauvegardé sur le disque). L'option persistent_state
peut être
définie sur les valeurs suivantes :
persistent_state: present
(par défaut)
Notez que si persistent_state
est present
et que le profil de connexion
contient l’option type
, le profil sera créé ou mis à jour. Si le profil de
connexion est incomplet (pas d’option type
), le comportement est indéfini.
De plus, la valeur present
ne donne pas directement lieu à une
modification de la configuration réseau. Si l’option state
n’est pas
définie sur up
, le profil est uniquement créé ou modifié, et non pas activé.
Pour NetworkManager, le nouveau profil de connexion est créé avec l’option
autoconnect
activée par défaut. Par conséquent, NetworkManager peut activer le
nouveau profil sur un appareil actuellement déconnecté.
(rh#1401515).
persistent_state: absent
La valeur absent
garantit que le profil n'est pas présent sur l’hôte cible.
Si un profil avec le nom donné existe, il sera supprimé. Dans ce cas :
NetworkManager
supprime tous les profils de connexion avec leconnection.id
correspondant. Supprimer un profil ne modifie généralement pas la configuration réseau actuelle, sauf si le profil était actuellement activé sur un appareil. Supprimer le profil de connexion actif à l’heure actuelle déconnecte l’appareil. Cela rend l’appareil eligible pour se reconnecter à une autre connexion (pour plus de détails, voir rh#1401515).initscripts
supprime le fichier ifcfg dans la plupart des cas sans impact sur l’état d'exécution du système, sauf si certains composants surveillent le répertoire sysconfig.
Remarque : Pour les profils qui ne contiennent qu'une option state
,
le rôle réseau
active ou désactive uniquement la connexion sans en changer
la configuration.
type
L'option type
peut être définie sur les valeurs suivantes :
ethernet
bridge
bond
team
vlan
macvlan
infiniband
wireless
dummy
type: ethernet
Si le type est ethernet
, alors un dictionnaire supplémentaire ethernet
peut être présent avec les éléments (options) suivants : autoneg
, speed
et duplex
, qui correspondent aux paramètres de l’utilitaire ethtool
du même nom.
autoneg
:true
(par défaut) oufalse
[si l'auto-négociation est activée ou désactivée]speed
: vitesse en Mbit/sduplex
:half
oufull
Notez que les paramètres de liaison speed
et duplex
sont requis lorsque
l'auto-négociation est désactivée (autoneg: false
).
type: bridge
, type: bond
, type: team
Les types d'appareils bridge
, bond
et team
fonctionnent de manière similaire.
Notez que team
n'est pas pris en charge dans les noyaux RHEL6 et a été déprécié
dans RHEL 9.
Pour les ports, les propriétés port_type
et controller
doivent être définies.
Notez que les ports ne doivent pas avoir de paramètres ip
, ce qui signifie que les
ports actifs n’auront pas d’adresses IP assignées.
Le controller
fait référence au name
d'un profil dans le playbook Ansible.
Ce n'est ni un nom d'interface ni un connection-id
de NetworkManager.
Pour NetworkManager,
controller
sera converti enconnection.uuid
du profil correspondant.Pour initscripts, le contrôleur est recherché comme l’
DEVICE
dans le fichier ifcfg correspondant.
Comme le controller
fait référence à d'autres profils du même ou d'un autre play,
l'ordre de la liste connections
est important. Les profils référencés par d'autres
profils doivent être spécifiés en premier. De plus, --check
ignore la valeur du
controller
et suppose qu’il sera présent lors d'une vraie exécution. Cela signifie
que, en cas de présence d'un controller
invalide, --check
peut indiquer un succès
mais l'exécution réelle échoue.
Si vous ne ramenez que le profil controller
, alors les profils de port seront
automatiquement désactivés. Si vous désactivez la connexion sur certains ou tous les
ports, alors le profil du contrôleur reste actif.
Le type team
utilise roundrobin
comme configuration de runner
. Aucune autre
configuration n'est prise en charge pour le moment.
type: vlan
Similaire à controller
, le parent
fait référence au profil de connexion dans le
rôle ansible. L’identifiant vlan peut être spécifié en utilisant un paramètre vlan
imbriqué, la valeur valide de l’identifiant vlan varie de 0 à 4094. Voici comment
spécifier l’identifiant vlan :
type: vlan
vlan:
id: 6
type: macvlan
Similaire à controller
et vlan
, le parent
fait référence au profil de connexion
dans le rôle ansible.
type: infiniband
Pour la connexion infiniband, elle n'est actuellement prise en charge que pour le fournisseur nm, et les options suivantes sont prises en charge :
p_key
: La P_Key infiniband à utiliser pour le périphérique. Lorsqu'elle n'est pas spécifiée, la connexion est créée sur les fabric physiques infiniband. Sinon, c'est un entier non signé de 16 bits et la connexion ipoib (IP sur Infiniband) sera créée, le bit de poids fort doit être défini s'il s'agit d'un P_Key de "pleine adhésion". Les valeurs spécialesp_key
0x0000 et 0x8000 sont invalides car le noyau ne les prend pas en charge.transport_mode
: Le mode opérationnel de la connexion ipoib (IP sur Infiniband). Les modes possibles sontdatagram
(par défaut) etconnected
.
Remarque : Si le p_key
est spécifié, alors interface_name
doit être non défini.
type: wireless
Le type wireless
prend en charge l'authentification WPA-PSK (mot de passe),
l'authentification WPA-EAP (802.1x), l'authentification WPA3-Personal SAE (mot de
passe) et Enhanced Open (OWE).
nm
(NetworkManager) est le seul fournisseur network_provider
pris en charge pour
ce type.
Si WPA-EAP est utilisé, les paramètres ieee802_1x doivent être définis dans l’option ieee802_1x.
Les options suivantes sont prises en charge :
ssid
: le SSID du réseau sans fil (requis)key_mgmt
(requis)Toute clé de la liste suivante :
owe
sae
wpa-eap
wpa-psk
password
: le mot de passe pour le réseau (requis siwpa-psk
ousae
est utilisé)
type: dummy
Interface réseau fictive, nm
(NetworkManager) est le seul fournisseur
network_provider
pris en charge pour ce type.
autoconnect
Par défaut, les profils sont créés avec autoconnect activé.
Pour
NetworkManager
, cela correspond à la propriétéconnection.autoconnect
.Pour
initscripts
, cela correspond à la propriétéONBOOT
.
mac
L'adresse mac
est optionnelle et restreint le profil à être utilisable uniquement sur
des appareils avec l'adresse MAC donnée. mac
n'est autorisé que pour le type
ethernet
ou infiniband
afin de correspondre à un appareil non virtuel avec le
profil. La valeur de l'adresse mac
doit être spécifiée en notation hexadécimale
avec des deux-points (par exemple : mac: "00:00:5e:00:53:5d"
). Pour éviter que
l'analyse YAML ne considère les adresses mac comme des entiers en notation
sexagécimale (base 60) (voir https://yaml.org/spec/1.1/#id858600), il est
recommandé de toujours mettre la valeur entre guillemets et parfois c'est
nécessaire.
Pour
NetworkManager
,mac
est l'adresse MAC permanente,ethernet.mac-address
.Pour
initscripts
,mac
est l'adresse MAC actuellement configurée de l'appareil (HWADDR
).
cloned_mac
L'adresse cloned_mac
est optionnelle et permet de spécifier la stratégie pour
obtenir une adresse mac par défaut ou définir votre propre mac. La valeur de
l'adresse cloned_mac
doit être spécifiée en notation hexadécimale comme la
propriété mac
. En plus de spécifier explicitement la valeur en tant qu'adresse MAC
avec notation hexadécimale, les valeurs spéciales suivantes sont également
prises en charge :
default
: honorer le comportement par défaut dans NetworkManagerpermanent
: utiliser l'adresse MAC permanente de l'appareilpreserve
: ne pas changer l'adresse MAC de l'appareil lors de l'activationrandom
: générer une valeur aléatoire à chaque connexionstable
: générer une adresse MAC stable et hachée
mtu
L'option mtu
désigne l'unité maximale de transmission pour le périphérique du
profil. La valeur maximale dépend du périphérique. Pour les périphériques virtuels,
la valeur maximale de l'option mtu
dépend du périphérique sous-jacent.
interface_name
Pour les types ethernet
et infiniband
, l'option interface_name
limite le
profil à l'interface donnée par son nom. Cet argument est optionnel et par défaut, le
nom du profil est utilisé, sauf si une adresse mac est spécifiée en utilisant la clé
mac
. Spécifier une chaîne vide (""
) signifie que le profil n'est pas restreint à
une interface réseau.
Remarque : Avec le naming d'interface persistant,
l'interface est prévisible selon la configuration matérielle. Sinon, l'adresse mac
pourrait être une option.
Pour les types d'interfaces virtuelles comme les ponts, le interface_name
est le nom
de l'interface créée. En cas d'absence de interface_name
, le nom du profil est utilisé.
Remarque : Le name
(le nom du profil) et le interface_name
(le nom de l'appareil) peuvent
être différents ou le profil peut ne pas être lié à une interface du tout.
match
Paramètres pour spécifier les appareils ou les systèmes qui correspondent à un profil.
Actuellement, seul le paramètre path
est implémenté.
Les paramètres prennent en charge une liste de modèles qui soutiennent les modificateurs et caractères génériques suivants :
Modificateurs spéciaux pour les paramètres match
:
|
, l'élément est une alternative, la correspondance est vraie si au moins une des alternatives correspond (OU logique). Par défaut, un élément est une alternative. Cela signifie qu’un élémentfoo
se comporte de la même manière que|foo
&
, l'élément est obligatoire, la correspondance est vraie si tous les éléments correspondent (ET logique)!
, un élément peut également être inversé avec un point d'exclamation (!
) entre le symbole de barre verticale (ou le&
) et devant le modèle. Notez que!foo
est un raccourci pour la correspondance obligatoire&!foo
\
, un antislash peut être utilisé au début de l’élément (après les caractères spéciaux optionnels) pour échapper au début du modèle. Par exemple,&\!a
est une correspondance obligatoire pour littéralement!a
Modèles génériques pour les paramètres match
:
En général, ceux-ci fonctionnent comme les modèles de shell.
*
, correspond à zéro ou plusieurs caractères?
, correspond à n'importe quel caractère unique[fo]
- correspond à n'importe quel caractère uniquef
ouo
- prend également en charge les plages -[0-9]
correspondra à n'importe quel chiffre unique
path
Le paramètre path
est une liste de modèles à faire correspondre avec la propriété
ID_PATH
udev des appareils. La propriété ID_PATH
udev représente le chemin
persistent d'un appareil. Elle se compose d'une chaîne de sous-système (pci, usb, platform, etc.)
et d'un identifiant spécifique au sous-système. La ID_PATH
d'un appareil peut être obtenue avec
la commande udevadm info /sys/class/net/$dev | grep ID_PATH=
ou en regardant la propriété
path
exportée par NetworkManager (nmcli -f general.path device show $dev
).
Le paramètre path
est optionnel et limite le profil à être activé uniquement sur
des appareils avec un ID_PATH
correspondant. Le paramètre path
est uniquement
pris en charge pour les profils ethernet ou infiniband. Il prend en charge les
modificateurs et les caractères génériques tels que décrits pour les paramètres match.
zone
L'option zone
définit la zone firewalld pour l'interface.
Les ports vers les dispositifs de pont, de liaison ou d'équipe ne peuvent pas spécifier une zone.
ip
La configuration IP prend en charge les options suivantes :
address
L'adressage manuel peut être spécifié via une liste d'adresses sous l'optionaddress
.auto_gateway
S'il est activé, une route par défaut sera configurée en utilisant la passerelle par défaut. Si désactivé, la route par défaut sera supprimée.
Si cette variable n'est pas spécifiée, le rôle utilisera le comportement par défaut du
network_provider
sélectionné.Définir cette option sur
false
est équivalent à :DEFROUTE = no
dans initscripts, ouipv4.never-default/ipv6.never-default yes
dans nmcli
dhcp4
,auto6
, etipv6_disabled
De plus, un adressage manuel peut être spécifié en définissant soit
dhcp4
soitauto6
. La clédhcp4
est pour DHCPv4 etauto6
pour la configuration automatique d'adresse sans état (SLAAC). Notez que les clésdhcp4
etauto6
peuvent être omises et la clé par défaut dépend de la présence d'adresses manuelles.ipv6_disabled
peut être défini pour désactiver ipv6 pour la connexion.dhcp4_send_hostname
Si
dhcp4
est activé, il peut être configuré si la requête DHCPv4 inclut le nom d'hôte via l'optiondhcp4_send_hostname
. Notez quedhcp4_send_hostname
n'est pris en charge que par le fournisseurnm
et correspond à la propriétéipv4.dhcp-send-hostname
.dns
La configuration DNS manuelle peut être spécifiée via une liste d'adresses données dans l'option
dns
.dns_search
La configuration DNS manuelle peut être spécifiée via une liste de domaines à rechercher donnée dans l'option
dns_search
.dns_options
dns_options
n'est pris en charge que pour le fournisseur NetworkManager. La configuration DNS manuelle via une liste d'options DNS peut être donnée dansdns_options
. La liste des options DNS prises en charge pour les serveurs de noms IPv4 est décrite dans man 5 resolv.conf. Actuellement, la liste des options DNS prises en charge est :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
Remarque : Le paramètre "trust-ad" n'est honoré que si le profil contribue des serveurs noms à resolv.conf, et si tous les profils contribuant ont "trust-ad" activé. Lors de l'utilisation d'un plugin DNS de mise en cache (dnsmasq ou systemd-resolved dans NetworkManager.conf), "edns0" et "trust-ad" sont automatiquement ajoutés.
dns_priority
Priorité des serveurs DNS. La priorité relative pour les serveurs DNS spécifiés par ce paramètre. La valeur par défaut est 0, une valeur numérique inférieure a une priorité plus élevée. La valeur valide de
dns_priority
va de -2147483648 à 2147483647. Les valeurs négatives ont l'effet spécial d'exclure d'autres configurations avec une valeur de priorité numérique plus grande ; ainsi, en présence d'au moins une priorité négative, seuls les serveurs DNS des connexions avec la valeur de priorité la plus basse seront utilisés.gateway4
etgateway6
La passerelle par défaut pour les paquets IPv4 (
gateway4
) ou IPv6 (gateway6
).ipv4_ignore_auto_dns
etipv6_ignore_auto_dns
Si activé, les serveurs de noms et domaines de recherche configurés automatiquement (via DHCPv4, DHCPv6, modem, etc.) pour IPv4 ou IPv6 sont ignorés, seuls les serveurs de noms et les domaines de recherche spécifiés dans les propriétés
dns
etdns_search
sont utilisés. Les paramètres sont distingués par les familles d'adresses. Les variables ne sont pas prises en charge par le fournisseur initscripts.Si les variables ne sont pas spécifiées, le rôle utilisera le comportement par défaut du fournisseur nm.
route_metric4
etroute_metric6
Pour
NetworkManager
,route_metric4
etroute_metric6
correspondent aux propriétésipv4.route-metric
etipv6.route-metric
, respectivement. Si spécifié, cela détermine la métrique de route pour les routes attribuées par DHCP et la route par défaut, et par conséquent la priorité pour plusieurs interfaces. Pourinitscripts
,route_metric4
définit la métrique pour la route par défaut etroute_metric6
n'est pas pris en charge.route
Une configuration de route statique peut être spécifiée via une liste de routes données dans l'option
route
. La valeur par défaut est une liste vide. Chaque route est un dictionnaire contenant les entrées suivantes :gateway
,metric
,network
,prefix
,src
,table
ettype
.network
etprefix
spécifient le réseau de destination.src
spécifie l'adresse IP source pour une route.table
prend en charge à la fois la table numérique et la table nommée. Afin de spécifier la table nommée, les utilisateurs doivent s'assurer que la table nommée est définie correctement dans/etc/iproute2/rt_tables
ou/etc/iproute2/rt_tables.d/*.conf
. La clétype
en option prend en charge les valeursblackhole
,prohibit
, etunreachable
. Voir man 8 ip-route pour leur définition. Les routes avec ces types ne prennent pas en charge ungateway
. Si le type n'est pas spécifié, la route est considérée comme une route unicast. Notez que la notation CIDR (Classless Inter-Domain Routing) ou la notation de masque de réseau ne sont pas prises en charge pour la clénetwork
.routing_rule
Les règles de routage par politique peuvent être spécifiées via une liste de règles données dans l'option
routing_rule
, qui permettent de router les paquets sur d'autres champs de paquet, excepté pour l'adresse de destination. La valeur par défaut est une liste vide. Chaque règle est un dictionnaire avec les entrées suivantes :priority
- La priorité de la règle. Une priorité valide varie de 0 à 4294967295. Un plus grand nombre signifie une priorité plus basse.action
- L'action de la règle. Les valeurs possibles sontto-table
(par défaut),blackhole
,prohibit
,unreachable
.dport
- La plage du port de destination (par exemple1000 - 2000
). Une valeur valide pour dport commence et finit entre 0 et 65534. Le début ne peut pas être plus grand que la fin.family
- La famille IP de la règle. Les valeurs possibles sontipv4
etipv6
.from
- L'adresse source du paquet à faire correspondre (par exemple192.168.100.58/24
).fwmark
- La valeur fwmark du paquet à faire correspondre.fwmask
- La valeur de fwmask du paquet à faire correspondre.iif
- Sélectionnez le nom de l'interface entrante à faire correspondre.invert
- Inverser la correspondance sélectionnée de la règle. Les valeurs possibles sont des valeurs booléennestrue
etfalse
(par défaut). Si la valeur esttrue
, cela correspond à tout paquet qui ne satisfait pas la correspondance sélectionnée de la règle.ipproto
- Sélectionnez la valeur de protocole IP à faire correspondre, la valeur valide varie de 1 à 255.oif
- Sélectionnez le nom de l'interface sortante à faire correspondre.sport
- La plage du port source (par exemple1000 - 2000
). Une valeur valide pour sport commence et finit entre 0 et 65534. Le début ne peut pas être plus grand que la fin.suppress_prefixlength
- Rejet des décisions de routage ayant un préfixe de longueur spécifiée ou moins.table
- La table de routage dans laquelle rechercher pour l'actionto-table
.table
prend en charge à la fois la table numérique et la table nommée. Pour spécifier la table nommée, les utilisateurs doivent s'assurer que la table nommée est bien définie dans/etc/iproute2/rt_tables
ou/etc/iproute2/rt_tables.d/*.conf
.to
- L'adresse de destination du paquet à faire correspondre (par exemple192.168.100.58/24
).tos
- Sélectionnez la valeur tos pour faire correspondre.uid
- La plage du uid à faire correspondre (par exemple1000 - 2000
). Une valeur valide pour uid commence et finit entre 0 et 4294967295. Le début ne peut pas être plus grand que la fin.
route_append_only
L'option
route_append_only
permet uniquement d'ajouter de nouvelles routes aux routes existantes sur le système.Si l'option booléenne
route_append_only
est définie surtrue
, les routes spécifiées sont ajoutées aux routes existantes. Siroute_append_only
est définie surfalse
(par défaut), les routes actuelles sont remplacées. Notez que définirroute_append_only
surtrue
sans définirroute
a pour effet de préserver les routes statiques actuelles.rule_append_only
L'option booléenne
rule_append_only
permet de préserver les règles de routage existantes.
Remarque : Lorsque route_append_only
ou rule_append_only
n'est pas
spécifié, le rôle réseau supprime les routes actuelles ou les règles de routage.
Remarque : Les ports vers les dispositifs de pont, de liaison ou d'équipe ne
peuvent pas spécifier de paramètres ip
.
ethtool
Les paramètres ethtool permettent d'activer ou de désactiver diverses fonctionnalités.
Les noms correspondent aux noms utilisés par l'utilitaire ethtool
. Selon le noyau et le
dispositif réel, la modification de certaines options peut ne pas être prise en charge.
La configuration ethtool prend en charge les options suivantes :
ring
Modifie les paramètres de
rx
/tx
ring
du périphérique réseau spécifié. La liste des paramètresring
pris en charge est :rx
- Change le nombre d'entrées de ring pour la ring Rx.rx-jumbo
- Change le nombre d'entrées de ring pour la ring Jumbo Rx.rx-mini
- Change le nombre d'entrées de ring pour la ring Mini Rx.tx
- Change le nombre d'entrées de ring pour la ring Tx.
ethtool:
features:
esp_hw_offload: true|false # optionnel
esp_tx_csum_hw_offload: true|false # optionnel
fcoe_mtu: true|false # optionnel
gro: true|false # optionnel
gso: true|false # optionnel
highdma: true|false # optionnel
hw_tc_offload: true|false # optionnel
l2_fwd_offload: true|false # optionnel
loopback: true|false # optionnel
lro: true|false # optionnel
ntuple: true|false # optionnel
rx: true|false # optionnel
rx_all: true|false # optionnel
rx_fcs: true|false # optionnel
rx_gro_hw: true|false # optionnel
rx_udp_tunnel_port_offload: true|false # optionnel
rx_vlan_filter: true|false # optionnel
rx_vlan_stag_filter: true|false # optionnel
rx_vlan_stag_hw_parse: true|false # optionnel
rxhash: true|false # optionnel
rxvlan: true|false # optionnel
sg: true|false # optionnel
tls_hw_record: true|false # optionnel
tls_hw_tx_offload: true|false # optionnel
tso: true|false # optionnel
tx: true|false # optionnel
tx_checksum_fcoe_crc: true|false # optionnel
tx_checksum_ip_generic: true|false # optionnel
tx_checksum_ipv4: true|false # optionnel
tx_checksum_ipv6: true|false # optionnel
tx_checksum_sctp: true|false # optionnel
tx_esp_segmentation: true|false # optionnel
tx_fcoe_segmentation: true|false # optionnel
tx_gre_csum_segmentation: true|false # optionnel
tx_gre_segmentation: true|false # optionnel
tx_gso_partial: true|false # optionnel
tx_gso_robust: true|false # optionnel
tx_ipxip4_segmentation: true|false # optionnel
tx_ipxip6_segmentation: true|false # optionnel
tx_nocache_copy: true|false # optionnel
tx_scatter_gather: true|false # optionnel
tx_scatter_gather_fraglist: true|false # optionnel
tx_sctp_segmentation: true|false # optionnel
tx_tcp_ecn_segmentation: true|false # optionnel
tx_tcp_mangleid_segmentation: true|false # optionnel
tx_tcp_segmentation: true|false # optionnel
tx_tcp6_segmentation: true|false # optionnel
tx_udp_segmentation: true|false # optionnel
tx_udp_tnl_csum_segmentation: true|false # optionnel
tx_udp_tnl_segmentation: true|false # optionnel
tx_vlan_stag_hw_insert: true|false # optionnel
txvlan: true|false # optionnel
coalesce:
adaptive_rx: true|false # optionnel
adaptive_tx: true|false # optionnel
pkt_rate_high: 0 # optionnel min=0 max=0xffffffff
pkt_rate_low: 0 # optionnel min=0 max=0xffffffff
rx_frames: 0 # optionnel min=0 max=0xffffffff
rx_frames_high: 0 # optionnel min=0 max=0xffffffff
rx_frames_irq: 0 # optionnel min=0 max=0xffffffff
rx_frames_low: 0 # optionnel min=0 max=0xffffffff
rx_usecs: 0 # optionnel min=0 max=0xffffffff
rx_usecs_high: 0 # optionnel min=0 max=0xffffffff
rx_usecs_irq: 0 # optionnel min=0 max=0xffffffff
rx_usecs_low: 0 # optionnel min=0 max=0xffffffff
sample_interval: 0 # optionnel min=0 max=0xffffffff
stats_block_usecs: 0 # optionnel min=0 max=0xffffffff
tx_frames: 0 # optionnel min=0 max=0xffffffff
tx_frames_high: 0 # optionnel min=0 max=0xffffffff
tx_frames_irq: 0 # optionnel min=0 max=0xffffffff
tx_frames_low: 0 # optionnel min=0 max=0xffffffff
tx_usecs: 0 # optionnel min=0 max=0xffffffff
tx_usecs_high: 0 # optionnel min=0 max=0xffffffff
tx_usecs_irq: 0 # optionnel min=0 max=0xffffffff
tx_usecs_low: 0 # optionnel min=0 max=0xffffffff
ring:
rx: 0 # optionnel min=0 max=0xffffffff
rx_jumbo: 0 # optionnel min=0 max=0xffffffff
rx_mini: 0 # optionnel min=0 max=0xffffffff
tx: 0 # optionnel min=0 max=0xffffffff
ieee802_1x
Configure l'authentification 802.1x pour une interface.
Actuellement, NetworkManager est le seul fournisseur pris en charge et EAP-TLS est la seule méthode EAP prise en charge.
Les certificats et clés SSL doivent être déployés sur l'hôte avant d'exécuter le rôle.
eap
La méthode EAP autorisée à utiliser lors de l'authentification au réseau avec 802.1x.
Actuellement,
tls
est la valeur par défaut et la seule valeur acceptée.identity
(requis)Chaîne d'identité pour les méthodes d'authentification EAP.
private_key
(requis)Chemin absolu vers la clé privée codée PEM ou PKCS#12 du client utilisée pour l'authentification 802.1x.
private_key_password
Mot de passe de la clé privée spécifiée dans
private_key
.private_key_password_flags
Liste des drapeaux pour configurer la manière dont le mot de passe de la clé privée est géré.
Plusieurs drapeaux peuvent être spécifiés.
Les drapeaux valides sont :
none
agent-owned
not-saved
not-required
Voir la documentation de NetworkManager sur les "types de drapeaux secrets" pour plus de détails (
man 5 nm-settings
).client_cert
(requis)Chemin absolu vers le certificat encodé PEM du client utilisé pour l'authentification 802.1x.
ca_cert
Chemin absolu vers le certificat d'autorité de certification encodé PEM utilisé pour vérifier le serveur EAP.
ca_path
Chemin absolu vers le répertoire contenant des certificats d'autorité de certification additionnels encodés pem utilisés pour vérifier le serveur EAP. Peut être utilisé à la place ou en plus de ca_cert. Ne peut pas être utilisé si system_ca_certs est activé.
system_ca_certs
Si défini sur
true
, NetworkManager utilisera les certificats CA de confiance du système pour vérifier le serveur EAP.domain_suffix_match
Si défini, NetworkManager s'assure que le nom de domaine du certificat du serveur EAP correspond à cette chaîne.
bond
Le paramètre bond
configure les options des interfaces agrégées (type bond
).
Voir la documentation du noyau pour le bonding
ou la documentation nmcli
de votre distribution pour les valeurs valides. Il prend
en charge les options suivantes :
mode
Mode de bonding. Les valeurs possibles sont
balance-rr
(par défaut),active-backup
,balance-xor
,broadcast
,802.3ad
,balance-tlb
, oubalance-alb
.ad_actor_sys_prio
En mode de bonding
802.3ad
, cela spécifie la priorité système. La plage valide est de 1 à 65535.ad_actor_system
En mode de bonding
802.3ad
, cela spécifie l'adresse mac du système pour l'acteur dans les échanges de paquets de protocole (LACPDUs).ad_select
Cette option spécifie la logique de sélection d'agrégation 802.3ad à utiliser. Les valeurs possibles sont :
stable
,bandwidth
,count
.ad_user_port_key
En mode de bonding
802.3ad
, cela définit les 10 bits supérieurs de la clé de port. La plage autorisée pour la valeur est 0-1023.all_ports_active
all_slaves_active
dans le noyau et NetworkManager. La valeur booléennefalse
supprime les trames en double (reçues sur des ports inactifs) et la valeur booléennetrue
livre les trames en double.arp_all_targets
Cette option spécifie la quantité d'arp_ip_targets qui doivent être accessibles pour que le moniteur ARP considère qu'un port est en ligne. Les valeurs possibles sont
any
ouall
.arp_interval
Cette option spécifie la fréquence de surveillance du lien ARP en millisecondes. Une valeur de 0 désactive la surveillance ARP.
arp_validate
Dans n'importe quel mode qui prend en charge la surveillance ARP, cette option spécifie si les probes et réponses ARP doivent être validées. Sinon, pour des raisons de surveillance de lien, il convient de préciser si le trafic non ARP doit être filtré (ignoré). Les valeurs possibles sont :
none
,active
,backup
,all
,filter
,filter_active
,filter_backup
.arp_ip_target
Lorsque
arp_interval
est activé, cette option spécifie les adresses IP à utiliser comme pairs de surveillance ARP.downdelay
Le temps à attendre (en millisecondes) avant de désactiver un port après qu'une panne de lien a été détectée.
fail_over_mac
Cette option spécifie la politique pour sélectionner l'adresse MAC pour l'interface de liaison en mode actif-backup. Les valeurs possibles sont :
none
(par défaut),active
,follow
.lacp_rate
En mode de bonding
802.3ad
, cette option définit la fréquence à laquelle nous demandons au partenaire de lien de transmettre des paquets LACPDU. Les valeurs possibles sont :slow
,fast
.lp_interval
Cette option spécifie le nombre de secondes entre les instances où le pilote de liaison envoie des paquets d'apprentissage à chaque commutateur pair des ports.
miimon
Définit l'intervalle de surveillance de lien MII (en millisecondes).
min_links
Cette option spécifie le nombre minimum de liens qui doivent être actifs avant d'affirmer le transport.
num_grat_arp
Cette option spécifie le nombre de notifications de pairs (ARP gratuits) à émettre après un événement de basculement. La plage autorisée pour la valeur est 0-255.
packets_per_port
En mode de bonding
balance-rr
, cette option spécifie le nombre de paquets autorisés pour un port dans la transmission réseau avant de passer au suivant. La plage autorisée pour la valeur est 0-65535.peer_notif_delay
Cette option spécifie le délai (en millisecondes) entre chaque notification de pair lorsqu'elles sont émises après un événement de basculement.
primary
Cette option définit le périphérique principal.
primary_reselect
Cette option spécifie la politique de reselection pour le port principal. Les valeurs possibles sont :
always
,better
,failure
.resend_igmp
Cette option spécifie le nombre de rapports d'appartenance IGMP à émettre après un événement de basculement. La plage autorisée pour la valeur est 0-255.
tlb_dynamic_lb
Cette option spécifie si le mélangé dynamique des flux est activé en mode tlb. La valeur booléenne
true
active le mélange de flux tandis que la valeur booléennefalse
le désactive.updelay
Cette option spécifie le temps (en millisecondes) à attendre avant d'activer un port après qu'une récupération de lien a été détectée.
use_carrier
Cette option spécifie si l'intervalle miimon doit utiliser des ioctls MII ou ETHTOOL par rapport à netif_carrier_ok() pour déterminer l'état du lien. La valeur booléenne
true
active l'utilisation de netif_carrier_ok() tandis que la valeur booléennefalse
utilise plutôt des ioctls MII ou ETHTOOL.xmit_hash_policy
Cette option spécifie la politique de hachage de transmission à utiliser pour la sélection du port, les valeurs possibles sont :
layer2
,layer3+4
,layer2+3
,encap2+3
,encap3+4
,vlan+srcmac
.
Exemples d'options
Définir le même profil de connexion plusieurs fois :
network_connections:
- name: Wired0
type: ethernet
interface_name: eth0
ip:
dhcp4: true
- name: Wired0
state: up
Activer un profil de connexion préexistant :
network_connections:
- name: eth0
state: up
Désactiver un profil de connexion préexistant :
network_connections:
- name: eth0
state: down
Créer un profil de connexion permanent :
network_connections:
- name: eth0
#persistent_state: present # par défaut
type: ethernet
autoconnect: true
mac: "00:00:5e:00:53:5d"
ip:
dhcp4: true
Spécifier un profil de connexion pour un dispositif ethernet avec le ID_PATH
:
network_connections:
- name: eth0
type: ethernet
# Pour les dispositifs PCI, le chemin a la forme "pci-$domain:$bus:$device.$function"
# Le profil ne correspondra qu'à l'interface à l'adresse PCI pci-0000:00:03.0
match:
path:
- pci-0000:00:03.0
ip:
address:
- 192.0.2.3/24
- name: eth0
type: ethernet
# Spécifier un profil de connexion pour un dispositif ethernet uniquement avec l'adresse PCI
# pci-0000:00:01.0 ou 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
Supprimer un profil de connexion nommé eth0
(s'il existe) :
network_connections:
- name: eth0
persistent_state: absent
Configurer les paramètres de liaison Ethernet :
network_connections:
- name: eth0
type: ethernet
ethernet:
autoneg: false
speed: 1000
duplex: full
Créer une connexion de pont :
network_connections:
- name: br0
type: bridge
#interface_name: br0 # se par defaut au nom de connexion
Configurer une connexion de pont :
network_connections:
- name: internal-br0
interface_name: br0
type: bridge
ip:
dhcp4: false
auto6: false
Définir controller
et 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
Configurer les VLANs :
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
Configurer 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
Configurer une connexion sans fil :
network_connections:
- name: wlan0
type: wireless
wireless:
ssid: "Mon Réseau WPA2-PSK"
key_mgmt: "wpa-psk"
# recommande le cryptage du mot de passe sans fil avec vault
# voir https://docs.ansible.com/ansible/latest/user_guide/vault.html
password: "p@55w0rD"
Définir la configuration 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
Configurer 802.1x :
network_connections:
- name: eth0
type: ethernet
ieee802_1x:
identity: myhost
eap: tls
private_key: /etc/pki/tls/client.key
# recommande le cryptage du mot de passe de la clé privée avec vault
# voir 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
Configurer Enhanced Open (OWE) :
network_connections:
- name: wlan0
type: wireless
wireless:
ssid: "WIFI_SSID"
key_mgmt: "owe"
Exemples d'application de la configuration d'état réseau
Configurer les adresses 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
Configurer la route :
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
Configurer les options de recherche et serveur DNS :
network_state:
dns-resolver:
config:
search:
- example.com
- example.org
server:
- 2001:4860:4860::8888
- 8.8.8.8
Configuration invalide et incorrecte
Le rôle réseau
rejette les configurations invalides. Il est recommandé de tester le rôle
d'abord avec --check
. Il n'y a pas de protection contre une configuration incorrecte
(mais valide). Vérifiez soigneusement votre configuration avant de l'appliquer.
Module interne network_connections
Le module interne network_connections
est destiné à un usage interne ou à des tests
d'intégration et n'est pas destiné à un accès ou à une utilisation directe externe.
Lorsque ce module interne est utilisé dans des tests d'intégration, les tâches spécifiées
dans tasks/main.yaml
sont ignorées, ce qui accélère l'exécution du test.
Compatibilité
Le rôle réseau
prend en charge le même schéma de configuration pour les deux fournisseurs
(nm
et initscripts
). Cela signifie que vous pouvez utiliser le même playbook avec
NetworkManager et initscripts. Cependant, notez que toutes les options ne sont pas
exactement gérées de la même manière par chaque fournisseur. Faites d'abord une
exécution de test avec --check
.
Il n'est pas pris en charge de créer une configuration pour un fournisseur et d'attendre
qu'un autre fournisseur les gère. Par exemple, créer des profils avec le fournisseur
initscripts
, et plus tard activer NetworkManager ne garantit pas que cela fonctionnera
automatiquement. Il est possible que vous deviez ajuster la configuration afin qu'elle
puisse être utilisée par un autre fournisseur.
Par exemple, configurer un hôte RHEL6 avec initscripts et mettre à niveau vers RHEL7 tout en continuant à utiliser initscripts en RHEL7 est un scénario acceptable. Ce qui n'est pas garanti est de passer à RHEL7, de désactiver initscripts et d'attendre que NetworkManager prenne automatiquement en charge la configuration.
En fonction de la configuration de NetworkManager, les connexions peuvent également être stockées sous forme de fichiers ifcfg, mais il n'est pas garanti que des initscripts pure puissent gérer ces fichiers ifcfg après la désactivation du service NetworkManager.
Le rôle réseau
prend également en charge la configuration dans certaines distributions
Ansible que le rôle traite comme RHEL, telles qu'AlmaLinux, CentOS, OracleLinux, Rocky.
Limitations
Comme Ansible fonctionne généralement via le réseau, par exemple via SSH, il y a certaines limitations à prendre en compte :
Le rôle réseau
ne prend pas en charge le bootstrap de la configuration réseau. Une
option peut être ansible-pull.
Une autre option peut être de configurer initialement le système lors de l'installation
(basé sur ISO, kickstart, etc.), de sorte que l'hôte soit connecté à un réseau ou VLAN
de gestion. Cela dépend fortement de votre environnement.
Pour le fournisseur initscripts
, déployer un profil signifie simplement créer les fichiers
ifcfg. Rien ne se passe automatiquement tant que le play n’émets pas ifup
ou ifdown
via les états up
ou down
state -- à moins qu'il n'y ait d'autres composants
qui dépendent des fichiers ifcfg et réagissent aux modifications.
Le fournisseur initscripts
exige que les différents profils soient dans le bon ordre
lorsqu’ils dépendent les uns des autres. Par exemple, le périphérique de contrôleur de
liaison doit être spécifié avant les dispositifs de port.
Lors de la suppression d'un profil pour NetworkManager, cela prend également la connexion
hors ligne et éventuellement supprime les interfaces virtuelles. Avec le fournisseur
initscripts
, supprimer un profil ne modifie pas l'état d'exécution actuel (c'est une
fonction future pour NetworkManager également).
Pour NetworkManager, modifier une connexion avec autoconnect d'activé peut donner lieu à l'activation d'un nouveau profil sur une interface précédemment déconnectée. De plus, supprimer une connexion NetworkManager qui est actuellement active entraîne la suppression de l'interface. Par conséquent, l'ordre des étapes doit être suivi, et il peut être nécessaire de gérer avec soin la propriété autoconnect. Cela devrait être amélioré dans NetworkManager RFE rh#1401515.
Il semble difficile de changer le réseau de l'hôte cible de manière à rompre la
connexion SSH actuelle d'ansible. Si vous souhaitez faire cela, ansible-pull
pourrait être une solution. Alternativement, une combinaison d’async
/poll
en
changeant le ansible_host
au milieu du play.
TODO Le rôle actuel ne prend pas encore en charge le fractionnement facile du play en étapes de préconfiguration et en une seconde étape pour activer la nouvelle configuration.
En général, pour exécuter le play avec succès, déterminez quelle configuration est active en premier lieu, puis configurez soigneusement une séquence d'étapes pour passer à la nouvelle configuration. La solution réelle dépend fortement de votre environnement.
Gestion des problèmes potentiels
Lorsque quelque chose tourne mal lors de la configuration du réseau à distance, vous pourriez avoir besoin d'un accès physique à la machine pour vous rétablir.
TODO NetworkManager prend en charge une fonctionnalité de checkpoint/rollback. Au début du play, nous pourrions créer un point de contrôle et si nous perdons la connectivité en raison d'une erreur, NetworkManager reviendrait automatiquement en arrière après un délai d'attente. Les limitations sont que cela ne fonctionnerait qu'avec NetworkManager, et il n'est pas clair que le rollback aboutisse à une configuration fonctionnelle.
Vous voulez contribuer ? Jetez un œil à nos directives de contribution !
rpm-ostree
Voir README-ostree.md
Configure networking
ansible-galaxy install linux-system-roles.network