4 069
contributi
Nessun oggetto della modifica |
|||
(10 versioni intermedie di 3 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Versioni compatibili|}} | {{Versioni compatibili|Squeeze|Wheezy|Jessie|Stretch}} | ||
== Introduzione == | == Introduzione == | ||
In un server è fondamentale avere il completo controllo della directory < | In un server è fondamentale avere il completo controllo della directory <code>/etc</code>, dove risiedono tutti i file di configurazione del sistema. | ||
<br/> | <br/> | ||
Un metodo molto semplice, efficace e poco faticoso è utilizzare il software '' | Un metodo molto semplice, efficace e poco faticoso è utilizzare il software ''etckeeper''. Questo software e’ una collezione di script bash che consentono di tenere sotto controllo tramite un sistema di revisione distribuito la nostra directory <code>/etc</code>, dove sono appunto presenti i file di configurazione della maggior parte dei nostri servizi in Linux. | ||
== Installazione == | == Installazione == | ||
L'installazione è molto semplice: | L'installazione è molto semplice: | ||
<pre> | <pre> | ||
apt-get install etckeeper bzr | # apt-get install etckeeper bzr | ||
</pre> | </pre> | ||
Il pacchetto '' | Il pacchetto ''etckeeper'' si appoggia, per tenere traccia dei cambiamenti, a un software di controllo versione: possiamo scegliere quello che preferiamo tra Git, Subversion, Bazaar, etc. | ||
<br/> | <br/> | ||
In questa guida la scelta è caduta su Bazaar, un software leggero e adatto a installazioni piccole o di singoli server. | In questa guida la scelta è caduta su Bazaar, un software leggero e adatto a installazioni piccole o di singoli server. | ||
Riga 20: | Riga 20: | ||
# nano /etc/etckeeper/etckeeper.conf | # nano /etc/etckeeper/etckeeper.conf | ||
</pre> | </pre> | ||
e | e impostiamo il software di controllo versione che intendiamo usare: | ||
<pre> | <pre> | ||
# The VCS to use. | # The VCS to use. | ||
Riga 30: | Riga 30: | ||
lasciando immodificate le altre linee del file. | lasciando immodificate le altre linee del file. | ||
<br/><br/> | <br/><br/> | ||
Per inizializzare | Per inizializzare etckeeper lanciamo il comando: | ||
<pre> | <pre> | ||
# etckeeper init | # etckeeper init | ||
</pre> | </pre> | ||
In caso apportassimo delle modifiche al file di configurazione < | In caso apportassimo delle modifiche al file di configurazione <code>/etc/etckeeper/etckeeper.conf</code>, potremo (se lo desideriamo) reinizializzare la configurazione: | ||
<pre> | <pre> | ||
# etckeeper uninit | # etckeeper uninit | ||
Riga 40: | Riga 40: | ||
# etckeeper init | # etckeeper init | ||
</pre> | </pre> | ||
tenendo presente che una reinizializzazione, azzera tutte le informazioni archiviate da | tenendo presente che una reinizializzazione, azzera tutte le informazioni archiviate da etckeeper. | ||
<br/> | <br/> | ||
<br/> | <br/> | ||
etckeeper farà il primo commit automaticamente quando verrà installato un software che modifica la directory < | etckeeper farà il primo commit automaticamente quando verrà installato un software che modifica la directory <code>/etc directory</code>, ma se non vogliamo aspettare, possiamo lanciare il primo commit manualmente: | ||
<pre> | <pre> | ||
# etckeeper commit "Initial commit" | # etckeeper commit "Initial commit" | ||
</pre> | </pre> | ||
Per impostazione predefinita, | == Utilizzo == | ||
Per impostazione predefinita, etckeeper effettua un commit ogni giorno. | |||
<br/> | <br/> | ||
Possiamo comunque effettuare manualmente dei commit, ad esempio dopo aver apportato delle modifiche ai file di configurazione di qualche servizio. | Possiamo comunque effettuare manualmente dei commit, ad esempio dopo aver apportato delle modifiche ai file di configurazione di qualche servizio. | ||
<br/> | <br/> | ||
Supponiamo di aver modificato il file < | Supponiamo di aver modificato il file <code>/etc/hosts</code>. Con il comando: | ||
<pre> | <pre> | ||
# bzr status /etc/ | # bzr status /etc/ | ||
Riga 75: | Riga 76: | ||
</pre> | </pre> | ||
== | == Ripristinare i cambiamenti == | ||
Con Bazaar possiamo tornare a una versione precedente dei file modificati. Per farlo, ci occorre conoscere il numero di versione da ripristinare. | |||
<br/> | |||
Ad esempio: | |||
<pre> | |||
# bzr log /etc/hosts | |||
</pre> | |||
ci mostrerà tutte le versioni archiviate del file <code>/etc/hosts</code>: | |||
<pre> | |||
root@server1:~# bzr log /etc/hosts | |||
------------------------------------------------------------ | |||
revno: 5 | |||
committer: root <root@server1.example.com.example.com> | |||
branch nick: server1.example.com /etc repository | |||
timestamp: Tue 2011-07-12 17:00:22 +0200 | |||
message: | |||
Changed /etc/hosts | |||
------------------------------------------------------------ | |||
revno: 4 | |||
committer: root <root@server1.example.com.example.com> | |||
branch nick: server1.example.com /etc repository | |||
timestamp: Tue 2011-07-12 16:59:03 +0200 | |||
message: | |||
Changed /etc/hosts | |||
------------------------------------------------------------ | |||
revno: 3 | |||
committer: root <root@server1.example.com.example.com> | |||
branch nick: server1.example.com /etc repository | |||
timestamp: Tue 2011-07-12 16:45:21 +0200 | |||
message: | |||
Changed /etc/hosts | |||
------------------------------------------------------------ | |||
revno: 1 | |||
committer: root <root@server1.example.com.example.com> | |||
branch nick: server1.example.com /etc repository | |||
timestamp: Tue 2011-07-12 16:43:39 +0200 | |||
message: | |||
saving uncommitted changes in /etc prior to apt run | |||
root@server1:~# | |||
</pre> | |||
Il comando: | |||
<pre> | |||
# bzr log /etc | |||
</pre> | |||
ci mostrerà le versioni dell'intera directory <code>/etc</code>: | |||
<pre> | |||
root@server1:~# bzr log /etc | |||
------------------------------------------------------------ | |||
revno: 5 | |||
committer: root <root@server1.example.com.example.com> | |||
branch nick: server1.example.com /etc repository | |||
timestamp: Tue 2011-07-12 17:00:22 +0200 | |||
message: | |||
Changed /etc/hosts | |||
------------------------------------------------------------ | |||
revno: 4 | |||
committer: root <root@server1.example.com.example.com> | |||
branch nick: server1.example.com /etc repository | |||
timestamp: Tue 2011-07-12 16:59:03 +0200 | |||
message: | |||
Changed /etc/hosts | |||
------------------------------------------------------------ | |||
revno: 3 | |||
committer: root <root@server1.example.com.example.com> | |||
branch nick: server1.example.com /etc repository | |||
timestamp: Tue 2011-07-12 16:45:21 +0200 | |||
message: | |||
Changed /etc/hosts | |||
------------------------------------------------------------ | |||
revno: 2 | |||
committer: root <root@server1.example.com> | |||
branch nick: server1.example.com /etc repository | |||
timestamp: Tue 2011-07-12 16:43:50 +0200 | |||
message: | |||
committing changes in /etc after apt run | |||
Package changes: | |||
+fail2ban 0.8.4-3 | |||
------------------------------------------------------------ | |||
revno: 1 | |||
committer: root <root@server1.example.com.example.com> | |||
branch nick: server1.example.com /etc repository | |||
timestamp: Tue 2011-07-12 16:43:39 +0200 | |||
message: | |||
saving uncommitted changes in /etc prior to apt run | |||
root@server1:~# | |||
</pre> | |||
<br/> | <br/> | ||
Per ripristinare il file <code>/etc/hosts</code> alla versione 3 occorre: | |||
<pre> | |||
# bzr revert --revision 3 /etc/hosts | |||
</pre> | |||
Se vogliamo ripristinare l'intera directory/<code>/etc</code> alla versione 2: | |||
<pre> | |||
# bzr revert --revision 2 /etc | |||
</pre> | |||
== Monitorare i pacchetti installati == | |||
Possiamo aggiungere a etckeeper anche la lista dei pacchetti installati nel sistema, utilizzando un piccolo [[script]]: | |||
<pre> | |||
# dpkg --get-selections > /etc/package.list | |||
# cp /etc/apt/sources.list /etc/sources.list | |||
# apt-key exportall > /etc/Repo.keys | |||
</pre> | |||
Inserito in [[cron]], questo script creerà una lista aggiornata dei pacchetti installati nel sistema, che sarà poi inserita nel controllo di versione di etckeeper. | |||
<br/> | <br/> | ||
Potremo ripristinare le modifiche con: | |||
<pre> | |||
# apt-key add /etc/Repo.keys | |||
# cp ~/sources.list /etc/apt/sources.list | |||
# apt-get update | |||
# apt-get install dselect | |||
# dpkg --set-selections < /etc/package.list | |||
# apt-get dselect-upgrade -y | |||
</pre> | |||
{{Autori | |||
|Autore=[[Utente:Ferdybassi|Ferdybassi]] | |||
}} | |||
[[Categoria:Monitoraggio]] | [[Categoria:Monitoraggio]] | ||
[[Categoria:Backup&restore]] | [[Categoria:Backup&restore]] |