Перейти к содержанию

Кастомизация

Хотя InfraVision стремится удовлетворить потребности каждой сети, нельзя игнорировать потребности пользователей в адаптации к их уникальным средам. InfraVision был создан с учётом этого и может быть настроен многими способами для лучшего соответствия вашим конкретным потребностям.

Для тем персонализации конечных пользователей (закладки, настройки таблиц, язык, разделитель CSV и многое другое) см. Возможности > Пользовательские настройки.

Теги

Большинству объектов в InfraVision можно назначить созданные пользователем теги для помощи в организации и фильтрации. Значения тегов полностью произвольны: они могут использоваться для хранения данных в парах ключ-значение или просто как метки, по которым можно фильтровать объекты. Каждому тегу также можно назначить цвет для более быстрого различения в интерфейсе.

Объекты можно фильтровать по назначенным им тегам. Например, следующий API-запрос получит все устройства с тегом «monitored»:

GET /api/dcim/devices/?tag=monitored

Фильтр tag можно указать несколько раз для соответствия только объектам, которым назначены все указанные теги:

GET /api/dcim/devices/?tag=monitored&tag=deprecated

Пользовательские поля

Хотя InfraVision предоставляет довольно обширную модель данных из коробки, может возникнуть необходимость хранить определённые дополнительные данные, связанные с объектами InfraVision. Например, вам может понадобиться записать ID счёта вместе с установленным устройством или зафиксировать утверждающий орган при создании нового IP-префикса. Администраторы InfraVision могут создавать пользовательские поля на встроенных объектах для удовлетворения этих потребностей.

InfraVision поддерживает множество типов пользовательских полей: от базовых типов данных, таких как строки и целые числа, до сложных структур, таких как списки выбора или необработанный JSON. Можно даже добавить пользовательское поле, которое ссылается на другие объекты InfraVision. Данные пользовательских полей хранятся непосредственно вместе с объектом, к которому они применены, в базе данных, что обеспечивает минимальное влияние на производительность. И данные пользовательских полей можно записывать и читать через REST API, как и встроенные поля.

Чтобы узнать больше об этой функции, ознакомьтесь с документацией по пользовательским полям.

Пользовательские ссылки

Пользовательские ссылки позволяют удобно ссылаться на внешние ресурсы, связанные с объектами InfraVision, из интерфейса InfraVision. Например, вы можете захотеть связать каждую виртуальную машину, смоделированную в InfraVision, с её соответствующим представлением в каком-либо приложении оркестрации. Вы можете сделать это, создав шаблонизированную пользовательскую ссылку для модели виртуальной машины, указав что-то вроде следующего для URL ссылки:

http://server.local/vms/?name={{ object.name }}

Теперь при просмотре виртуальной машины в InfraVision пользователь увидит удобную кнопку с выбранным заголовком и ссылкой (с именем просматриваемой ВМ). И текст, и URL пользовательских ссылок можно шаблонизировать таким образом, а пользовательские ссылки можно группировать в выпадающие меню для более эффективного отображения.

Чтобы узнать больше об этой функции, ознакомьтесь с документацией по пользовательским ссылкам.

Пользовательская валидация

Хотя InfraVision использует надёжную встроенную валидацию объектов для обеспечения целостности базы данных, вы можете захотеть применить дополнительные правила, регулирующие создание и изменение определённых объектов. Например, возможно, вы требуете, чтобы каждое устройство, определённое в InfraVision, соответствовало определённой схеме именования и включало инвентарный тег. Вы можете настроить правило пользовательской валидации в InfraVision для применения этих требований к модели устройства:

CUSTOM_VALIDATORS = {
    "dcim.device": [
        {
            "name": {
                "regex": "[a-z]+\d{3}"
            },
            "asset_tag": {
                "required": True
            }
        }
    ]
}

Чтобы узнать больше об этой функции, ознакомьтесь с документацией по пользовательской валидации.

Шаблоны экспорта

Большинство объектов InfraVision можно экспортировать массово в двух встроенных форматах CSV: текущее представление (то, что пользователь видит в списке объектов) или все доступные данные. InfraVision также предоставляет возможность определять собственные форматы экспорта данных через шаблоны экспорта. Шаблон экспорта — это по сути код шаблона Jinja2, связанный с определённым типом объекта. Из списка объектов в интерфейсе InfraVision пользователь может выбрать любой из созданных шаблонов экспорта для экспорта объектов согласно логике шаблона.

Шаблон экспорта не обязательно должен генерировать данные CSV: его вывод может быть в любом символьном формате. Например, вы можете захотеть генерировать данные с использованием табуляции в качестве разделителей или даже создавать DNS-записи адресов непосредственно из списка IP-адресов. Шаблоны экспорта — отличный способ быстро получить нужные данные в нужном формате.

Чтобы узнать больше об этой функции, ознакомьтесь с документацией по шаблонам экспорта.

Отчёты

Администраторы InfraVision могут устанавливать пользовательские Python-скрипты, известные как отчёты, которые выполняются внутри InfraVision и могут запускаться и анализироваться через интерфейс InfraVision. Отчёты — отличный способ оценки объектов InfraVision по набору произвольных правил. Например, вы можете написать отчёт для проверки того, что каждый маршрутизатор имеет loopback-интерфейс с назначенным IP-адресом, или что каждая площадка имеет минимальный набор определённых VLAN.

При запуске отчёта регистрируются сообщения о выполняемых операциях, и в конечном итоге результатом будет либо успех, либо неудача. Отчёты можно выполнять через интерфейс, REST API или CLI (как команду управления). Их можно запускать немедленно или запланировать на будущее время.

Чтобы узнать больше об этой функции, ознакомьтесь с документацией по отчётам.

Пользовательские скрипты

Пользовательские скрипты похожи на отчёты, но более мощные. Пользовательский скрипт может запрашивать у пользователя ввод через форму (или данные API) и предназначен для выполнения гораздо большего, чем просто отчётность. Пользовательские скрипты обычно используются для автоматизации задач, таких как заполнение новых объектов в InfraVision или обмен данными с внешними системами. Как и отчёты, их можно запускать через интерфейс, REST API или CLI и планировать выполнение на будущее время.

Полная среда Python доступна пользовательскому скрипту, включая все внутренние механизмы InfraVision: нет искусственных ограничений на то, что может делать скрипт. Поэтому пользовательские скрипты считаются продвинутой функцией и требуют достаточного знакомства с Python и моделью данных InfraVision.

Чтобы узнать больше об этой функции, ознакомьтесь с документацией по пользовательским скриптам.