4 069
contributi
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
(13 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: | |||
<pre> | |||
# apt-get install etckeeper bzr | |||
</pre> | |||
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/> | |||
In questa guida la scelta è caduta su Bazaar, un software leggero e adatto a installazioni piccole o di singoli server. | |||
== Configurazione == | |||
Una volta installato, apriamo il file di configurazione: | |||
<pre> | |||
# nano /etc/etckeeper/etckeeper.conf | |||
</pre> | |||
e impostiamo il software di controllo versione che intendiamo usare: | |||
<pre> | |||
# The VCS to use. | |||
#VCS="hg" | |||
#VCS="git" | |||
VCS="bzr" | |||
#VCS="darcs" | |||
</pre> | |||
lasciando immodificate le altre linee del file. | |||
<br/><br/> | |||
Per inizializzare etckeeper lanciamo il comando: | |||
<pre> | |||
# etckeeper init | |||
</pre> | |||
In caso apportassimo delle modifiche al file di configurazione <code>/etc/etckeeper/etckeeper.conf</code>, potremo (se lo desideriamo) reinizializzare la configurazione: | |||
<pre> | |||
# etckeeper uninit | |||
# nano /etc/etckeeper/etckeeper.conf | |||
# etckeeper init | |||
</pre> | |||
tenendo presente che una reinizializzazione, azzera tutte le informazioni archiviate da etckeeper. | |||
<br/> | |||
<br/> | |||
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> | |||
# etckeeper commit "Initial commit" | |||
</pre> | |||
== Utilizzo == | |||
Per impostazione predefinita, etckeeper effettua un commit ogni giorno. | |||
<br/> | |||
Possiamo comunque effettuare manualmente dei commit, ad esempio dopo aver apportato delle modifiche ai file di configurazione di qualche servizio. | |||
<br/> | |||
Supponiamo di aver modificato il file <code>/etc/hosts</code>. Con il comando: | |||
<pre> | |||
# bzr status /etc/ | |||
</pre> | |||
possiamo vedere quali file sono cambiati dall'ultimo commit: | |||
<pre> | |||
root@server1:~# bzr status /etc/ | |||
modified: | |||
hosts | |||
root@server1:~# | |||
</pre> | |||
Possiamo quindi effettuare un nuovo commit dei file che ci interessano: | |||
<pre> | |||
# etckeeper commit "Changed /etc/hosts" | |||
</pre> | |||
<pre> | |||
root@server1:~# etckeeper commit "Changed /etc/hosts" | |||
Committing to: /etc/ | |||
modified hosts | |||
Committed revision 3. | |||
root@server1:~# | |||
</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/> | |||
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/> | |||
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:Backup&restore]] |