Distribuzione dell'applicazione con Puppet


10

Sono nuovo di Puppet e mentre uso i sistemi * nix da molti anni, non ho mai lavorato come amministratore di sistema o in operazioni.

Attualmente sto scrivendo i manifest di Puppet per ospitare una serie di applicazioni Web (PHP / MySQL / MongoDB, code in git). Chiaramente Puppet deve avere una certa conoscenza delle applicazioni reali perché imposterò un host virtuale per ognuna, ma non sono sicuro che Puppet debba gestire cose come la distribuzione del codice e la creazione di database.

Puppet è uno strumento appropriato per la distribuzione delle applicazioni? In caso contrario, puoi consigliare uno strumento più appropriato?


3
Se ci arriverai più avanti, tutte le risposte sono buone, non leggere solo quella che ho scelto come risposta.
michaeltwofish,

Risposte:


10

Mi piacerebbe guardare in uno Capistrano o tessuto per le implementazioni ..

Avrai un migliore controllo su come avviene la distribuzione con questi due strumenti.


Ho fatto +1 su questa risposta perché ha dato due soluzioni.
François Beausoleil,

Apprezzo i puntatori. Abbiamo Ruby altrove nel nostro stack, quindi guarderò Capistrano.
michaeltwofish,

9

Puppet viene utilizzato per distribuzioni in molte grandi organizzazioni, ma non è sempre perfetto. Molto dipende dalla metodologia di implementazione. Stai distribuendo su molte macchine contemporaneamente? Ti occupi delle implementazioni rolling?

Alcune organizzazioni usano Puppet costruendo pacchetti delle loro distribuzioni e quindi avendo la politica di applicazione delle marionette per essere nella versione giusta di quel pacchetto. Poiché il pupazzo include il concetto di ambienti, è possibile utilizzare gli ambienti per eseguire le distribuzioni in più fasi (sviluppo, test, produzione ad esempio).

Altre organizzazioni usano le marionette per orchestrare la distribuzione lanciando rsync, git checkout o alcune copie di file ricorsive usando le marionette (anche se è piuttosto lento).

Ci sono anche altri strumenti abbastanza buoni disponibili per la distribuzione. Ho usato Whiskey Disk in passato (un semplice strumento ruby) e mi è piaciuto molto.

(Dichiarazione di non responsabilità, lavoro presso Puppet Labs)


Grazie. Le distribuzioni avvengono su due server bilanciati, attualmente utilizzando rsync manuale.
michaeltwofish,

4

Se si desidera creare un pacchetto dall'applicazione, è possibile esaminare FPM . Il codice è su GitHub .


Grazie per il consiglio. In questo caso non stiamo creando pacchetti, ma FPM sembra interessante e possiamo usarlo per altre attività.
michaeltwofish,

4

A mio avviso, Puppet non è lo strumento appropriato per distribuire applicazioni.

Uso Jenkins per creare e distribuire il nostro codice per testare e mettere in scena.

Jenkins è originariamente un server di integrazione continua, ma è davvero flessibile e modulare. Esistono molti plugin per Jenkins che possono aiutarti a distribuire le tue applicazioni:

Per la nostra applicazione, ho configurato Jenkins con Pubblica su SSH che copia un file WAR costruito correttamente sul server di destinazione e quindi esegue uno script che esegue il backup e la distribuzione. Spero che sia di aiuto!


Stiamo usando Jenkins per CI, quindi questa è sicuramente un'opzione interessante da esplorare, grazie.
michaeltwofish,


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.