Formulieren
Definieer de formulieren die je gebruikers invullen
Voor formulierauteurs: hoe formulieren in YAML worden geschreven, waar ze vandaan worden geladen en de eigenschappen van elk formuliertype.
Formulieren vormen de kern van AnsibleForms. Elk formulier is een webinterface die invoer van de gebruiker verzamelt en met die gegevens een Ansible-playbook uitvoert, een sjabloon van AWX, AAP of Ascender, een sjabloon van Semaphore, een job van Rundeck of Jenkins, of een workflow.
Formulieren worden gedefinieerd in YAML-bestanden in de formulierenmap. Elk YAML-bestand bevat één formulier of een lijst met formulieren, en je kunt submappen gebruiken om ze te ordenen.
VIDEO: Je eerste formulier maken
De opbouw van een formulier
Elk formulier in AnsibleForms wordt geconfigureerd met een reeks eigenschappen. Gemeenschappelijke eigenschappen somt de eigenschappen op die voor alle formuliertypen gelden; de pagina’s per type beschrijven de extra eigenschappen.
Hoe formulieren worden geladen
AnsibleForms laadt formulieren vanaf de volgende locaties:
- UIT REPOSITORIES : alle repositories waarbij de schakelaar “Gebruiken voor formulieren?” aanstaat (meerdere repositories worden ondersteund)
- Formulieren uit alle ingeschakelde repositories worden automatisch samengevoegd.
- In elke repository wordt eerst gezocht naar een submap
forms/. - Bestaat er geen submap
forms/, dan wordt de root van de repository gebruikt. - Formulieren die in de ontwerper zijn gemaakt en nog niet zijn gepusht, worden bewaard in een stagingmap (
FORMS_STAGING_PATH) en samen met de andere geladen.
- UIT DE LOKALE MAP : de lokale map
forms/(FORMS_FOLDER_PATH), wanneer bij geen enkele repository “Gebruiken voor formulieren?” aanstaat
Let op: staat “Gebruiken voor formulieren?” bij meerdere repositories aan, dan worden al hun formulieren samengevoegd. Formuliernamen moeten over alle repositories heen uniek zijn om conflicten te voorkomen.
Waar een formulier draait
Het type van een formulier bepaalt op wat voor runner zijn job draait: een RTE voor ansible, een AWX-runner voor awx, aap en ascender, en een runner van het eigen type voor semaphore, rundeck en jenkins.
runner: <name>op het formulier kiest op naam een runner van dat type; zonder die sleutel draait de job op de standaardrunner van het type.- Een runner die onder Verbindingen > Runners is uitgeschakeld, laat de job mislukken, of het formulier hem nu noemt of hij de standaard is. De job valt nooit terug op een andere runner.
- Wanneer een van de rollen van de gebruiker
runnersopsomt inconfig.yaml, mag de job alleen draaien op een runner die zo’n rol opsomt; anders wordt hij geweigerd. Rollen zonder die lijst beperken het niet, en een admin wordt nooit beperkt.
In deze sectie
De volgende pagina’s beschrijven de eigenschappen van formulieren in detail:
| Pagina | Wat er aan bod komt |
|---|---|
| Gemeenschappelijke eigenschappen | Eigenschappen die voor alle formuliertypen gelden (name, description, help, type, fields) |
| Ansible-formulieren | Eigenschappen specifiek voor type: ansible |
| AWX-formulieren | Eigenschappen specifiek voor type: awx |
| Semaphore-formulieren | Eigenschappen specifiek voor type: semaphore, dat een sjabloon van Semaphore uitvoert |
| Rundeck-formulieren | Eigenschappen specifiek voor type: rundeck, dat een job van Rundeck uitvoert |
| Jenkins-formulieren | Eigenschappen specifiek voor type: jenkins, dat een job van Jenkins bouwt |
| Multistep-formulieren | Eigenschappen specifiek voor type: multistep, verouderd ten gunste van workflow |
| Workflowformulieren | Eigenschappen specifiek voor type: workflow, dat een workflow uitvoert |
| Wizard | De invoer van een formulier over meerdere pagina’s verdelen (werkt bovenop elk uitvoerbaar formuliertype) |
| Subformulier | Subformulieren gebruiken alleen de gemeenschappelijke eigenschappen |
| Goedkeuringspunten | Een job stilzetten tot hij is goedgekeurd (approval) |
| Meldingen | E-mails en kanaalberichten versturen bij jobstatussen of gebeurtenissen (notifications) |
| Acties bij jobstatus | Iets doen op het formulier wanneer een job van status verandert (onSubmit, onSuccess, …) |