Ansible and NetBox Tip:
Pass Ansible group_vars and host_vars into NetBox Config Templates by sending your Ansible vars, making them available directly within your Config Templates.
Here is an example:
# Ansible Playbook
- name: Trigger NetBox to return rendered configuration
ansible.builtin.uri:
url: "{{ NETBOX_ENDPOINT }}/api/dcim/devices/{{ device_id }}/render-config/"
method: POST
headers:
Authorization: "Token {{ NETBOX_TOKEN }}"
Content-Type: "application/json"
Accept: "text/plain"
body:
format: txt
local_context_data: "{{ vars }}" # <---- Send Ansible vars to NetBox
body_format: json
return_content: yes
status_code: 200
delegate_to: localhost
register: response
tags:
- build
# Jinja Template Usage (NetBox Config Template)
{% for dns_server in local_context_data.dns_servers %}
ip name-server {{ dns_server }}
{% endfor %}
