netbox
Ansible Роль: Netbox
Устанавливает, настраивает и поддерживает NetBox на различных популярных дистрибутивах Linux.
Содержимое
Общая информация
Эта роль управляет установкой и настройкой NetBox. Она не предоставляет сервисы PostgreSQL или Redis, которые являются необходимыми зависимостями приложения. Эти задачи специально оставлены для того, чтобы пользователь мог управлять этими сервисами в своих собственных ролях и плейбуках. Пожалуйста, смотрите плейбук ПРИМЕР для получения информации о том, как управлять этими сервисами.
Релизы выходят только по мере необходимости для поддержки изменений в NetBox. Эта роль постоянно тестируется на новых версиях NetBox. Пожалуйста, смотрите репозиторий GitHub для получения самой последней информации о совместимости.
Поддерживаемые платформы
Тестировалось на следующих платформах:
- Amazon Linux 2
- CentOS 8
- Debian Bookworm
- Debian Bullseye
- Fedora Linux 37
- Rocky Linux 8 / Red Hat Enterprise Linux (RHEL) 8.2+
- Rocky Linux 9 / Red Hat Enterprise Linux (RHEL) 9.3+
- Ubuntu 20.04
- Ubuntu 22.04
Эта роль требует root-доступа (через sudo) для управления системными зависимостями и действиями от имени NetBox.
Поддерживает версии NetBox >=3.5.9
Переменные роли
Минимально необходимые переменные, предполагая, что сервисы PostgreSQL и Redis находятся на localhost
:
netbox_db_username: netbox
netbox_db_password: netbox
netbox_secret_key: "lnvRn_5Bypl8hBV4mMwgsMuHxr6uZvGwJyDqB7fcKqo"
Если netbox_secret_key
не указан, то новый ключ будет автоматически сгенерирован при каждом запуске плейбука.
Смотрите defaults/main.yml для полного списка значений по умолчанию и настраиваемых параметров.
Примечание: Версия 3.1+ вводит Динамические настройки конфигурации. Эти параметры конфигурации могут все еще записываться в configuration.py
, предотвращая изменение через интерфейс пользователя. Однако по умолчанию эта роль всегда исключает эти параметры, если netbox_override_dynamic_config
не установлен в True
. Смотрите defaults/main.yml#L82 для подробностей.
Пользовательские аккаунты
Следующие переменные могут быть определены для создания пользователей во время первоначальной установки:
netbox_superusers:
- username: admin
password: admin
email: [email protected]
Каждый пользователь требует указания имени пользователя, пароля и адреса электронной почты. Роль попытается создать указанных пользователей только один раз при первоначальной установке. Если netbox_superusers
не определен, пользователи не создаются, и можно использовать процесс ручного создания пользователей, документированный в Netbox.
Внешняя аутентификация
Смотрите вики для получения информации о доступных методах внешней аутентификации.
Плагины
Плагины Netbox, которые являются модулями pip, могут быть установлены и настроены с помощью переменной списка netbox_plugins
. Ниже приведен пример для плагина Netbox BGP.
netbox_plugins:
- name: netbox_bgp # Имя плагина
pip: netbox-bgp # Имя модуля pip
config: # Настройки плагина
device_ext_page: left
asdot: True
Удаление плагинов
Чтобы удалить плагин, можно установить состояние absent
для записи netbox_plugins
:
netbox_plugins:
- name: netbox_bgp # Имя плагина
pip: netbox-bgp # Имя модуля pip
state: absent
Обратите внимание, что может потребоваться удалить таблицы базы данных, которые были установлены как часть плагина. Эта роль не управляет таблицами базы данных, которые могли быть созданы как часть плагина. Пожалуйста, смотрите документацию для получения дополнительной информации о управлении таблицами.
Фиксация версии
Определенную версию NetBox можно настроить с помощью переменной:
netbox_version_tag: v3.0.9
Этот тег должен совпадать с именем тега GitHub для устанавливаемого релиза. Он обеспечит поддержание конкретной версии. Если не установлен, при каждом запуске будет пытаться найти последнюю версию для установки.
ПРИМЕЧАНИЕ: Тег версии должен устанавливаться для большинства окружений, чтобы обеспечить известную установку.
Другой вариант - развертывание с определенной ветки и, при необходимости, конкретного коммита SHA:
netbox_install_method: git
netbox_git_branch: master
netbox_git_sha: 8f1acb700d72467ffe7ae5c8502422a1eac0693d # необязательно
Зависимости
Нет зависимостей Ansible. Приложение требует Redis и Postgres.
Пример плейбука
Смотрите ПРИМЕР для полного примера плейбука.
Участие
Внесение изменений приветствуется. Пожалуйста, смотрите УЧАСТИЕ для получения подробностей.
ansible-galaxy install jvoss/ansible-role-netbox