Шпаргалки для работы с API NetBox.

В данном примере показано, как вытащить из нетбокса информацию об устройствах с определённым тегом.

import requests
import json

HEADERS = {"Authorization": "Token 1111..."}
TAG = "test"
URLNB = "https://yournetbox.ru" 
URLTAG = f"{URLNB}/api/dcim/devices/?q=&tag={TAG}"


response = requests.get(URLTAG, headers=HEADERS, verify=False)
out = json.dumps(response.json(), indent=4)

print(out)

Здесь print выведет очень много информации об устройстве, в формате json.


Json напоминает обычный словарь в питоне. Данные можно вытянуть обычным перебором for.

Пример. Запросим все устройства с тегом «test».

import requests
import json
import ipaddress

HEADERS = {"Authorization": "Token 1111...."}
TAG = "test"
URLNB = "https://yournetbox.ru" 
URLTAG = f"{URLNB}/api/dcim/devices/?q=&tag={TAG}"


response = requests.get(URLTAG, headers=HEADERS, verify=False)
out = json.loads(json.dumps(response.json(), indent=4))


for parse in out["results"]:
    hostname = parse["name"]
    ip_addr = ipaddress.ip_interface(parse["primary_ip4"]["address"])
    host_ip = str(ip_addr.ip)
    platform = parse["platform"]["name"]

print(hostname)
print(host_ip)
print(platform)

Здесь, путём перебора, я беру имя хоста, ip адрес и платформу. Вывожу его на экран.

sw1
10.0.0.1
Huawei_SW

Таким образом можно взять любые данные об устройстве, и дальше уже с ними работать.


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *