Moduli
Definire i moduli che i tuoi utenti compilano
Per chi scrive i moduli: come si scrivono i moduli in YAML, da dove vengono caricati, e le proprietà di ogni tipo di modulo.
I moduli sono il cuore di AnsibleForms. Ogni modulo è un’interfaccia web che raccoglie l’input dell’utente e, con quei dati, esegue un playbook Ansible, un template di AWX, AAP o Ascender, un template di Semaphore, un job Rundeck o Jenkins, oppure un workflow.
I moduli sono definiti in file YAML nella cartella dei moduli. Ogni file YAML contiene un solo modulo o una lista di moduli, e si possono usare sottocartelle per organizzarli.
VIDEO: Crea il tuo primo modulo
Capire la struttura di un modulo
Ogni modulo di AnsibleForms si configura con un insieme di proprietà. Proprietà comuni elenca le proprietà valide per tutti i tipi di modulo; le pagine specifiche di ciascun tipo descrivono quelle aggiuntive.
Come vengono caricati i moduli
AnsibleForms carica i moduli dalle seguenti posizioni:
- DAI REPOSITORY : tutti i repository con l’interruttore “Usare per moduli?” attivo (sono supportati più repository)
- I moduli di tutti i repository abilitati vengono uniti automaticamente.
- In ogni repository si cerca prima una sottocartella
forms/. - Se la sottocartella
forms/non esiste, si usa la radice del repository. - I moduli creati nel designer e non ancora inviati con push restano in una cartella di staging (
FORMS_STAGING_PATH) e vengono caricati insieme a loro.
- DALLA CARTELLA LOCALE : la cartella locale
forms/(FORMS_FOLDER_PATH), quando nessun repository ha “Usare per moduli?” attivo
Nota: quando “Usare per moduli?” è attivo su più repository, tutti i loro moduli vengono uniti. I nomi dei moduli devono essere univoci tra i repository per evitare conflitti.
Dove gira un modulo
Il tipo di un modulo decide il tipo di runner su cui gira il suo job: un RTE per ansible, un runner AWX per awx, aap e ascender, e un runner del tipo corrispondente per semaphore, rundeck e jenkins.
runner: <name>sul modulo sceglie per nome un runner di quel tipo; senza, il job gira sul runner predefinito del tipo.- Un runner disattivato in Connessioni > Runner fa fallire il job, che il modulo lo nomini o che sia quello predefinito. Il job non ripiega mai su un altro runner.
- Quando uno dei ruoli dell’utente elenca
runnersinconfig.yaml, il job può girare solo su un runner elencato da un ruolo del genere, altrimenti viene rifiutato. I ruoli senza l’elenco non lo limitano, e un amministratore non è mai limitato.
In questa sezione
Le pagine seguenti descrivono in dettaglio le proprietà dei moduli:
| Pagina | Cosa tratta |
|---|---|
| Proprietà comuni | Proprietà valide per tutti i tipi di modulo (name, description, help, type, fields) |
| Moduli Ansible | Proprietà specifiche di type: ansible |
| Moduli AWX | Proprietà specifiche di type: awx |
| Moduli Semaphore | Proprietà specifiche di type: semaphore, che esegue un template di Semaphore |
| Moduli Rundeck | Proprietà specifiche di type: rundeck, che esegue un job Rundeck |
| Moduli Jenkins | Proprietà specifiche di type: jenkins, che esegue la build di un job Jenkins |
| Moduli multistep | Proprietà specifiche di type: multistep, deprecato a favore di workflow |
| Moduli workflow | Proprietà specifiche di type: workflow, che esegue un workflow |
| Wizard | Suddividere l’input di un modulo su più pagine (funziona sopra qualsiasi tipo di modulo eseguibile) |
| Sottomodulo | I sottomoduli usano solo le proprietà comuni |
| Punti di approvazione | Mettere in pausa un job finché non viene approvato (approval) |
| Notifiche | Inviare email e messaggi sui canali in base allo stato o agli eventi del job (notifications) |
| Azioni sullo stato del job | Agire sul modulo quando un job cambia stato (onSubmit, onSuccess, …) |