[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linux_var] Time Machine de' noartri



On 2017-04-09 at 09:29:57 +0200, Giovanni Orlandi wrote:
> come avevo accennato altre volte volevo fare una "Time Machine" per salvare
> le configurazioni dei miei server ed i miei progetti, con tanto di versioni
> dei file.
> 
> Obbiettivo:
> a) Salvare i file di configurazione "modificati" ( /etc/rc.local
> - /etc/php/7.0/apache2/php.ini - etc... )

sai che c'è etckeeper_ che già tiene tutta la /etc in un repo git?
è comodo perché non solo ti tiene traccia dei file che modifichi tu, ma
tiene anche traccia delle modifiche fatte dalla distribuzione, rendendo
più facile eventuali revert se si fan casini agli aggiornamenti.

.. _etckeeper: http://etckeeper.branchable.com/

Io lo installo di default su tutte le mie macchine.

Però non lo uso per salvare i file che ho personalizzato: per quello
faccio la modifica tramite ansible e salvo (e backuppo) i file di
ansible (e in quel modo posso anche sapere se ho fatto una modifica ad
un default ma di tutto il resto va bene quel che vuole la distro, oppure
se voglio proprio che tutto il file sia fatto in quel modo — e faccio
anche installare i programmi che servono ecc., in modo che la macchina
sia ripristinabile in modo totalmente automatizzato).

> b) Salvare i miei script ( /usr/local/bin/* )
> c) Salvare i miei website ( /var/www/vhosts/settebello.info/sub/*/httpdocs/*
> )
> d) Salvare i miei progetti arduino/android/etc ( /home/orlangio/XXX/* )

io terrei dei repository separati per queste cose: per website e
progetti vari secondo me ha senso usare un repo per ciascuno sito /
progetto.

All'interno di quei progetti terrei anche separati i "segreti"
(password, dati personali, ecc.), salvandoli in un repository a parte
(in modo da dividere le cose per cui serve maggior sicurezza e poter
dedicare ad esse più risorse)

Per gestire i repository multipli si può usare mr_, in modo da non dover
usare millemila comando.

.. _mr: http://joeyh.name/code/mr/

> e) !!! Salvare i miei DB mysql !!! (questa la vedo + complicata)

come scritto nell'altra mail, dump del db e backup di quello

> Quello che avevo pensato era :
> 1) per ogni macchina mi faccio una lista di file e/o directory che intendo
> salvare.
> 2) faccio con rsync o "simili" una copia dei file/directory in una cartella
> di appoggio ( es. /opt/go.backup/* )
> 3) faccio con git un aggiornamento di tale cartella verso il repository di
> backup ( pensavo gitlab è abbastanza sicuro ??? )

per i casi in cui non ha senso tenere il repo git nella stessa
posizione, potrebbe venire comodo vcsh_: è stato scritto per gestire i
file di configurazione dentro la home, ma in generale viene comodo in
ogni caso in cui si hanno più file da gestire in repo git diversi nella
stessa directory.

.. _vcsh: https://github.com/RichiH/vcsh/blob/master/README.md

> 
> Possibilmente il tutto in "automatico" a scadenza giornaliera/settimanale
> 
> Su tale meccanismo ho vari dubbi:
> d1: gitlab è abbastanza sicuro ?
>       (ci sarebbero conservati file contenenti password/dati
> personali/etc...)

direi no.

per carità, ci sono posti ancora peggiori, però vuol comunque dire
mandare in chiaro dati verso server di terze parti in una nazione
diversa (per di più extra-eu)

Coi tempi che corrono, mettere dati del genere su server di un'azienda
statunitense mi pare estremamente rischioso, e se i dati personali sono
di altre persone potrebbe pure diventare illegale (dipende se il safe
harbour sopravvive alle nuove norme che permettono l'accesso da parte di
alcune agenzie ai dati di stranieri su server americani).

So che è possibile avere dei repository git remoti crittati, ma temo che
serva qualcosa di supporto lato server, e dubito che gitlab lo offra.

Nei casi casalinghi, io andrei di "un serverino qui, un serverino a casa
di parenti o amici *fidati*, in mirror automatico", in modo da avere
sempre un paio di copie dei repo.

> d2: come automatizzo l'inserimento/commit delle variazioni in git ?
>       basta nello script prevedere un "git add *" e mi funziona anche con
> le sotto directory ?
>       e se volessi tenere traccia anche della cancellazione dei file ?

c'è git commit -a che fa l'auto add delle modifiche, ma non di file
totalmente nuovi. però se usi git add dei nuovi file e git rm sui file
che togli, il resto viene automatizzato.

personalmente preferisco anche in quei casi fare git add (spesso con -p)
file per file, per controllare cosa sto davvero aggiungendo.

>       e se volessi escludere alcuni tipi di file/directory, tipo quelli che
> iniziano col punto  ( .NF98E.php.swp  ) ?

.gitignore

-- 
Elena ``of Valhalla''
_______________________________________________
Talking mailing list
Talking@ml.linuxvar.it
http://ml.linuxvar.it/cgi-bin/mailman/listinfo/talking