Note

Ce plugin fait partie de la junipernetworks.junos collection (version 1.3.0).

Pour l'installer, utilisez : ansible-galaxy collection install junipernetworks.junos.

Pour l'utiliser dans un playbook, spécifiez : junipernetworks.junos.junos_l3_interfaces.

Nouveau dans la version 1.0.0 : de junipernetworks.junos

  • Synopsis
  • Exigences
  • Paramètres
  • Notes
  • Exemples
  • Valeurs de retour

Synopsis

  • Ce module fournit une gestion déclarative d'une interface de couche 3 sur les équipements Juniper JUNOS.

Note

Ce module a une correspondance plugin d'action.

Exigences

Les exigences ci-dessous sont nécessaires sur l'hôte qui exécute ce module.

  • ncclient (>=v0.6.4)

Paramètres

Paramètre Choix/par défaut Commentaires
configliste / elements=dictionnaire Un dictionnaire d'options d'interface de couche 3
ipv4liste / elements=dictionnaire Adresses IPv4 à définir pour l'interface logique de couche 3 mentionnée à l'élément nom option. Le format de l'adresse est /. Le masque est un nombre compris entre 0 et 32 ; par exemple, 192.0.2.1/24, ou dhcp pour demander une adresse IP à DHCP
adressechaîne de caractères Adresse IPv4 à définir pour l'interface spécifique.
ipv6liste / elements=dictionnaire Adresses IPv6 à définir pour l'interface logique de couche 3 mentionnée à l'élément nom option. Le format de l'adresse est /le masque est un nombre compris entre 0 et 128, par exemple, 2001:db8:2201:1::1/64 ou auto-config pour utiliser SLAAC
adressechaîne de caractères Adresse IPv6 à définir pour l'interface spécifique.
nomchaîne de caractères / obligatoire Nom complet de l'interface, par exemple ge-0/0/1.
uniténombre entier Par défaut :
0
Numéro d'interface logique. Valeur de unit doit être de type entier
running_configchaîne de caractères Cette option est utilisée uniquement avec l'état analysé.La valeur de cette option doit correspondre à la sortie reçue du dispositif Junos en exécutant la commande show interfaces.l'état analysé lit la configuration de running_config et la transforme en données structurées Ansible selon l'argspec du module de ressources et la valeur est ensuite retournée dans l'option analysé dans le résultat
étatchaîne de caractères
    Choix :

  • fusionné
  • a remplacé
  • remplacé
  • supprimé
  • rassemblé
  • rendu
  • analysé
L'état de la configuration après l'achèvement du module

Notes

Note

  • Ce module nécessite que le service système netconf soit activé sur le périphérique géré.
  • Ce module fonctionne avec la connexion netconf. Voir les options de la plate-forme Junos OS.
  • Testé contre JunOS v18.4R1.

Exemples

# Using deleted# Before state:# -------------## admin# show interfaces# ge-0/0/1 {#     description "L3 interface";#     unit 0 {#         family inet {#             address 10.200.16.10/24;#         }#     }# }# ge-0/0/2 {#     description "non L3 interface";#     unit 0 {#         family ethernet-switching {#             interface-mode access;#             vlan {#                 members 2;#             }#         }#     }# }-name: Delete JUNOS L3 logical interface
  junipernetworks.junos.junos_l3_interfaces:config:-name: ge-0/0/1
    -name: ge-0/0/2
  state: deleted

# After state:# ------------## admin# show interfaces# ge-0/0/1 {#     description "deleted L3 interface";# }# ge-0/0/2 {#     description "non L3 interface";#     unit 0 {#         family ethernet-switching {#             interface-mode access;#             vlan {#                 members 2;#             }#         }#     }# }# Using merged# Before state# ------------## admin# show interfaces# ge-0/0/1 {#     description "L3 interface";#     unit 0 {#         family inet {#             address 10.200.16.10/24;#         }#     }# }# ge-0/0/2 {#     description "non configured interface";#     unit 0;# }-name: Merge provided configuration with device configuration (default operation is merge)
  junipernetworks.junos.junos_l3_interfaces:config:-name: ge-0/0/1
      ipv4:-address: 192.168.1.10/24
      ipv6:-address: 8d8d:8d01::1/64
    -name: ge-0/0/2
      ipv4:-address: dhcp
    state: merged

# After state:# ------------## admin# show interfaces# ge-0/0/1 {#     description "L3 interface";#     unit 0 {#         family inet {#             address 10.200.16.10/24;#             address 192.168.1.10/24;#         }#         family inet6 {#             address 8d8d:8d01::1/64;#         }#     }# }# ge-0/0/2 {#     description "L3 interface with dhcp";#     unit 0 {#         family inet {#             dhcp;#         }#     }# }# Using overridden# Before state# ------------## admin# show interfaces# ge-0/0/1 {#     description "L3 interface";#     unit 0 {#         family inet {#             address 10.200.16.10/24;#         }#     }# }# ge-0/0/2 {#     description "L3 interface with dhcp";#     unit 0 {#         family inet {#             dhcp;#         }#     }# }# ge-0/0/3 {#     description "another L3 interface";#     unit 0 {#         family inet {#             address 192.168.1.10/24;#         }#     }# }-name: Override provided configuration with device configuration
  junipernetworks.junos.junos_l3_interfaces:config:-name: ge-0/0/1
      ipv4:-address: 192.168.1.10/24
      ipv6:-address: 8d8d:8d01::1/64
    -name: ge-0/0/2
      ipv6:-address: 2001:db8:3000::/64
    state: overridden

# After state:# ------------## admin# show interfaces# ge-0/0/1 {#     description "L3 interface";#     unit 0 {#         family inet {#             address 192.168.1.10/24;#         }#         family inet6 {#             address 8d8d:8d01::1/64;#         }#     }# }# ge-0/0/2 {#     description "L3 interface with ipv6";#     unit 0 {#         family inet6 {#             address 2001:db8:3000::/64;#         }#     }# }# ge-0/0/3 {#     description "overridden L3 interface";#     unit 0;# }# Using replaced# Before state# ------------## admin# show interfaces# ge-0/0/1 {#     description "L3 interface";#     unit 0 {#         family inet {#             address 10.200.16.10/24;#         }#     }# }# ge-0/0/2 {#     description "non configured interface";#     unit 0;# }# ge-0/0/3 {#     description "another L3 interface";#     unit 0 {#         family inet {#             address 192.168.1.10/24;#         }#     }# }-name: Replace provided configuration with device configuration
  junipernetworks.junos.junos_l3_interfaces:config:-name: ge-0/0/1
      ipv4:-address: 192.168.1.10/24
      ipv6:-address: 8d8d:8d01::1/64
    -name: ge-0/0/2
      ipv4:-address: dhcp
    state: replaced

# After state:# ------------## admin# show interfaces# ge-0/0/1 {#     description "L3 interface";#     unit 0 {#         family inet {#             address 192.168.1.10/24;#         }#         family inet6 {#             address 8d8d:8d01::1/64;#         }#     }# }# ge-0/0/2 {#     description "L3 interface with dhcp";#     unit 0 {#         family inet {#             dhcp;#         }#     }# }# ge-0/0/3 {#     description "another L3 interface";#     unit 0 {#         family inet {#             address 192.168.1.10/24;#         }#     }# }# Using gathered# Before state:# ------------## [email protected]# show interfaces# ge-0/0/1 {#     description "Configured by Ansible";#     disable;#     speed 100m;#     mtu 1024;#     hold-time up 2000 down 2200;#     link-mode full-duplex;#     unit 0 {#         family ethernet-switching {#             interface-mode access;#             vlan {#                 members vlan100;#             }#         }#     }# }# ge-0/0/2 {#     description "Configured by Ansible";#     native-vlan-id 400;#     speed 10m;#     mtu 2048;#     hold-time up 3000 down 3200;#     unit 0 {#         family ethernet-switching {#             interface-mode trunk;#             vlan {#                 members [ vlan200 vlan300 ];#             }#         }#     }# }# ge-1/0/0 {#     unit 0 {#         family inet {#             address 192.168.100.1/24;#             address 10.200.16.20/24;#         }#         family inet6;#     }# }# ge-2/0/0 {#     unit 0 {#         family inet {#             address 192.168.100.2/24;#             address 10.200.16.21/24;#         }#         family inet6;#     }# }# ge-3/0/0 {#     unit 0 {#         family inet {#             address 192.168.100.3/24;#             address 10.200.16.22/24;#         }#         family inet6;#     }# }# em1 {#     description TEST;# }# fxp0 {#     description ANSIBLE;#     speed 1g;#     link-mode automatic;#     unit 0 {#         family inet {#             address 10.8.38.38/24;#         }#     }# }-name: Gather junos layer3 interfaces as in given arguments
  junipernetworks.junos.junos_l3_interfaces:state: gathered
# Task Output (redacted)# -----------------------## "gathered": [#             {#                 "ipv4": [#                     {#                         "address": "192.168.100.1/24"#                     },#                     {#                         "address": "10.200.16.20/24"#                     }#                 ],#                 "name": "ge-1/0/0",#                 "unit": "0"#             },#             {#                 "ipv4": [#                     {#                         "address": "192.168.100.2/24"#                     },#                     {#                         "address": "10.200.16.21/24"#                     }#                 ],#                 "name": "ge-2/0/0",#                 "unit": "0"#             },#             {#                 "ipv4": [#                     {#                         "address": "192.168.100.3/24"#                     },#                     {#                         "address": "10.200.16.22/24"#                     }#                 ],#                 "name": "ge-3/0/0",#                 "unit": "0"#             },#             {#                 "ipv4": [#                     {#                         "address": "10.8.38.38/24"#                     }#                 ],#                 "name": "fxp0",#                 "unit": "0"#             }#         ]# After state:# ------------## [email protected]# show interfaces# ge-0/0/1 {#     description "Configured by Ansible";#     disable;#     speed 100m;#     mtu 1024;#     hold-time up 2000 down 2200;#     link-mode full-duplex;#     unit 0 {#         family ethernet-switching {#             interface-mode access;#             vlan {#                 members vlan100;#             }#         }#     }# }# ge-0/0/2 {#     description "Configured by Ansible";#     native-vlan-id 400;#     speed 10m;#     mtu 2048;#     hold-time up 3000 down 3200;#     unit 0 {#         family ethernet-switching {#             interface-mode trunk;#             vlan {#                 members [ vlan200 vlan300 ];#             }#         }#     }# }# ge-1/0/0 {#     unit 0 {#         family inet {#             address 192.168.100.1/24;#             address 10.200.16.20/24;#         }#         family inet6;#     }# }# ge-2/0/0 {#     unit 0 {#         family inet {#             address 192.168.100.2/24;#             address 10.200.16.21/24;#         }#         family inet6;#     }# }# ge-3/0/0 {#     unit 0 {#         family inet {#             address 192.168.100.3/24;#             address 10.200.16.22/24;#         }#         family inet6;#     }# }# em1 {#     description TEST;# }# fxp0 {#     description ANSIBLE;#     speed 1g;#     link-mode automatic;#     unit 0 {#         family inet {#             address 10.8.38.38/24;#         }#     }# }# Using parsed# parsed.cfg# ------------## # #     #         #             #                 ge-1/0/0#                 #                     0#                     #                         #                             
# 192.168.100.1/24#
#
# 10.200.16.20/24#
# # # # # # # ge-2/0/0# # 0# # #
# 192.168.100.2/24#
#
# 10.200.16.21/24#
# # # # # # # # # - name: Convert interfaces config to argspec without connecting to the appliance# junipernetworks.junos.junos_l3_interfaces:# running_config: "{{ lookup('file', './parsed.cfg') }}"# state: parsed# Task Output (redacted)# -----------------------# "parsed": [# {# "ipv4": [# {# "address": "192.168.100.1/24"# },# {# "address": "10.200.16.20/24"# }# ],# "name": "ge-1/0/0",# "unit": "0"# },# {# "ipv4": [# {# "address": "192.168.100.2/24"# },# {# "address": "10.200.16.21/24"# }# ],# "name": "ge-2/0/0",# "unit": "0"# }# ]## Using rendered-name: Render platform specific xml from task input using rendered state junipernetworks.junos.junos_l3_interfaces:config:-name: ge-1/0/0 ipv4:-address: 192.168.100.1/24 -address: 10.200.16.20/24 unit:0-name: ge-2/0/0 ipv4:-address: 192.168.100.2/24 -address: 10.200.16.21/24 unit:0state: rendered # Task Output (redacted)# -----------------------# "rendered": "# xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"># # ge-1/0/0# # 0# # # # 192.168.100.1/24# # # 10.200.16.20/24# # # # # # # ge-2/0/0# # 0# # # # 192.168.100.2/24# # # 10.200.16.21/24# # # # # # "

Valeurs de retour

Les valeurs de retour courantes sont documentées ici, les champs suivants sont uniques à ce module :

Clé Retourné Description
aprèsliste / elements=chaîne lorsque modifié La configuration sous forme de données structurées après l'achèvement du module.
Exemple : La configuration retournée sera toujours dans le même format des paramètres ci-dessus.
avantliste / elements=chaîne toujours La configuration sous forme de données structurées avant l'invocation du module.
Exemple : La configuration retournée sera toujours dans le même format des paramètres ci-dessus.
Commandesliste / elements=chaîne toujours L'ensemble des commandes poussées vers le périphérique distant.
Exemple :[' ge-1/0/0 0 192.168.100.1/24 10.200.16.20/24 ', 'xml 2', 'xml 3']

Auteurs

  • Daniel Mellado (@dmellado)