Add interfaces to netbox

PHOTO EMBED

Mon Jul 04 2022 05:54:40 GMT+0000 (Coordinated Universal Time)

Saved by @beerygaz #netbox #ansible

- name: Create interfaces
  delegate_to: localhost
  when: ansible_facts[item].speed is defined and not 'lo' == item
  netbox.netbox.netbox_device_interface:
    netbox_url: "{{ netbox_url }}"
    netbox_token: "{{ netbox_token }}"
    data:
      device: "{{ inventory_hostname }}"
      name: "{{ item }}"
      type: "{{ speed_to_iftype[ ansible_facts[item].speed ] }}"
    state: present
  loop: "{{ ansible_interfaces }}"

- name: Create IP address
  delegate_to: localhost
  when: ansible_facts[item].ipv4.address is defined and not 'lo' == item
  netbox.netbox.netbox_ip_address:
    netbox_url: "{{ netbox_url }}"
    netbox_token: "{{ netbox_token }}"
    data:
      address: "{{ ansible_facts[item].ipv4.address }}/{{ vars.ansible_facts[item].ipv4.netmask }}"
      status: Active
      dns_name: "{{ lookup('community.general.dig', ansible_facts[item].ipv4.address+'/PTR', '@ns.our.internal') | regex_replace('\\.$', '') }}"
      assigned_object:
        name: "{{ item }}"
        device: "{{ inventory_hostname }}"
    state: present
  loop: "{{ ansible_interfaces }}"
content_copyCOPY