Pipeline
Inclusione componenti
Questo task di inclusione avviene prima dell’esecuzione dei singoli stage. Al fine di installare le componenti volute, è necessario includere nella pipeline di Dr. WOLF anche i riferimenti delle pipeline delle singole componenti.
Questo step è necessario affinché possano essere eseguiti gli stage mancanti nella definizione della pipeline di Dr. WOLF. Oltre alla inclusione di tutte le pipeline delle componenti desiderate, dovremmo poi effettuare il clone di tutte le repository degli applicativi utilizzati, come vedremo in seguito.
Clone
Questo stage è necessario per includere in Dr. WOLF tutte le repository delle componenti che vogliamo installare, dato che esse contengono sia i vari ruoli Ansible sia altre informazioni utili come ad esempio i check che sono stati definiti per ciascuna di esse.
Check esistenza chiave ssh
Questo stage si occupa di verificare se l’utente ha specificato tra le variabili l’utilizzo della chiave ssh o meno. Nel caso in cui non fosse definita, o fosse vuota, allora questo stage viene ignorato e non viene affatto eseguito a livello di pipeline, utilizzando quindi i soli username e password forniti per accedere alle macchine in ssh.
Generate
Questo stage si occupa della creazione dell’inventario padre contenente tutte le informazioni che abbiamo passato come variabili CI/CD. Il compito della generazione dell’inventario padre è demandata ad uno script python. In questo step, è presente anche un pre-task che si occupa di inizializzare la chiave SSH con cui accedere alle macchine.
Check
Questo stage non è presente nella definizione della pipeline di Dr. WOLF. Questo vuol dire che ogni singola pipeline che abbiamo incluso, procederà alla esecuzione dei propri check definiti nelle proprie pipeline, se presenti. I check saranno comunque consistenti dato che prenderanno in considerazione gli inventari padre generati precedentemente. Ogni componente, dunque, effettuerà i propri check.
Setup
Questo stage si occupa di eseguire tutti i playbook ansible presenti al fine di creare l’inventario figlio e riempire il file /etc/hosts delle macchine con gli hostname e ip di tutte le componenti.
Deploy
Questo stage non è presente nella definizione della pipeline di Dr. WOLF. Questo comporta il fatto che verranno prelevati tutti gli stage deploy presenti nella pipeline delle singole componenti. Per questo motivo, sarà possibile eseguire manualmente le singole componenti utilizzando questo stage. Verranno eseguiti i playbook corrispondenti agli applicativi che vogliamo includere, allo stesso modo di come si farebbe eseguendo le pipeline delle singole componenti separatamente.