Gestione della configurazione: dipendenze tra macchine


8

Ho usato strumenti come le marionette per gestire i singoli sistemi, con generalmente un alto livello di successo. Dove il burattino cade è che non è bravo a gestire le dipendenze al di fuori di un singolo server.

Ad esempio, su un server MySQL configuro fantoccio per fare quanto segue:

  • Configura l'autenticazione sulla macchina per accedere al mio server LDAP
  • Configura apt per usare il mio repository mirror locale
  • Installa i pacchetti MySQL
  • Scrivi a my.cnf
  • Avvia MySQL
  • Crea utenti nel database

In questa serie di passaggi sono state risolte numerose dipendenze, ad esempio non posso avviare il servizio di database se non ho installato i pacchetti, cosa che non posso fare a meno che il repository apt non sia configurato correttamente.

Questo server MySQL è una scatola in una configurazione di replica master-> master. In un mondo ideale, fantoccio (o un altro strumento simile) mi permetterebbe di rappresentare il fatto che il server B deve attendere fino a quando il server A è disponibile e quindi tentare di stabilire una relazione di replica con esso.

Un sacco di testo qui - fondamentalmente quello che sto chiedendo è: ci sono strumenti come le marionette in grado di gestire dipendenze tra macchine come questa?

Risposte:


4

Se stai usando Puppet, le risorse esportate (e quindi le configurazioni memorizzate ) sono lo strumento per il lavoro. Ciò consente di condividere informazioni tra nodi. Incluse le impostazioni di replica effettive, se necessario.

In alternativa, e anche se io stesso non sono un abbonato, alcune persone trattano i loro manifest / run come non deterministici. Ciò significa che una singola corsa non dichiara necessariamente il risultato completo di un nodo. Potrebbero essere necessarie due o più esecuzioni prima che il nodo raggiunga lo stato desiderato.

Poiché la configurazione dello slave MySQL prima che il master sia disponibile non sarebbe del tutto fatale, potresti voler seguire questo percorso. Secondo me non è altrettanto "intelligente".


0

Non essendo un utente fantoccio, sono sicuro che altri risponderanno con risposte più appropriate, ma sembra che uno script wrapper possa essere implementato con relativa facilità che controlla prima di avviare il servizio.


0

Puppet può farlo bene. Chiedi a ciascun server di esportare una risorsa per configurare gli altri server appropriati per fare ciò che deve essere fatto una volta che sono attivi e in esecuzione. Non ho un esempio per MySQL, ma configuriamo molte risorse DRBD (come circa 80, al momento attuale) in questo modo, così come tutte le nostre configurazioni Nagios.


0

Il livello di controllo potrebbe essere quello che stai cercando. Puoi usarlo insieme al burattino, quindi la curva di apprendimento non dovrebbe essere troppo ripida.

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.