Netbox Update Device IP Task¤
task api name:
update_device_ip
The Netbox Update Device IP Task is a feature of the NorFab Netbox Service that allows you to synchronize and update the IP addresses data of your network devices in Netbox. This task ensures that the IP address records in Netbox are accurate and up-to-date, reflecting the current state of your network infrastructure.
How it works - Netbox worker on a call to update IP addresses task fetches live data from network devices using nominated datasource, by default it is Nornir service parse task using NAPALM get_interfaces_ip
getter. Once data retrieved from network, Netbox worker updates records in Netbox database for device interfaces.
-
Client submits and on-demand request to NorFab Netbox worker to update device IP addresses
-
Netbox worker sends job request to nominated datasource service to fetch live data from network devices
-
Datasource service fetches data from the network
-
Datasource returns devices IP addresses data back to Netbox Service worker
-
Netbox worker processes device data and updates or creates IP address records in Netbox for requested devices
Limitations¤
Datasource nornir
uses NAPALM get_interfaces_ip
getter and as such only supports these device platforms:
- Arista EOS
- Cisco IOS
- Cisco IOSXR
- Cisco NXOS
- Juniper JUNOS
Update Device IP Sample Usage¤
NORFAB Netbox Update Device IP Command Shell Reference¤
NorFab shell supports these command options for Netbox update_device_ip
task:
nf#man tree netbox.update.device.ip-addresses
root
└── netbox: Netbox service
└── update: Update Netbox data
└── device: Update device data
└── ip-addresses: Update device interface IP addresses
├── timeout: Job timeout
├── workers: Filter workers to target, default 'any'
├── instance: Netbox instance name to target
├── dry-run: Return information that would be pushed to Netbox but do not push it
├── devices: List of Netbox devices to update
│ └── nornir: Use Nornir service to retrieve data from devices
│ ├── add_details: Add task details to results, default 'False'
│ ├── run_num_workers: RetryRunner number of threads for tasks execution
│ ├── run_num_connectors: RetryRunner number of threads for device connections
│ ├── run_connect_retry: RetryRunner number of connection attempts
│ ├── run_task_retry: RetryRunner number of attempts to run task
│ ├── run_reconnect_on_fail: RetryRunner perform reconnect to host on task failure
│ ├── run_connect_check: RetryRunner test TCP connection before opening actual connection
│ ├── run_connect_timeout: RetryRunner timeout in seconds to wait for test TCP connection to establish
│ ├── run_creds_retry: RetryRunner list of connection credentials and parameters to retry
│ ├── tf: File group name to save task results to on worker file system
│ ├── tf_skip_failed: Save results to file for failed tasks
│ ├── diff: File group name to run the diff for
│ ├── diff_last: File version number to diff, default is 1 (last)
│ └── progress: Display progress events, default 'True'
└── batch-size: Number of devices to process at a time, default '10'
nf#
Python API Reference¤
Update the IP addresses of devices in Netbox.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
instance
|
str
|
The instance name to use. |
None
|
dry_run
|
bool
|
If True, no changes will be made. |
False
|
datasource
|
str
|
The data source to use. Supported datasources:
|
'nornir'
|
timeout
|
int
|
The timeout for the operation. |
60
|
devices
|
list
|
The list of devices to update. |
None
|
create
|
bool
|
If True, new IP addresses will be created if they do not exist. |
True
|
batch_size
|
int
|
The number of devices to process in each batch. |
10
|
**kwargs
|
Additional keyword arguments. |
{}
|
Returns:
Name | Type | Description |
---|---|---|
dict |
dict
|
A dictionary containing the results of the update operation. |
Raises:
Type | Description |
---|---|
Exception
|
If a device does not exist in Netbox. |
UnsupportedServiceError
|
If the specified datasource is not supported. |
Source code in norfab\workers\netbox_worker.py
1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 |
|