Hola, hemos encontrado la solución a lo que necesitas, deslízate y la encontrarás aquí.
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 |
|
entradas ini:
[inventory] 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] [inventory] 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] [inventory] 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] [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] [inventory] 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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
Determine cómo se siguen las redirecciones. follow_redirects está configurado para utilizar el comportamiento predeterminado de urllib2. | |
agrupar porlista / elementos = cadena |
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 |
|
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 |
|
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 |
|
Ú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 |
|
token que asegura que este es un archivo fuente para el complemento ‘netbox’. | |
pluralesbooleano agregado en 0.2.1 de netbox.netbox |
|
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 |
|
Si es True, agrega la información de los servicios del dispositivo o de la máquina virtual en las variables del host. | |
estrictobooleano |
|
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 |
|
entradas ini:
[inventory_plugins] env: ANSIBLE_INVENTORY_USE_EXTRA_VARS |
Fusionar variables adicionales en las variables disponibles para la composición (la más alta precedencia). |
validate_certsbooleano |
|
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 |
|
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)
Puedes añadir valor a nuestro contenido informacional cooperando tu experiencia en las notas.