jvoss.netbox
Rol de Ansible: Netbox
Instala, configura y mantiene NetBox en varias distribuciones populares de Linux.
Contenido
Información General
Este rol gestiona la instalación y configuración de NetBox. No proporciona servicios de PostgreSQL o Redis, que son dependencias requeridas de la aplicación. Estas tareas se dejan intencionadamente para que el usuario gestione estos servicios dentro de sus propios roles y playbooks. Consulte el EJEMPLO de playbook para obtener detalles sobre cómo gestionar estos servicios.
Las versiones solo se publican cuando es necesario para apoyar cambios en NetBox. Este rol se prueba continuamente en nuevas versiones de NetBox. Consulte el repositorio de GitHub para obtener la información más reciente sobre compatibilidad.
Plataformas Soportadas
Probado en las siguientes plataformas:
- 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
Este rol requerirá acceso de root (a través de sudo) para gestionar dependencias del sistema y acciones en nombre de netbox.
Soporta versiones de NetBox >=3.5.9
Variables del Rol
Variables mínimas requeridas asumiendo servicios de PostgreSQL y Redis en localhost
:
netbox_db_username: netbox
netbox_db_password: netbox
netbox_secret_key: "lnvRn_5Bypl8hBV4mMwgsMuHxr6uZvGwJyDqB7fcKqo"
Si se omite netbox_secret_key
, se generará automáticamente uno nuevo en cada ejecución del playbook.
Consulte defaults/main.yml para obtener una lista completa de opciones predeterminadas y configurables.
Nota: La versión 3.1+ introdujo Configuraciones Dinámicas. Estas opciones de configuración pueden seguir escribiéndose en configuration.py
, impidiendo la modificación a través de la interfaz de usuario. Sin embargo, por defecto, este rol siempre omite estos parámetros a menos que netbox_override_dynamic_config
se establezca en True
. Consulte defaults/main.yml#L82 para más detalles.
Cuentas de Usuario
Las siguientes variables se pueden definir para crear usuarios solo durante la instalación inicial:
netbox_superusers:
- username: admin
password: admin
email: [email protected]
Cada usuario requiere un nombre de usuario, contraseña y dirección de correo electrónico definidos. El rol intentará crear los usuarios definidos solo una vez durante la instalación inicial. Si netbox_superusers
no está definido, no se crean usuarios y se puede utilizar el proceso manual de creación de usuarios documentado por Netbox.
Autenticación Externa
Consulte el wiki para obtener información sobre los métodos de autenticación externa disponibles.
Plugins
Los plugins de Netbox que son módulos de pip pueden ser instalados y configurados estableciendo la lista de variables netbox_plugins
. A continuación, se muestra un ejemplo para el plugin BGP de Netbox.
netbox_plugins:
- name: netbox_bgp # Nombre del plugin
pip: netbox-bgp # Nombre del módulo pip
config: # Configuración del plugin
device_ext_page: left
asdot: True
Eliminación de Plugins
Para eliminar un plugin, se puede asignar un estado absent
a la entrada de netbox_plugins
:
netbox_plugins:
- name: netbox_bgp # Nombre del plugin
pip: netbox-bgp # Nombre del módulo pip
state: absent
Tenga en cuenta que puede ser necesario eliminar tablas de base de datos que fueron instaladas como parte de un plugin. Este rol no gestiona tablas de base de datos que puedan haber sido creadas como parte de un plugin. Consulte la documentación para más información sobre la gestión de tablas.
Bloqueo de Versión
Se puede configurar una versión específica de netbox utilizando la variable:
netbox_version_tag: v3.0.9
Esta etiqueta debe coincidir con el nombre de etiqueta de Github para la versión que se va a instalar. Garantizará que se mantenga un objetivo específico. Si no se establece, cada ejecución intentará encontrar la última versión de lanzamiento para instalar.
NOTA: Se debe establecer una etiqueta de versión para la mayoría de los entornos para garantizar que se mantenga una instalación conocida.
Otra opción es implementar desde una rama específica y, opcionalmente, un SHA de compromiso específico.
netbox_install_method: git
netbox_git_branch: master
netbox_git_sha: 8f1acb700d72467ffe7ae5c8502422a1eac0693d # opcional
Dependencias
Sin dependencias de Ansible. La aplicación requiere Redis y Postgres.
Ejemplo de Playbook
Consulte EJEMPLO para obtener un ejemplo completo de playbook.
Contribuir
Se alientan las contribuciones. Consulte CONTRIBUCIÓN para más detalles.
ansible-galaxy install jvoss.netbox