Шпаргалки для работы с 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
Таким образом можно взять любые данные об устройстве, и дальше уже с ними работать.
Добавить комментарий