In contrasto con lo good answerxeraa eseguiamo il più possibile all'interno di AWS.
I reali benefici che otteniamo da questo è che ci permette di utilizzare centralizzati Jenkins server che eseguono Ansible (e Terraform nel nostro caso per il provisioning AWS vero e proprio con Ansible appena usato per configurare le istanze EC2 ed eseguire Playbook ad-hoc per compiti amministrativi).
Possiamo quindi controllare l'accesso a questi server Jenkins tramite credenziali e/o gruppi di sicurezza/NACL.
Fare in questo modo significa che possiamo controllare la quantità di persone che hanno una qualche forma di credenziali che consentirebbe loro di costruire qualcosa che gli piace e/o distruggere tutto ciò che vogliono.
Idealmente forniremmo le credenziali ai server Jenkins tramite i ruoli di istanza di IAM EC2 ma non siamo ancora arrivati.
Una reale positivo di questo è che la nostra linea del fronte/secondo ragazzi di supporto linea che usano Windows praticamente esclusivamente in grado di accedere a una bella interfaccia grafica web per la gestione le cose nel bel mezzo della notte ed eseguire processi di Jenkins che specificamente hanno accesso per eseguire ciò si farà come riavviare un server/servizio o anche ricostruire parte di un VPC.
Abbiamo un account "dev" separato a cui gli sviluppatori hanno accesso dalle proprie macchine ed è qui che costruiamo le cose mentre sviluppiamo la nostra base di codice Ansible (e Terraform) prima che il codice sia usato nel nostro test e ambienti di produzione.
C'è una via di mezzo che vorrei aggiungere. Puoi ancora eseguire tutto da un Jenkins centralizzato, sfruttando i vantaggi che hai descritto, ma invece di jenkins con i playbook remoti, potresti eseguire comandi SSH in computer di destinazione che attivano i playbook locali (possibilmente utilizzando ansible-pull in modo da ottenere una nuova copia ogni volta). In questo modo ottieni il meglio da entrambi i mondi. –