17 lines
		
	
	
	
		
			819 B
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			17 lines
		
	
	
	
		
			819 B
		
	
	
	
		
			YAML
		
	
	
	
	
	
# 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
 |