Votre premier formulaire

Écrire un playbook, lui construire un formulaire dans le Concepteur, le lancer et retrouver le job

  1. 1. Se connecter
  2. 2. Écrire le playbook
  3. 3. Créer le formulaire
  4. 4. Le lancer
  5. 5. Suivre la sortie
  6. 6. Le retrouver dans l’historique des jobs
  7. É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 :

La page Formulaires, avec des formulaires d'exemple


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/

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.

  1. Cliquez sur Concepteur dans le menu du haut, puis sur Formulaires dans le menu de gauche.
  2. 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.
  3. 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.
  4. 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
  1. Cliquez sur Valider (la coche), puis sur Enregistrer. L’enregistrement écrit hello-world.yaml dans le dossier des formulaires.
  2. Cliquez à nouveau sur l’interrupteur pour libérer le verrou.

Le Concepteur, en train de modifier un formulaire

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.yaml dans FORMS_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 :

Un formulaire


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 sortie d'un job

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 :

L'historique des jobs


É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é