jvoss.netbox

Rôle Ansible : Netbox

Netbox CI Netbox Ansible Galaxy Ansible Quality Score Version

Installe, configure et maintient NetBox sur diverses distributions Linux populaires.

Contenu

Informations Générales

Ce rôle gère l'installation et la configuration de NetBox. Il ne fournit pas de services PostgreSQL ou Redis qui sont des dépendances requises de l'application. Ces tâches sont volontairement laissées à l'utilisateur pour qu'il puisse gérer ces services dans ses propres rôles et playbooks. Veuillez consulter l'exemple de playbook EXEMPLE pour plus de détails sur la gestion de ces services.

Les versions ne sont publiées que lorsque cela est nécessaire pour supporter des changements dans NetBox. Ce rôle est continuellement testé sur les nouvelles versions de NetBox. Veuillez consulter le dépôt GitHub pour les dernières informations de compatibilité.

Plateformes Supportées

Testé sur les plateformes suivantes :

  • 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

Ce rôle nécessite un accès root (via sudo) pour gérer les dépendances système et effectuer des actions au nom de netbox.

Supporte les versions de NetBox >=3.5.9.

Variables de Rôle

Variables minimales requises en supposant que les services PostgreSQL et Redis sont disponibles sur localhost :

netbox_db_username: netbox
netbox_db_password: netbox
netbox_secret_key: "lnvRn_5Bypl8hBV4mMwgsMuHxr6uZvGwJyDqB7fcKqo"

Si la netbox_secret_key est omise, une nouvelle clé sera automatiquement générée à chaque exécution du playbook.

Voir defaults/main.yml pour une liste complète des valeurs par défaut et des options configurables.

Remarque : La version 3.1+ a introduit des Paramètres de Configuration Dynamiques. Ces options de configuration peuvent toujours être écrites dans configuration.py, empêchant toute modification via l'interface utilisateur. Cependant, par défaut, ce rôle omet toujours ces paramètres à moins que netbox_override_dynamic_config ne soit défini sur True. Voir defaults/main.yml#L82 pour plus de détails.

Comptes Utilisateurs

Les variables suivantes peuvent être définies pour créer des utilisateurs uniquement lors de l'installation initiale :

netbox_superusers:
  - username: admin
    password: admin
    email: [email protected]

Chaque utilisateur nécessite un nom d'utilisateur, un mot de passe et une adresse e-mail définis. Le rôle tentera de créer les utilisateurs définis une seule fois lors de l'installation initiale. Si netbox_superusers n'est pas défini, aucun utilisateur n'est créé et le processus de création manuelle d'utilisateurs documenté par Netbox peut être utilisé à la place.

Authentification Externe

Voir le wiki pour des informations sur les méthodes d'authentification externe disponibles.

Plugins

Les plugins NetBox qui sont des modules pip peuvent être installés et configurés en définissant la liste de variables netbox_plugins. Voici un exemple pour le plugin BGP de NetBox.

netbox_plugins:
  - name: netbox_bgp    # Nom du plugin
    pip: netbox-bgp     # Nom du module Pip
    config:             # Configuration du plugin
      device_ext_page: left
      asdot: True

Suppression de Plugins

Pour retirer un plugin, un état absent peut être assigné à l'entrée netbox_plugins :

netbox_plugins:
  - name: netbox_bgp    # Nom du plugin
    pip: netbox-bgp     # Nom du module Pip
    state: absent

Notez qu'il peut être nécessaire de retirer les tables de la base de données qui ont été installées dans le cadre d'un plugin. Ce rôle ne gère pas les tables de base de données qui peuvent avoir été créées dans le cadre d'un plugin. Veuillez voir la documentation pour plus d'informations sur la gestion des tables.

Verrouillage de Version

Une version spécifique de netbox peut être configurée en utilisant la variable :

netbox_version_tag: v3.0.9

Cette étiquette doit correspondre au nom de tag GitHub pour la version à installer. Cela garantira qu'une cible spécifique est maintenue. Si elle n'est pas définie, chaque exécution tentera de trouver la dernière version de publication à installer.

REMARQUE : Un tag de version doit être défini pour la plupart des environnements afin de garantir qu'une installation connue est maintenue.

Une autre option est de déployer à partir d'une branche spécifique et éventuellement d'un commit SHA spécifique.

netbox_install_method: git
netbox_git_branch: master
netbox_git_sha: 8f1acb700d72467ffe7ae5c8502422a1eac0693d # optionnel

Dépendances

Pas de dépendances Ansible. L'application nécessite Redis et Postgres.

Exemple de Playbook

Voir EXEMPLE pour un exemple complet de playbook.

Contributions

Les contributions sont encouragées. Veuillez consulter CONTRIBUTING pour des détails.

À propos du projet

Installs and configures Netbox

Installer
ansible-galaxy install jvoss.netbox
Licence
mit
Téléchargements
178
Propriétaire