Projet

Général

Profil

Actions

Evolution #987

fermé

procédure #673: Ansible

Documentation — Alimentation NetBox depuis vCenter avec Ansible

Ajouté par Patrick ENGWANG NGUEMA il y a 16 jours. Mis à jour il y a 16 jours.

Statut:
Fermé
Priorité:
Normal
Début:
24 janvier 2026
Echéance:
24 janvier 2026
% réalisé:

100%

Temps estimé:
1:00 h

Description


📘 Documentation — Alimentation NetBox depuis vCenter avec Ansible

🎯 Objectif

Construire progressivement et proprement l’inventaire NetBox à partir :

  • de l’infra existante
  • de vCenter
  • sans bloquer l’exploitation

Cette phase se concentre sur :

  • la structure
  • la traçabilité
  • la réutilisabilité Ansible

🧱 Architecture retenue

/etc/ansible
├── inventories
│   ├── infra
│   │   └── hosts.yml
│   └── vcenter
│       ├── vmware.yml
│       └── group_vars
│           └── all.yml (vault)
├── playbooks
│   └── netbox
│       ├── 01_devices.yml
│       ├── 02_interfaces.yml
│       └── 03_ip_addresses.yml
└── ansible.cfg

🔐 Prérequis

1️⃣ Collection NetBox

ansible-galaxy collection install netbox.netbox

2️⃣ Variables NetBox (Vault)

ansible-vault create inventories/vcenter/group_vars/all.yml
netbox_url: https://netbox.exemple.local
netbox_token: xxxxxxxxxxxxxxxxx

🖥️ Étape 1 — Création des devices NetBox (VM uniquement)

🎯 But

  • Créer un device NetBox par VM
  • Se baser uniquement sur les noms
  • Aucune IP, aucune interface

📄 Playbook : 01_devices.yml

- name: Sync VM names into NetBox
  hosts: localhost
  connection: local
  gather_facts: false

  pre_tasks:
    - name: Vérification NetBox vars
      ansible.builtin.assert:
        that:
          - netbox_url is defined
          - netbox_token is defined

  tasks:
    - name: Create / update devices
      netbox.netbox.netbox_device:
        netbox_url: "{{ netbox_url }}"
        netbox_token: "{{ netbox_token }}"
        data:
          name: "{{ item }}"
          device_role: server
          device_type: Virtual Machine
          site: OVH CLOUD
          status: active
      loop: "{{ groups['all'] }}"

▶️ Commande

ansible-playbook \
  -i inventories/infra/hosts.yml \
  -i inventories/vcenter/vmware.yml \
  playbooks/netbox/01_devices.yml \
  --ask-vault-pass

🔌 Étape 2 — Création des interfaces

🎯 But

  • Créer une interface standard eth0
  • Préparer l’association IP/VLAN plus tard

📄 Playbook : 02_interfaces.yml

- name: Sync interfaces into NetBox
  hosts: localhost
  connection: local
  gather_facts: false

  tasks:
    - name: Create interface eth0
      netbox.netbox.netbox_interface:
        netbox_url: "{{ netbox_url }}"
        netbox_token: "{{ netbox_token }}"
        data:
          device: "{{ item }}"
          name: eth0
          type: virtual
      loop: "{{ groups['all'] }}"

▶️ Commande

ansible-playbook \
  -i inventories/infra/hosts.yml \
  -i inventories/vcenter/vmware.yml \
  playbooks/netbox/02_interfaces.yml \
  --ask-vault-pass

🌐 Étape 3 — IP addresses (état actuel)

⚠️ Décision assumée

  • Les IP existent déjà
  • Conflits /24 vs /32
  • Non bloquant
  • Playbook tolérant (ignore_errors)

👉 Cette étape sera revisitée plus tard après :

  • Prefixes
  • VLANs
  • Normalisation

▶️ Commande actuelle

ansible-playbook \
  -i inventories/infra/hosts.yml \
  -i inventories/vcenter/vmware.yml \
  playbooks/netbox/03_ip_addresses.yml \
  --ask-vault-pass

🧠 Points clés (à retenir pour la DSI)

✔️ NetBox est alimenté sans rupture
✔️ Les erreurs IP sont maîtrisées et documentées
✔️ La source de vérité est progressive
✔️ Le modèle est idempotent
✔️ Prêt pour :

  • audits
  • exports
  • automatisation future

Mis à jour par Patrick ENGWANG NGUEMA il y a 16 jours

  • Sujet changé de serveur ntp à Documentation — Alimentation NetBox depuis vCenter avec Ansible

Mis à jour par Patrick ENGWANG NGUEMA il y a 16 jours

  • Statut changé de Nouveau à Fermé
Actions

Formats disponibles : Atom PDF