(Mi scuso in anticipo per la stupidità in questa domanda. Normalmente sono un programmatore, non un amministratore di sistema, ma mi sono preso la responsabilità di automatizzare alcune cose e di ripulire alcune altre cose che sono automatizzate ma non nel modo più carino . :-)
Ho cercato vari strumenti per l'automazione della distribuzione del software su un gruppo di server, come cfengine, Puppet e Chef. Finora, Puppet sembra il più interessante, ma di certo non mi sono ancora impegnato in nulla.
Sembra che tutti questi strumenti possano fare un ottimo lavoro nel mantenere aggiornati un sacco di server con software preconfezionato .
Quello che non capisco è: come si usa uno strumento (come Puppet) per gestire le distribuzioni del nostro software interno? Penso di essere in perdita perché ho visto un migliaio di tutorial che mostrano come mantenere Apache ensure => latest
(che è piuttosto interessante), ma niente che corrisponda abbastanza al mio caso d'uso oggi, che è qualcosa di più simile a:
- quando un essere umano preme il pulsante,
- estrarre il ramo A dal repository di controllo versione B
- eseguire il comando C per compilarlo
- copiare i file binari D sui server da E1 a E10
- su ciascun server, eseguire il comando F per rendere effettive tutte le modifiche
Puppet suona alla grande, e vedo totalmente il vantaggio di una configurazione dichiarativa e idempotente su alcuni script di shell, ma non ho visto nessun tutorial per "vuoi aggiornare i tuoi script di shell a Puppet (o Chef o cfengine), quindi ecco cosa dovresti ... dovrebbe". C'è una cosa del genere? È ovvio per gli altri come prendere le cose fornite nei documenti Puppet e replicare il comportamento che desidero? Non lo capisco?
Quello che mi sembra, finora, è che l'essere umano (n. 1) impacchetterebbe manualmente il software (n. 2 e n. 3) esterno a Puppet, aggiornando manualmente la configurazione Puppet, il che farebbe scattare Puppet per aggiornare i server. .. può essere? (Sono un po 'confuso qui, come sono sicuro che puoi dire.)
Grazie!