Abbiamo creato un server che esegue l'infrastruttura per una piccola associazione. Finora, abbiamo provato a gestire la configurazione con Ansible, ma non è stato un grande successo. Forse stiamo sbagliando.
In linea di principio, l'idea è che questo server rimarrà solo per la maggior parte del tempo, con le persone che aggiungono o cambiano le cose una volta su una luna blu. Ciò rende cruciale che tutto ciò che è configurato e in esecuzione sul server sia ben documentato e chiaro, poiché le persone che non amministrano frequentemente il sistema sono destinate a perdere la visione d'insieme (per non parlare dei dettagli). Inoltre, nel tempo, la composizione del gruppo di persone che amministrerà questo server cambierà (man mano che le persone escono e si uniscono al "comitato").
Abbiamo iniziato con un'installazione pulita, aggiungendo ruoli in ansible ogni volta che volevamo creare qualcosa (nginx, phpfpm, postfix, firewall, sftp, munin, ..). Forse a causa della nostra inesperienza, ovviamente non siamo mai in grado di scrivere una serie di attività rispondibili esattamente come ne abbiamo bisogno in una sola volta, anche perché la configurazione è un po 'un processo di prova ed errore. Ciò significa che, in pratica, in genere configuriamo prima qualsiasi servizio desideriamo eseguire sul server , quindi traduciamo in attività rispondibili. Puoi vedere dove sta andando. Le persone dimenticano di testare il compito, o hanno paura di farlo a rischio di spezzare le cose, o peggio: dimentichiamo o trascuriamo di aggiungere cose per rispondere.
Oggi abbiamo poca fiducia che la configurazione ansible rifletta effettivamente ciò che è configurato sul server.
Attualmente vedo tre problemi principali:
- È difficile (leggere: non abbiamo un buon modo per) testare le attività rispondenti senza rischiare di rompere le cose.
- Aggiunge ulteriore lavoro per capire prima la configurazione desiderata, quindi capire come tradurla in attività rispondibili.
- (Idealmente) non lo usiamo abbastanza frequentemente per creare familiarità e routine.
Una considerazione importante qui è che per qualsiasi cosa finiamo per fare, dovrebbe essere facile per i nuovi arrivati imparare le corde senza un sacco di pratica.
Esiste un'alternativa praticabile che fornisce ancora alcune garanzie e controlli (paragonabile all'unione dei file Ansible in alcuni master
) che "configura le cose e annota ciò che hai fatto" non riesce a fornire?
EDIT: Abbiamo preso in considerazione l'impegno /etc
a git. Esiste un modo ragionevole per proteggere i segreti (chiavi private, ecc.) In quel modo, ma in qualche modo avere ancora il repository di configurazione esterno al server?