Nota

Este complemento es parte del colección netbox.netbox (versión 2.0.0).

Para instalarlo use: ansible-galaxy collection install netbox.netbox.

Para usarlo en un libro de jugadas, especifique: netbox.netbox.nb_inventory.

  • Sinopsis
  • Parámetros
  • Ejemplos de

Sinopsis

  • Obtener hosts de inventario de NetBox

Parámetros

Parámetro Opciones / Valores predeterminados Configuración Comentarios
api_endpointcuerda / requerido env: NETBOX_API Punto final de la API de NetBox
cachebooleano
    Opciones:

  • no
entradas ini:

[inventory]
cache = no

env: ANSIBLE_INVENTORY_CACHE

Alternar para habilitar / deshabilitar el almacenamiento en caché de los datos de origen del inventario, requiere una configuración de complemento de caché para funcionar.
cache_connectioncuerda entradas ini:

[defaults]
fact_caching_connection = Ninguno

[inventory]
cache_connection = Ninguno

env: ANSIBLE_CACHE_PLUGIN_CONNECTION env: ANSIBLE_INVENTORY_CACHE_CONNECTION

Almacene en caché los datos de conexión o la ruta, lea la documentación del complemento de caché para obtener más detalles.
cache_plugincuerda Defecto:
“memoria”
entradas ini:

[defaults]
fact_caching = memoria

[inventory]
cache_plugin = memoria

env: ANSIBLE_CACHE_PLUGIN env: ANSIBLE_INVENTORY_CACHE_PLUGIN

Complemento de caché para usar con los datos de origen del inventario.
prefijo_cachécuerda Defecto:
“ansible_inventory_”
entradas ini:

[default]
fact_caching_prefix = ansible_inventory_

[inventory]
cache_prefix = ansible_inventory_

env: ANSIBLE_CACHE_PLUGIN_PREFIX env: ANSIBLE_INVENTORY_CACHE_PLUGIN_PREFIX

Prefijo que se utilizará para los archivos / tablas del complemento de caché
cache_timeoutentero Defecto:
3600
entradas ini:

[defaults]
fact_caching_timeout = 3600

[inventory]
cache_timeout = 3600

env: ANSIBLE_CACHE_PLUGIN_TIMEOUT env: ANSIBLE_INVENTORY_CACHE_TIMEOUT

Duración de la caché en segundos
componerdiccionario Defecto: Lista de vars de host ansible personalizadas para crear a partir del objeto de dispositivo obtenido de NetBox
config_contextbooleano
    Opciones:

  • no
Si es True, agrega config_context en el host vars.Config-context permite la asociación de datos arbitrarios a dispositivos y máquinas virtuales agrupados por región, sitio, rol, plataforma y / o inquilino. Consulte los documentos oficiales de netbox para obtener más información.
device_query_filterslista / elementos = cadena Defecto:
[]
Lista de parámetros pasados ​​a la cadena de consulta para dispositivos (varios valores pueden estar separados por comas)
dns_namebooleano
    Opciones:

  • no
Forzar la búsqueda de direcciones IP para que el dns_name para la ip_primaria de cada dispositivo o VM se establezca como host_var. Las interfaces de configuración también obtendrán direcciones IP y se establecerá dns_name host_var.
fetch_allbooleano agregado en 0.2.1 de netbox.netbox
    Opciones:

  • no
De forma predeterminada, la obtención de interfaces y servicios obtendrá todo el contenido de NetBox independientemente de los query_filters aplicados a los dispositivos y VM. Cuando se establece en False, se realizarán solicitudes separadas para obtener interfaces, servicios y direcciones IP para cada device_id y virtual_machine_id. están utilizando las diversas opciones de query_filters para reducir la cantidad de dispositivos, puede que las consultas de Netbox sean más rápidas con fetch_all configurado en False. Para mayor eficiencia, cuando es False, estas solicitudes se agruparán, por ejemplo / api / dcim / interfaces? limit = 0 & device_id = 1 & device_id = 2 & device_id = 3 Estos URI de solicitud GET pueden llegar a ser bastante grandes para una gran cantidad de dispositivos. Si se encuentra con errores HTTP 414, puede ajustar la opción max_uri_length para que se adapte a su servidor web.
flatten_config_contextbooleano agregado en 0.2.1 de netbox.netbox
    Opciones:

  • no
Si config_context está habilitado, de forma predeterminada se agrega como una var de host llamada config_context.Si flatten_config_context se establece en True, las variables de contexto de configuración se agregarán directamente al host en su lugar.
flatten_custom_fieldsbooleano agregado en 0.2.1 de netbox.netbox
    Opciones:

  • no
De forma predeterminada, los campos personalizados del host se agregan como una var de host de diccionario denominada custom_fields. Si flatten_custom_fields se establece en True, los campos se agregarán directamente al host en su lugar.
flatten_local_context_databooleano agregado en 0.3.0 de netbox.netbox
    Opciones:

  • no
Si local_context_data está habilitado, de forma predeterminada se agrega como una var de host llamada local_context_data. Si flatten_local_context_data se establece en True, las variables de contexto de configuración se agregarán directamente al host en su lugar.
follow_redirectscuerda
    Opciones:

  • urllib2
  • todos
  • a salvo
  • ninguno
Determine cómo se siguen las redirecciones. follow_redirects está configurado para utilizar el comportamiento predeterminado de urllib2.
agrupar porlista / elementos = cadena
    Opciones:

  • sitios
  • sitio
  • inquilinos
  • inquilino
  • bastidores
  • estante
  • rack_group
  • rack_role
  • etiquetas
  • etiqueta
  • device_roles
  • papel
  • tipos_de_dispositivo
  • tipo de dispositivo
  • fabricantes
  • fabricante
  • plataformas
  • plataforma
  • región
  • grupo
  • cluster_type
  • cluster_group
  • es_virtual
  • servicios
  • estado

Defecto:
[]

Claves utilizadas para crear grupos. los plurales La opción controla cuáles de estos son válidos.
group_names_rawbooleano agregado en 0.2.0 de netbox.netbox
    Opciones:

  • no
No agregará el nombre group_by choice a los nombres de los grupos
gruposdiccionario Defecto: Agregue hosts al grupo según los condicionales de Jinja2.
interfacesbooleano agregado en 0.1.7 de netbox.netbox
    Opciones:

  • no
Si es True, agrega la información de la interfaz del dispositivo o de la máquina virtual en las variables del host.
keyed_groupslista / elementos = cadena Defecto:
[]
Agregue hosts al grupo según los valores de una variable.
separador_principalbooleano agregado en 2.11 de ansible.builtin
    Opciones:

  • no
Úselo junto con keyed_groups. De forma predeterminada, un grupo con clave que no tiene un prefijo o un separador provisto tendrá un nombre que comienza con un guión bajo. Esto se debe a que el prefijo predeterminado es “” y el separador predeterminado es “_”. Establezca esta opción en False para omitir el subrayado inicial (u otro separador) si no se proporciona ningún prefijo.Si el nombre del grupo se deriva de una asignación, el separador aún se usa para concatenar los elementos.Para no usar un separador en el nombre del grupo en all, establezca el separador para el grupo con clave en una cadena vacía en su lugar.
max_uri_lengthentero agregado en 0.2.1 de netbox.netbox Defecto:
4000
Cuando fetch_all es False, las solicitudes GET a NetBox pueden volverse bastante largas y devolver un HTTP 414 (URI demasiado largo). Puede ajustar esta opción para que sea más pequeña para evitar errores 414, o más grande para un número reducido de solicitudes.
enchufarcuerda / requerido
    Opciones:

  • netbox.netbox.nb_inventory
token que asegura que este es un archivo fuente para el complemento ‘netbox’.
pluralesbooleano agregado en 0.2.1 de netbox.netbox
    Opciones:

  • no
Si es Verdadero, todas las vars de host están contenidas dentro de matrices de un solo elemento para la compatibilidad heredada con versiones anteriores de este complemento. Los nombres de grupo serán en plural (es decir, “sitios_misitio” en lugar de “sitio_misitio”) Las opciones de agrupar por será cambiado por esta opción.
query_filterslista / elementos = cadena Defecto:
[]
Lista de parámetros pasados ​​a la cadena de consulta tanto para dispositivos como para VM (varios valores pueden estar separados por comas)
serviciosbooleano agregado en 0.2.0 de netbox.netbox
    Opciones:

  • no
Si es True, agrega la información de los servicios del dispositivo o de la máquina virtual en las variables del host.
estrictobooleano
    Opciones:

  • no
Si yes haga que las entradas no válidas sean un error fatal, de lo contrario, omita y continúe. Dado que es posible usar hechos en las expresiones, es posible que no siempre estén disponibles e ignoramos esos errores de forma predeterminada.
se acabó el tiempoentero Defecto:
60
Tiempo de espera para las solicitudes de Netbox en segundos
simbólicocuerda env: NETBOX_TOKEN env: NETBOX_API_KEY Token de la API de NetBox para poder leer contra NetBox. Esto puede no ser necesario según la configuración de NetBox.
use_extra_varsbooleano agregado en 2.11 de ansible.builtin
    Opciones:

  • no
entradas ini:

[inventory_plugins]
use_extra_vars = no

env: ANSIBLE_INVENTORY_USE_EXTRA_VARS

Fusionar variables adicionales en las variables disponibles para la composición (la más alta precedencia).
validate_certsbooleano
    Opciones:

  • no
Permite la conexión cuando los certificados SSL no son válidos. Ajustado a false cuando los certificados no son de confianza.
virtual_chassis_namebooleano
    Opciones:

  • no
Cuando un dispositivo es parte de un chasis virtual, utilice el nombre del chasis virtual como el nombre de host del inventario de Ansible. Los valores de var del host serán del maestro del chasis virtual.
vm_query_filterslista / elementos = cadena Defecto:
[]
Lista de parámetros pasados ​​a la cadena de consulta para VM (varios valores pueden estar separados por comas)

Ejemplos de

# netbox_inventory.yml file in YAML format# Example command line: ansible-inventory -v --list -i netbox_inventory.ymlplugin: netbox.netbox.nb_inventory
api_endpoint: http://localhost:8000validate_certs:Trueconfig_context:Falsegroup_by:- device_roles
query_filters:-role: network-edge-router
device_query_filters:-has_primary_ip:'true'# has_primary_ip is a useful way to filter out patch panels and other passive devices# Query filters are passed directly as an argument to the fetching queries.# You can repeat tags in the query string.query_filters:-role: server
  -tag: web
  -tag: production

# See the NetBox documentation at https://netbox.readthedocs.io/en/latest/api/overview/# the query_filters work as a logical **OR**## Prefix any custom fields with cf_ and pass the field value with the regular NetBox query stringquery_filters:-cf_foo: bar

# NetBox inventory plugin also supports Constructable semantics# You can fill your hosts vars using the compose option:plugin: netbox.netbox.nb_inventory
compose:foo: last_updated
  bar: display_name
  nested_variable: rack.display_name

# You can use keyed_groups to group on properties of devices or VMs.# NOTE: It's only possible to key off direct items on the device/VM objects.plugin: netbox.netbox.nb_inventory
keyed_groups:-prefix: status
    key: status.value

Autores

  • Remy Leone (@sieben)
  • Anthony Ruhier (@ Anthony25)
  • Nikhil Singh Baliyan (@nikkytub)
  • Sander Steffann (@steffann)
  • Douglas Heriot (@DouglasHeriot)