Votre premier formulaire
Écrire un playbook, lui construire un formulaire dans le Concepteur, le lancer et retrouver le job
- 1. Se connecter
- 2. Écrire le playbook
- 3. Créer le formulaire
- 4. Le lancer
- 5. Suivre la sortie
- 6. Le retrouver dans l’historique des jobs
- Étapes suivantes
Ce tutoriel part d’une installation neuve, voir Installation. Il prend environ un quart d’heure.
1. Se connecter
Ouvrez AnsibleForms dans un navigateur et connectez-vous en tant qu’administrateur.
Le compte par défaut est admin / AnsibleForms!123 (ou vos valeurs ADMIN_*) ; la page Formulaires s’ouvre :

2. Écrire le playbook
Un formulaire ansible exécute un playbook du dossier des playbooks, le playbook vient donc en premier. Enregistrez ceci sous hello.yaml :
- name: Hello world
hosts: localhost
gather_facts: false
tasks:
- name: Show the values from the form
ansible.builtin.debug:
msg: "Hello {{ your_name }}: a {{ vm_size }} machine in {{ target_env }} (dry run: {{ dry_run }})"
Le playbook lit quatre variables. Le formulaire que vous construisez ensuite les envoie comme extravars, une par champ.
Placez le fichier dans le dossier playbooks du dossier persistant (ANSIBLE_PATH) ; créez le dossier s’il n’existe pas encore :
Le dossier que vous avez monté sur /app/dist/persistent, /srv/apps/ansibleforms/persistent dans l’exemple d’installation :
mkdir -p /srv/apps/ansibleforms/persistent/playbooks
cp hello.yaml /srv/apps/ansibleforms/persistent/playbooks/
Le dossier data/playbooks du projet docker-compose :
cp hello.yaml data/playbooks/
Le volume persistant, monté sur /app/dist/persistent dans le pod AnsibleForms. Cherchez le nom du pod, puis copiez-y le fichier :
kubectl -n ansibleforms get pods
kubectl -n ansibleforms exec <pod> -- mkdir -p /app/dist/persistent/playbooks
kubectl -n ansibleforms cp hello.yaml <pod>:/app/dist/persistent/playbooks/hello.yaml
Le dossier persistent/playbooks du serveur, /srv/apps/ansibleforms/server dans l’exemple d’installation :
mkdir -p /srv/apps/ansibleforms/server/persistent/playbooks
cp hello.yaml /srv/apps/ansibleforms/server/persistent/playbooks/
Quand un dépôt git a Utiliser pour les playbooks ? activé, les playbooks sont exécutés depuis ce dépôt à la place : commitez-y
hello.yaml. Voir Concepteur et git.
3. Créer le formulaire
Les formulaires sont des fichiers YAML dans le dossier des formulaires. Le Concepteur les modifie dans le navigateur et les vérifie avant d’enregistrer.
- Cliquez sur Concepteur dans le menu du haut, puis sur Formulaires dans le menu de gauche.
- Cliquez sur l’interrupteur en haut à droite (Démarrer le concepteur). Il verrouille la configuration pour que personne d’autre ne la modifie en même temps, puis affiche Verrouillé par moi.
- Cliquez sur Nouveau fichier, le premier bouton de la barre d’outils, et saisissez le nom de fichier
hello-world.yaml. Le Concepteur y ajoute un formulaire appeléNew Form. - Remplacez le YAML de l’éditeur par ce formulaire :
name: Hello world
type: ansible
playbook: hello.yaml
description: Greets you with the values you picked
icon: play
roles:
- default
categories:
- Default
fields:
- name: your_name
type: text
label: Your name
required: true
- name: target_env
type: enum
label: Environment
values:
- development
- test
- production
default: development
required: true
- name: vm_size
type: enum
label: Size
expression: "[{size:'small',cpus:1},{size:'medium',cpus:2},{size:'large',cpus:4}]"
runLocal: true
default: __auto__
required: true
- name: dry_run
type: checkbox
label: Dry run
default: true
- Cliquez sur Valider (la coche), puis sur Enregistrer. L’enregistrement écrit
hello-world.yamldans le dossier des formulaires. - Cliquez à nouveau sur l’interrupteur pour libérer le verrou.

Le formulaire utilise quatre types de champs :
| Champ | Type | Ce qu’il fait |
|---|---|---|
your_name | text | Une zone de texte obligatoire |
target_env | enum | Une liste déroulante avec une liste fixe de values |
vm_size | enum | Une liste déroulante remplie par une expression locale ; __auto__ sélectionne le premier élément |
dry_run | checkbox | Une case à cocher, envoyée comme true ou false |
vm_size affiche les deux colonnes, size et cpus, et envoie size, la première ; valueColumn en choisit une autre.
roles: [default] permet à tout utilisateur connecté d’exécuter le formulaire, et categories: [Default] le place dans la catégorie que définit le config.yaml par défaut.
Vous pouvez aussi copier
hello-world.yamldansFORMS_FOLDER_PATH, et le valider dans VS Code.
4. Le lancer
Ouvrez le formulaire depuis la page Formulaires : cliquez sur Formulaires dans le menu du haut et choisissez Hello world dans la catégorie Default.
Saisissez votre nom et modifiez les autres champs si vous le souhaitez. Cliquez sur Afficher les variables supplémentaires pour voir ce que le playbook va recevoir, puis cliquez sur Soumettre :

5. Suivre la sortie
Le job démarre immédiatement, et sa sortie apparaît sous le formulaire pendant son exécution, pour se terminer par une barre Terminé :

La tâche debug affiche vos valeurs, par exemple Hello Alice: a small machine in development (dry run: True).
L’avertissement sur le localhost implicite est normal sans inventaire ; un vrai formulaire définit un inventory.
6. Le retrouver dans l’historique des jobs
Chaque lancement est conservé comme un job. Cliquez sur Jobs dans le menu du haut : le nouveau job est en tête de Tous les jobs.
Cliquez sur le job pour revoir sa sortie, et sur Afficher les variables supplémentaires pour voir ce qui a été envoyé. Les icônes devant chaque job le relancent ou le suppriment :

Étapes suivantes
Développez ce formulaire à l’aide des pages de référence :
- Formulaires : chaque propriété de formulaire, les modèles sur les runners, les formulaires workflow, les points d’approbation et les notifications
- Champs de formulaire : tous les types de champs, avec la validation, les dépendances et la mise en page
- Expressions : remplir les champs depuis des API REST, des bases de données et des fichiers
- Rôles et catégories dans
config.yaml: décider qui voit quel formulaire - Comment ça marche : ce qui se passe derrière un lancement, et où tout est stocké