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 ligne- NM_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 variable- network_providerpermet de définir un fournisseur spécifique (- nmou- initscripts). En la définissant à- {{ network_provider_os_default }}, le fournisseur est défini en fonction du système d'exploitation. Cela est généralement- nmsauf 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 que- network_connections, qui est une liste de dictionnaires contenant des options spécifiques.
- network_allow_restart- Il est par défaut- false. 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éfinissant- network_allow_restartà- true. Définir- network_allow_restartà- falseempê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'option- namecorrespond à l'option de propriété- connection.id. Bien que NetworkManager prenne en charge plusieurs connexions avec le même- connection.id, le rôle- réseaune peut pas gérer un- nameen double. Spécifier un- nameplusieurs fois fait référence au même profil de connexion.
- Pour - initscripts, l'option- namedétermine le nom du fichier ifcfg- /etc/sysconfig/network-scripts/ifcfg-$NAME. Notez que le- namene spécifie pas le- DEVICEmais un nom de fichier. En conséquence,- '/'n'est pas un caractère valide pour le- name.
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'option- waitest 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’appel- ifdown {{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 :
- NetworkManagersupprime tous les profils de connexion avec le- connection.idcorrespondant. 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).
- initscriptssupprime 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) ou- false[si l'auto-négociation est activée ou désactivée]
- speed: vitesse en Mbit/s
- duplex:- halfou- full
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, - controllersera converti en- connection.uuiddu profil correspondant.
- Pour initscripts, le contrôleur est recherché comme l’ - DEVICEdans 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éciales- p_key0x0000 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 sont- datagram(par défaut) et- connected.
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 si- wpa-pskou- saeest 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,- macest l'adresse MAC permanente,- ethernet.mac-address.
- Pour - initscripts,- macest 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 NetworkManager
- permanent: utiliser l'adresse MAC permanente de l'appareil
- preserve: ne pas changer l'adresse MAC de l'appareil lors de l'activation
- random: générer une valeur aléatoire à chaque connexion
- stable: 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ément- foose 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- !fooest 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,- &\!aest 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 unique- fou- o- 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 :
- addressL'adressage manuel peut être spécifié via une liste d'adresses sous l'option- address.
- 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_providersélectionné.- Définir cette option sur - falseest équivalent à :- DEFROUTE = nodans initscripts, ou
- ipv4.never-default/ipv6.never-default yesdans nmcli
 
- dhcp4,- auto6, et- ipv6_disabled- De plus, un adressage manuel peut être spécifié en définissant soit - dhcp4soit- auto6. La clé- dhcp4est pour DHCPv4 et- auto6pour la configuration automatique d'adresse sans état (SLAAC). Notez que les clés- dhcp4et- auto6peuvent être omises et la clé par défaut dépend de la présence d'adresses manuelles.- ipv6_disabledpeut être défini pour désactiver ipv6 pour la connexion.
- dhcp4_send_hostname- Si - dhcp4est activé, il peut être configuré si la requête DHCPv4 inclut le nom d'hôte via l'option- dhcp4_send_hostname. Notez que- dhcp4_send_hostnamen'est pris en charge que par le fournisseur- nmet 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_optionsn'est pris en charge que pour le fournisseur NetworkManager. La configuration DNS manuelle via une liste d'options DNS peut être donnée dans- dns_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_priorityva 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.
- gateway4et- gateway6- La passerelle par défaut pour les paquets IPv4 ( - gateway4) ou IPv6 (- gateway6).
- ipv4_ignore_auto_dnset- ipv6_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 - dnset- dns_searchsont 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_metric4et- route_metric6- Pour - NetworkManager,- route_metric4et- route_metric6correspondent aux propriétés- ipv4.route-metricet- ipv6.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. Pour- initscripts,- route_metric4définit la métrique pour la route par défaut et- route_metric6n'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,- tableet- type.- networket- prefixspécifient le réseau de destination.- srcspécifie l'adresse IP source pour une route.- tableprend 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_tablesou- /etc/iproute2/rt_tables.d/*.conf. La clé- typeen option prend en charge les valeurs- blackhole,- prohibit, et- unreachable. Voir man 8 ip-route pour leur définition. Les routes avec ces types ne prennent pas en charge un- gateway. 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 sont- to-table(par défaut),- blackhole,- prohibit,- unreachable.
- dport- La plage du port de destination (par exemple- 1000 - 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 sont- ipv4et- ipv6.
- from- L'adresse source du paquet à faire correspondre (par exemple- 192.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éennes- trueet- false(par défaut). Si la valeur est- true, 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 exemple- 1000 - 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'action- to-table.- tableprend 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_tablesou- /etc/iproute2/rt_tables.d/*.conf.
- to- L'adresse de destination du paquet à faire correspondre (par exemple- 192.168.100.58/24).
- tos- Sélectionnez la valeur tos pour faire correspondre.
- uid- La plage du uid à faire correspondre (par exemple- 1000 - 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_onlypermet uniquement d'ajouter de nouvelles routes aux routes existantes sur le système.- Si l'option booléenne - route_append_onlyest définie sur- true, les routes spécifiées sont ajoutées aux routes existantes. Si- route_append_onlyest définie sur- false(par défaut), les routes actuelles sont remplacées. Notez que définir- route_append_onlysur- truesans définir- routea pour effet de préserver les routes statiques actuelles.
- rule_append_only- L'option booléenne - rule_append_onlypermet 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- ringdu périphérique réseau spécifié. La liste des paramètres- ringpris 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, - tlsest 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, ou- balance-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_activedans le noyau et NetworkManager. La valeur booléenne- falsesupprime les trames en double (reçues sur des ports inactifs) et la valeur booléenne- truelivre 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 - anyou- all.
- 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_intervalest 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 - trueactive le mélange de flux tandis que la valeur booléenne- falsele 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 - trueactive l'utilisation de netif_carrier_ok() tandis que la valeur booléenne- falseutilise 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