- name: Get switch password set_fact: ansible_ssh_pass: '{{ lookup("passwordstore", "hosts/"~inventory_hostname, subkey="pass") }}' # This should be provided by the netbox inventory plugin but isn’t yet. # https://github.com/netbox-community/ansible_modules/issues/1007 - name: Fetch configuration from netbox uri: url: '{{ interfaces[0].device.url }}render-config/' # why URL can only be accessed through interface data is a mystery method: POST headers: Authorization: 'Token {{ lookup("env", "NETBOX_API_TOKEN") }}' register: config - name: Set configuration ansible.netcommon.cli_config: config: '{{ config.json.content }}' register: result # These lines are not displayed by 'sho ru' and always reported as different, so ignore them. changed_when: result.commands | reject('match', '^(no shutdown|no switchport access vlan|switchport mode access|switchport mode hybrid|interface .*)$') notify: write config