Playbooks Jeu de tâches « Provision »
22 octobre 2025 à 16:34Ce jeu de tâches est chargé de provisionner une machine virtuelle sur Cloudstack ou un hyperviseur ESXi.
Usage
L’argument -K doit être passée impérativement afin de demander le mot de passe sudo local.
Rôles utilisés
- Source Images : Nécessaire pour générer l’image ISO d’installation automatisée
- Source Images Cloudstack : Nécessaire pour mettre à disposition l’ISO d’installation automatisée
- Domain : Nécessaire pour mettre en place les enregistrements DNS ciblant la machine si applicable
- Reverse : Nécessaire pour mettre en place les associations DNS inverse si applicable
Variables à fournir pour Cloudstack
| Variable | Type | Requis | Défaut | Description |
|---|---|---|---|---|
cs_endpoint |
Adresse | Oui | Point de terminaison de l’API de l’instance CloudStack | |
cs_apikey |
Chaîne protégée | Oui | Clé de l’API de l’instance CloudStack | |
cs_apisecret |
Chaîne protégée | Oui | Secret de l’API de l’instance CloudStack | |
network_cidr |
Adresse IPv4+CIDR | Non | Absent | Réseau local du NAT |
network_egress |
Liste d’objets network_egress |
Non | Liste vide | Règles globales de sortie de réseau avancé à mettre en place |
network_ingress |
Liste d’objets network_ingress |
Non | Liste vide | Règles globales d’entrée de réseau avancé à mettre en place |
cs_instance |
Object instance-cs |
Oui | Configuration de la machine virtuelle | |
update_instance |
Booléen | Non | Faux | Indication à utiliser lors de l’exécution pour forcer la mise à jour de la configuration de la machine |
Type instance-cs
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
name |
Chaîne | Oui | Nom de la machine | |
hypervisor |
Identifiant | Oui | Hyperviseur à utiliser | |
disk |
Objets disk-cs |
Oui | Configuration du disque de démarrage | |
iso |
Identifiant | Oui | Nom du fichier ISO pour l’installation | |
keyboard |
Langue | Oui | Langue du clavier (us) |
|
service |
Identifiant | Oui | Ressources à allouer à la machine | |
network |
Identifiant | Non | Absent | Réseau avancé à utiliser pour connecter la machine |
zone |
Identifiant | Oui | Zone d’hébergement de la machine | |
domains |
Liste d’objets domain |
Non | Liste vide | Informations de domaines à mettre en place |
static_nat |
Adresse IP | Non | Absent | Adresse IP sur laquelle activer le NAT statique |
firewall |
Liste d’objets firewall |
Non | Liste vide | Règles spécifiques d’entrée du réseau avancé lié à mettre en place |
forwarding |
Liste d’objets forwarding |
Non | Liste vide | Règles de redirection de ports du réseau avancé lié à mettre en place, ignoré si NAT statique |
egress |
Liste d’objets access_rule |
Non | Liste vide | Règles de sortie du réseau basique à mettre en place |
ingress |
Liste d’objets access_rule |
Non | Liste vide | Règles d’entrée du réseau basique à mettre en place |
Attention : Le fichier ISO, la machine virtuelle et le réseau doivent être dans la même zone.
Remarque : Lorsque le réseau n’est pas spécifié, une zone de routage basique est attendue.
Remarque 2 : Lorsque le routage basique est utilisé, un groupe de sécurité est créé pour la machine virtuelle.
Type disk-cs
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
offering |
Identifiant | Oui | Type de disque | |
size |
Entier | Oui | Taille du disque en Go |
Type domain
Voir le rôle Domain.
Type base_rule
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
protocol |
Identifiant | Non | Absent | Protocole (tcp, udp, icmp) |
icmp_code |
Entier | Non | Absent | Code ICMP si protocol == icmp |
icmp_type |
Entier | Non | Absent | Type ICMP si protocol == icmp |
start_port |
Entier | Si end_port |
Absent | Port TCP ou UDP de début |
end_port |
Entier | Non | Absent | Port TCP ou UDP de fin |
remove |
Booléen | Non | Faux | Indication de retrait de la règle |
Type network_egress
Hérite de base_rule.
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
network |
Identifiant | Oui | Identifiant du réseau associé | |
source |
Adresse IP+CIDR | Non | network_cidr si défini sinon 0.0.0.0/0 |
Adresse IP du pair local |
zone |
Identifiant | Oui | Zone d’hébergement du réseau |
Type network_ingress
Hérite de base_rule.
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
ip_address |
Adresse IP+CIDR | Oui | Adresse IP externe du pair local | |
source |
Adresse IP+CIDR | Non | 0.0.0.0/0 | Adresse IP du pair distant |
zone |
Identifiant | Oui | Zone d’hébergement du réseau |
Type firewall
Hérite de base_rule.
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
ip_address |
Adresse IP+CIDR | Oui | Adresse IP externe du pair local | |
source |
Adresse IP+CIDR | Non | 0.0.0.0/0 | Adresse IP du pair distant |
Type forwarding
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
protocol |
Identifiant | Non | Absent | Protocole (tcp, udp, icmp) |
ip_address |
Adresse IP+CIDR | Oui | Adresse IP externe du pair local | |
public_port |
Entier | Si public_end_port |
Absent | Port TCP ou UDP externe de début |
private_port |
Entier | Si private_end_port |
Absent | Port TCP ou UDP interne de début |
public_end_port |
Entier | Non | Absent | Port TCP ou UDP externe de fin |
private_end_port |
Entier | Non | Absent | Port TCP ou UDP interne de fin |
remove |
Booléen | Non | Faux | Indication de retrait de la règle |
Type access_rule
Hérite de base_rule.
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
source |
Adresse IP+CIDR | Non | 0.0.0.0/0 | Adresse IP du pair distant |
Variables à fournir pour ESXi
| Variable | Type | Requis | Défaut | Description |
|---|---|---|---|---|
vsphere_endpoint |
FQDN | Oui | Adresse du serveur ESXi | |
vsphere_username |
Identifiant | Oui | Nom de l’utilisateur ayant les permission requise pour créer les ressources | |
vsphere_password |
Chaîne | Oui | Mot de passe de l’utilisateur | |
vsphere_instance |
object instance-esxi |
Oui | Description de l’instance à créer |
Type instance-esxi
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
datastore |
Identifiant | Oui | Identifiant du datastore pour la configuration | |
name |
Chaîne | Oui | Nom de la machine virtuelle | |
pool |
Chemin | Oui | Chemin du pool de ressources | |
power_on |
Booléen | Oui | Indique si la machine doit être démarrée à la création | |
datacenter |
Identifiant | Oui | Identifiant du datacenter | |
esxi_host |
Adresse | Oui | Nom d’hôte du serveur de virtualisation | |
disk |
Dictionnaire d’objets disk-esxi |
Oui | Liste nommée des disques à créer | |
network |
Dictionnaire d’objets network |
Oui | Liste nommée des interfaces réseau | |
memory |
Entier | Oui | Taille de la mémoire en Mo | |
cpu |
Entier | Oui | Nombre de cœur de processeur | |
os |
Identifiant | Oui | Identifiant du type de système d’exploitation | |
scsi |
Identifiant | Oui | Identifiant du pilote SCSI (paravirtual) |
|
firmware |
Identifiant | Oui | Type de démarrage (efi ou bios) |
|
iso |
Chemin datastore | Oui | Chemin dans les datastore du fichier ISO pour l’installation | |
domains |
Liste d’objets domain |
Non | Liste vide | Informations de domaines à mettre en place |
reverses |
Liste d’objets reverse |
Non | Liste vide | Informations de résolutions inverses à mettre en place |
Type disk-esxi
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
datastore |
Identifiant | Oui | Identifiant du datastore pour le disque | |
size_gb |
Entier | Oui | Taille du disque | |
type |
Identifiant | Oui | Type de provisionnement du disque (thin, thick) |
Type network
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
type |
Identifiant | Oui | Pilote de la carte réseau (vmxnet3) |
|
network |
Chaîne | Oui | Nom du réseau à connecter | |
network_type |
Identifiant | Oui | Type du réseau (standard) |
|
mac_address |
Adresse MAC | Non | Absent | Adresse matériel manuelle |
Type domain
Voir le rôle Domain.
Type reverse
Voir le rôle Reverse.
Variables à fournir pour ProxMox
| Variable | Type | Requis | Défaut | Description |
|---|---|---|---|---|
proxmox_endpoint |
FQDN | Oui | Adresse du cluster ProxMox (un des nœuds) | |
proxmox_username |
Identifiant | Oui | Nom de l’utilisateur ayant les permission requise pour créer les ressources | |
proxmox_password |
Chaîne | Si pas proxmox_token_id |
Mot de passe de l’utilisateur | |
proxmox_token_id |
Chaîne | Si pas proxmox_password |
Identifiant du jeton de l’utilisateur à utiliser | |
proxmox_token_secret |
Chaîne | Si proxmox_token_id |
Secret du jeton de l’utilisateur à utiliser | |
proxmox_instance |
object instance-proxmox |
Oui | Description de l’instance à créer |
Type instance-proxmox
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
vmid |
Entier | Oui | Identifiant de l’instance à créer | |
type |
Choix lxc|kvm |
Oui | Type d’instance à créer | |
node |
Identifiant | Oui | Nœud sur lequel créer l’instance | |
name |
Identifiant | Oui | Nom de l’instance | |
pool |
Chaîne | Non | Nom du pool de ressources à associer | |
cores |
Entier | Oui | Nombre de cœur de processeur | |
description |
Chaîne | Non | Description du conteneur | |
memory |
Entier | Oui | Taille de la mémoire en Mo | |
power_on |
Booléen | Oui | Indique si l’instance doit être démarrée à la création | |
domains |
Liste d’objets domain |
Non | Liste vide | Informations de domaines à mettre en place |
reverses |
Liste d’objets reverse |
Non | Liste vide | Informations de résolutions inverses à mettre en place |
tags |
Liste d’identifiants | Non | Liste vide | Balises associées à l’instance |
autostart |
Booléen | Non | Faux | Indique le démarrage automatique avec le nœud |
startup |
Entier | Si autostart |
Ordre de démarrage automatique avec le nœud |
Type = lxc
Pour les listes de valeurs disponibles : https://pve.proxmox.com/wiki/Linux_Container#pct_options.
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
ostype |
Liste de valeur documentation | Non | auto | Type du système du conteneur |
ostemplate |
Object lxc-template |
Oui | Gabarit de conteneur à utiliser | |
swap |
Entier | Non | memory |
Taille du fichier d’échange |
rootfs |
Objet disk-root |
Oui | Paramètres du disque racine | |
networks |
Dictionnaire d’objets lxc-network |
Oui | Liste nommée des interfaces réseau, les noms doivent être ‘net’ + num | |
features |
Dictionnaire de fonctionnalités | Non | Vide | Fonctionnalités à configurer, voir documentation |
unprivileged |
Booléen | Non | Vrai | Indique si le conteneur n’est pas privilégié |
searchdomain |
Nom de domaine | Non | Vide | Domaine de recherche du conteneur |
nameservers |
Liste d’IP séparées par des virgules | Non | Absent | Configurer les serveurs DNS du conteneur, par défaut hérite du parent |
TODO: Points de montage
Note : Les autorisations sur l’identifiant exacte doivent être définis avant. Chemin /vms/{vmid}.
Type = kvm
Pour les listes de valeurs disponibles : https://pve.proxmox.com/wiki/Qemu/KVM_Virtual_Machines#qm_configuration.
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
ostype |
Liste de valeur documentation | Non | auto | Type du système du conteneur |
efi |
Booléen | Non | Faux | Activer le démarrage efi |
efidisk |
Object efidisk |
Si efi |
Paramètres du disque efi | |
boot_order |
Liste de périphériques | Non | Ordre de démarrage sur les périphériques | |
machine |
Liste de valeur documentation | Non | ‘pc’ | Type de matériel virtuel |
cpu_type |
Liste de valeur documentation | Non | ‘host’ | Type de processeur virtuel |
networks |
Dictionnaire d’objets kvm-network |
Non | Liste nommée des interfaces réseau, les noms doivent être ‘net’ + num | |
sata_disks |
Dictionnaire d’objets disk-sata |
Non | Liste nommée des disques SATA, les noms doivent être ‘sata’ + num, max 6 | |
scsi_disks |
Dictionnaire d’objets disk-scsi |
Non | Liste nommée des disques SCSI, les noms doivent être ‘scsi’ + num, max 31 | |
virtio_disks |
Dictionnaire d’objets disk-virtio |
Non | Liste nommée des disques VIRTIO, les noms doivent être ‘virtio’ + num, max 16 | |
scsihw |
Liste de valeur documentation | Non | ‘virtio-scsi-single’ | Type de contrôleur SCSI |
video |
Liste de valeur documentation | Non | ‘qxl’ | Type de contrôleur vidéo |
Type lxc-template
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
storage |
Identifiant | Oui | Identifiant du stockage contenant le gabarit | |
name |
Chemin | Oui | Nom du fichier contenant le gabarit |
Type disk-root
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
storage |
Identifiant | Oui | Identifiant du stockage pour le disque | |
size_gb |
Entier | Oui | Taille du disque | |
options |
Dictionnaire d’option de rootfs | Non | Vide | Options du disque, exemples ci-dessous |
Exemples d’option :
- acl=1
- mountoptions=discard;noatime
Type efidisk
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
storage |
Identifiant | Oui | Identifiant du stockage pour le disque | |
efitype |
Choix ‘2m’|‘4m’ | Oui | Taille du disque | |
pre_enrolled_keys |
Booléen | Si efitype == ‘4m’ |
Indique si les clés EFI doivent être intégrés par défaut, et active le démarrage sécurisé | |
format |
Liste de valeur documentation | Non | ‘raw’ | Format du disque |
Type disk-sata / disk-scsi / disk-virtio
Voir les options dans la documentation. Les options usuelles sont rappelées.
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
volume |
Référence de volume | Non si cdrom |
Fichier du disque | |
cdrom |
Référence de cdrom | Non si volume |
Fichier du cdrom | |
discard |
Choix ‘ignore’|‘on’ | Non | Prise en charge de discard / rtrim | |
media |
Calculé | N/A | Type de média automatiquement déterminé | |
format |
Liste de valeur documentation | Non | ‘raw’ | Format du disque créé |
La propriété media est définie à disk lorsque volume est défini, à cdrom lorsque cdrom est défini.
La propriété format n’est ajouté que si le disque est créé.
Référence de volume
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
storage |
Identifiant | Oui | Identifiant du stockage pour le disque | |
size |
Entier | Si non path |
Taille du disque en Gio | |
path |
Chemin | Si non size |
Nom ou chemin du disque existant |
Référence de cdrom
Valeur “none” ou un objet avec les propriétés :
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
storage |
Identifiant | Oui | Identifiant du stockage pour le disque | |
image |
Chemin | Oui | Nom de l’image de CDROM |
Type lxc-network
Voir les options dans la documentation. Les options usuelles sont rappelées.
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
name |
Interface (ethx) | Oui | Nom de l’interface dans le conteneur | |
ip |
IPv4/CIDR|‘dhcp’ | Oui | Adresse IPv4 de l’interface | |
gw |
IPv4 | Non | Passerelle par défaut | |
ip6 |
IPv6/CIDR|‘auto’|‘dhcp’ | Non | Adresse IPv6 de l’interface | |
gw6 |
IPv6 | Non | Passerelle par défaut v6 | |
bridge |
Interface | Oui | Nom de l’interface réseau à connecter |
Type kvm-network
Voir les options dans la documentation. Les options usuelles sont rappelées.
| Propriété | Type | Requis | Défaut | Description |
|---|---|---|---|---|
model |
Liste de valeur documentation | Non | virtio | Modèle d’interface |
bridge |
Interface | Oui | Nom de l’interface réseau à connecter |
Type domain
Voir le rôle Domain.
Type reverse
Voir le rôle Reverse.