Esiste un modo (automatico) di eseguire il backup dei file CI Hudson?

Qui nella mia azienda disponiamo di tre server CI Hudson con oltre 100 lavori configurati. Stiamo cercando un modo automatico per eseguire periodicamente il backup delle configurazioni di lavoro e creare cronologia.

Attualmente abbiamo uno script ant che configuriamo come lavoro ma non è facile da mantenere e non elegante.

Qualcuno di voi ha trovato un modo per gestirlo?

C’è un plugin di backup .

Non credo che supporti la pianificazione di backup periodici, ma potresti essere in grado di triggersrlo accedendo tramite l’URL (come alcune altre API remote di Hudson), nel qual caso potresti essere in grado di configurare semplicemente un processo cron per eseguire il ping dell’URL.

I miei server Hudson funzionano su Windows, quindi uso Robocopy per questo. Ce l’ho specchio tutti i file in ogni casa hudson di ogni server di costruzione, escluse le directory degli spazi di lavoro del lavoro. Dato che i backup stanno andando in un posto centrale, ho un’attività pianificata su un server che esegue il mio script ogni notte, e i server Hudson non sono a conoscenza del processo.

Lo script ha una voce per macchina hudson:

robocopy path-to-buildserver-hudson-home backup-cartella-percorso \ buildserver-name / ZB / E / NP / R: 1 / W: 5 “/LOG:%~dp0backup_log.txt” / TEE / XD spazio di lavoro

Nota: dopo la prima macchina, diventa / LOG +: invece di / LOG: in modo che i successivi vengano aggiunti al log.

Questo esegue il mirroring senza eliminare file che non esistono in origine, quindi anche se Hudson è configurato per eliminare i risultati di build dopo X mesi o Y build, i backup potrebbero comunque avere la cronologia completa … così come i log per console e un file ed è ripristinabile se viene interrotto. È a portata di mano. Se non si desidera conservare i file cancellati da Hudson, è ansible utilizzare / MIR anziché / E.

Sono sicuro che strumenti simili per copie o mirroring affidabili esistono su altre piattaforms. Ant è probabilmente sufficiente se fatto bene.

C’è un fantastico plugin di thinBackup .

Esegue il backup solo della configurazione del sistema e delle configurazioni del lavoro anziché dell’intera directory HUDSON_HOME e ha una programmazione cron-like. Sexy!

Lo gestivo con una soluzione di backup standard per server aziendali.

Oppure tira il mio con qualcosa come BackupPc.

Oppure controlla i file di configurazione nel tuo sistema di controllo della versione.

Sto usando thinbackup, che supporta il backup completo e il backup differenziale, e puoi programmare quando esegue il backup utilizzando la cron job come la syntax. Effettua il backup solo delle configurazioni critiche, quindi non richiede molto spazio.

Vedi maggiori dettagli su: https://wiki.jenkins-ci.org/display/JENKINS/thinBackup

Oltre al plugin Backup c’è anche il plugin thinBackup per eseguire il backup solo dei file di configurazione (disponibili per Hudson o Jenkins )

Personalmente mi piace fare tutti i backup di sistema attraverso un sistema che di solito è uno script di shell alla fine. Ho scritto una sceneggiatura specifica per Jenkins (anche per Hudson). Vedi https://bitbucket.org/toomasr/jenkins-stuff/src per maggiori informazioni.