Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Descripción del archivo de inventario de Ansible cuando se administran dispositivos Junos

Descripción general del archivo de inventario

El archivo de inventario de Ansible define los hosts y grupos de hosts en los que funcionan los comandos, módulos y tareas de un manual. El archivo puede tener uno o varios formatos en función de su entorno y complementos de Ansible. Los formatos comunes incluyen INI y YAML.

La ubicación predeterminada del archivo de inventario es /etc/ansible/hosts. También puede crear archivos de inventario específicos para el proyecto en ubicaciones alternativas, por ejemplo, en el directorio del manual del proyecto. El archivo de configuración de Ansible puede especificar la ruta a una ubicación de archivo de inventario no predeterminada. También puede especificar la ubicación del archivo de inventario al ejecutar un manual.

El archivo de inventario puede enumerar hosts individuales o grupos definidos por el usuario de hosts. Por lo tanto, puede organizar los dispositivos Junos con roles similares en grupos. Luego, puede realizar las mismas tareas operativas y de configuración en los dispositivos de ese grupo. Por ejemplo, si administra uno o varios centros de datos, puede crear grupos para aquellos conmutadores que requieran el mismo conjunto de operaciones, tales como aplicar configuraciones similares y actualizar Junos OS.

Para administrar dispositivos Junos con Ansible, debe tener una cuenta de inicio de sesión de Junos OS con los privilegios de acceso adecuados en cada dispositivo administrado. Debe asegurarse de que existen nombres de usuario y contraseñas o claves de acceso para cada uno de los hosts del archivo de inventario.

El siguiente archivo de inventario de prueba con formato INI define un host individual, host1y dos grupos de hosts, routers y switches. El inventario también define un grupo network principal que incluye los routers grupos y switches .

Para obtener más información sobre el archivo de inventario de Ansible, consulte la documentación oficial de Ansible en https://docs.ansible.com/projects/ansible/latest/inventory_guide/intro_inventory.html.

juniper.device Colección: Variables de conexión y red del sistema operativo

A partir de juniper.device la versión 2.0.0, consolidamos la colección de Juniper Networks juniper.device y la colección de Red Hat Ansible junipernetworks.junos en una sola juniper.device colección. Aunque ejecute los módulos en el mismo espacio de nombres, cada conjunto de módulos utiliza una conexión de Ansible y valores de sistema operativo de red diferentes, por lo que no puede mezclar los módulos en el mismo manual.

Puede definir la conexión de Ansible en su manual, su archivo de inventario, en archivos de variables de host o grupo, o en argumentos de línea de comandos. Si define la conexión en el archivo de inventario, establezca ansible_connection el valor adecuado para los módulos. En la tabla 1 se describen los valores de conexión para cada conjunto de módulos. Para los junipernetworks.junos módulos, también debe definir ansible_network_os.

Tabla 1: Conexión de Ansbile y parámetros del sistema operativo de red
Conjunto de módulos ansible_connection Valor ansible_network_os Valor

juniper.device
(módulos originales)

  • local

  • juniper.device.pyez

junipernetworks.junos
(Todos los junos_* módulos, excepto
junos_netconf y junos_ping)

  • ansible.netcommon.netconf

  • juniper.device.junos

junipernetworks.junos
junos_netconf( y junos_ping)

  • ansible.netcommon.network_cli

  • juniper.device.junos

Nota:

En lugar de definir ansible_connection en el archivo de inventario, también puede definir connection en la jugada de su libro de estrategias. Ambos parámetros toman los mismos valores.

Además de las variables de red y conexión OS necesarias, el archivo de inventario puede definir opcionalmente el nombre de usuario que Ansible utiliza para conectarse a los dispositivos. También puede especificar un puerto, si es diferente del puerto predeterminado. Le recomendamos que también defina la ruta del intérprete de Python en el archivo de configuración de Ansible o en el archivo de inventario de Ansible. Especificar la ruta del intérprete de Python evita errores innecesarios si Ansible no puede encontrar la instalación de Python que utiliza su entorno.

En las siguientes secciones se proporcionan algunos archivos de inventario de ejemplo simplificados para cada conjunto de módulos.

Archivo de inventario de ejemplo para los módulos juniper.device

Si utiliza los módulos originales juniper.device para administrar dispositivos Junos, el archivo de inventario debe definirse ansible_connection como local o juniper.device.pyez.

El siguiente archivo de inventario define un grupo denominado junos que tiene tres hosts. Los hosts utilizan la local conexión para conectarse a los dispositivos administrados.

Archivo de inventario de ejemplo para los módulos junipernetworks.junos

Si utiliza los junipernetworks.junos módulos (juniper.device.junos_* módulos) para administrar dispositivos Junos, su archivo de inventario debe definir las variables adecuadas para ese conjunto de módulos. Puede especificar el ansible_connection valor mediante el nombre ansible.netcommon.netconf completo o ansible.netcommon.network_cli. Alternativamente, puede especificar netconf o network_cli. Consulte la documentación del módulo para comprobar los valores de conexión admitidos para cada módulo.

El siguiente archivo de inventario define un grupo denominado junos que tiene tres hosts. Ansible utiliza la ansible.netcommon.netconf conexión para conectarse a los dispositivos administrados. El archivo de inventario también incluye el valor necesario ansible_network_os para estos módulos.