Per impostazione predefinita, Ansible ricerca le attività per un ruolo in un main.yml. Ho troppi file main.yml e mi piacerebbe rinominarlo in rolename.yml o qualcosa di più unico. Come posso modificare il comportamento predefinito di Ansible per utilizzare rolename.yml invece di tasks/main.yml?Rinomina ruoli/nomefile/tasks/main.yml in rolename.yml in Ansible
risposta
Come già sottolineato da Bruce, questo è codificato. Ma ho anche un problema con questo comportamento, dato che il mio IDE mostra il nome del file nella scheda e ho usato un tab di bazillion chiamato "main.yml".
La mia configurazione di serie è quella di avere due file:
- main.yml
- ruolo nome- .yml
Nel main.yml poi semplicemente è un include
compito allo role-name.yml. Oltre a questo, gestisco i tag, perché voglio che tutti i miei ruoli vengano etichettati con il loro nome.
---
- include: role-name.yml
tags: role-name
...
Purtroppo non c'è modo di farlo. Il nome main.yml
è hardcoded nel codice sorgente ansible. (Se davvero a cuore, cercare la funzione _resolve_main
in this file.)
compiti di ruolo sarà sempre nel file roles/<rolename>/tasks/main.yml
, variabili in roles/<rolename>/vars/main.yml
, ecc Poiché il percorso che ogni file vive in fornisce il dettaglio completo del nome del ruolo & scopo del file, non c'è davvero bisogno di cambiare il nome da main.yml. Si finirebbe con qualcosa come roles/<rolename>/tasks/<rolename>.yml
che è ridondante.
Questo è tutto documentato nel documento di Ansible Best Practices.
Perché non si può finire con percorsi come 'ruoli/
Come una soluzione alternativa può comodamente link simbolico chiamato rolename_tasks.yml
a main.yml
...
- 1. rinomina apk in gradle
- 2. Rinomina file in Cocoa?
- 3. Rinomina file in IsolatedStorage
- 4. Rinomina file in DocumentDirectory
- 5. Hadoop in rinomina file
- 6. Rinomina controllo in XAML
- 7. Citazioni in lineinfile ansible
- 8. Rinomina namespace in PHP NetBeans?
- 9. rinomina una build in buildbot
- 10. Rinomina un lavoro in jenkins
- 11. Rinomina un file in C#
- 12. database di rinomina in psql
- 13. Variabile condizionalmente definita in Ansible
- 14. Salta l'intero loop in Ansible
- 15. dizionario Loop in modello ansible
- 16. Ansible: host in più gruppi
- 17. in esecuzione mkvirtualenv using ansible
- 18. Rinomina pacchetto con sotto-pacchetti in netbeans
- 19. nuget pack rinomina web.config in web.config.transform
- 20. Trova file, rinomina in posto unix bash
- 21. Rinomina nome file di base in Qt
- 22. Rinomina getter e setter in Eclipse. Scorciatoia?
- 23. Comportamento strano di rinomina() in PHP
- 24. Come si rinomina una tabella in HBase?
- 25. Rinomina file in md5 sum + extension (BASH)
- 26. Rinomina file outfile con data in mysql
- 27. Rinomina colonne in più dataframes, R
- 28. accesso variabili variabili nidificate in ansible
- 29. SSH in una macchina Vagrant con Ansible
- 30. Inserire dati in tabelle mysql usando ansible
Un approccio simile anche qui - main.yml include il mio "Posso vedere a cosa sto lavorando basato solo sul file" del file yaml. Dato che nessun altro codice è elencato nel file main.yml diverso dal percorso verso il file con il nome migliore, a parte la creazione iniziale, non vengono mai modificati, quindi non creano mai confusione. – PhillipHolmes
migliore opzione (a corto di patch Ansible) che ho visto, è strano per me che questo include è relativo alla directory di ruolo, non il file main.yml. Hai qualche consiglio per rendere ./vars/main.yml meno stupido? – ThorSummoner