Actions
Evolution #987
ferméprocédure #673: Ansible
Documentation — Alimentation NetBox depuis vCenter avec Ansible
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
/24vs/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
Actions