Monitorare e backuppare i cambiamenti della configurazione: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
 
(8 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 <tt>/etc</tt>, dove risiedono tutti i file di configurazione del sistema.
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 ''etchkeeper''. Questo software e’ una collezione di script bash che consentono di tenere sotto controllo tramite un sistema di revisione distribuito la nostra directory <tt>/etc</tt>, dove sono appunto presenti i file di configurazione della maggior parte dei nostri servizi in Linux.
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 ''etchkeeper'' si appoggia, per tenere traccia dei cambiamenti, a un software di controllo versione: possiamo scegliere quello che preferiamo tra Git, Subversion, Bazaar, etc.
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 impostimo il software di controllo versione che intendiamo usare:
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 etchkeeper lanciamo il comando:
Per inizializzare etckeeper lanciamo il comando:
<pre>
<pre>
# etckeeper init
# etckeeper init
</pre>
</pre>
In caso apportassimo delle modifiche al file di configurazione <tt>/etc/etckeeper/etckeeper.conf</tt>, potremo (se lo desideriamo) reinizializzare la 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 etchkeeper.
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 <tt>/etc directory</tt>, ma se non vogliamo aspettare, possiamo lanciare il primo commit manualmente:
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"
Riga 49: Riga 49:


== Utilizzo ==
== Utilizzo ==
Per impostazione predefinita, etchkeeper effettua un commit ogni giorno.
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 <tt>/etc/hosts</tt>. Con il comando:
Supponiamo di aver modificato il file <code>/etc/hosts</code>. Con il comando:
<pre>
<pre>
# bzr status /etc/
# bzr status /etc/
Riga 83: Riga 83:
# bzr log /etc/hosts
# bzr log /etc/hosts
</pre>
</pre>
ci mostrerà tutte le versioni archiviate del file <tt>/etc/hosts</tt>:
ci mostrerà tutte le versioni archiviate del file <code>/etc/hosts</code>:
<pre>
<pre>
root@server1:~# bzr log /etc/hosts
root@server1:~# bzr log /etc/hosts
Riga 120: Riga 120:
# bzr log /etc
# bzr log /etc
</pre>
</pre>
ci mostrerà le versioni dell'intera directory <tt>/etc</tt>:
ci mostrerà le versioni dell'intera directory <code>/etc</code>:
<pre>
<pre>
root@server1:~# bzr log /etc
root@server1:~# bzr log /etc
Riga 164: Riga 164:
</pre>
</pre>
<br/>
<br/>
Per ripristinare il file <tt>/etc/hosts</tt> alla versione 3 occorrre:
Per ripristinare il file <code>/etc/hosts</code> alla versione 3 occorre:
<pre>
<pre>
# bzr revert --revision 3 /etc/hosts
# bzr revert --revision 3 /etc/hosts
</pre>
</pre>
Se vogliamo ripristinare l'intera directory/<tt>/etc</tt> alla versione 2:
Se vogliamo ripristinare l'intera directory/<code>/etc</code> alla versione 2:
<pre>
<pre>
# bzr revert --revision 2 /etc
# bzr revert --revision 2 /etc
</pre>
</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/>
<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]]

Versione attuale delle 09:39, 21 giu 2017

Debian-swirl.png Versioni Compatibili

Debian 6 "squeeze"
Debian 7 "wheezy"
Debian 8 "jessie"
Debian 9 "stretch"

Introduzione

In un server è fondamentale avere il completo controllo della directory /etc, dove risiedono tutti i file di configurazione del sistema.
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 /etc, dove sono appunto presenti i file di configurazione della maggior parte dei nostri servizi in Linux.

Installazione

L'installazione è molto semplice:

# apt-get install etckeeper bzr

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.
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:

# nano /etc/etckeeper/etckeeper.conf

e impostiamo il software di controllo versione che intendiamo usare:

# The VCS to use.
#VCS="hg"
#VCS="git"
VCS="bzr"
#VCS="darcs"

lasciando immodificate le altre linee del file.

Per inizializzare etckeeper lanciamo il comando:

# etckeeper init

In caso apportassimo delle modifiche al file di configurazione /etc/etckeeper/etckeeper.conf, potremo (se lo desideriamo) reinizializzare la configurazione:

# etckeeper uninit
# nano /etc/etckeeper/etckeeper.conf
# etckeeper init

tenendo presente che una reinizializzazione, azzera tutte le informazioni archiviate da etckeeper.

etckeeper farà il primo commit automaticamente quando verrà installato un software che modifica la directory /etc directory, ma se non vogliamo aspettare, possiamo lanciare il primo commit manualmente:

# etckeeper commit "Initial commit"

Utilizzo

Per impostazione predefinita, etckeeper effettua un commit ogni giorno.
Possiamo comunque effettuare manualmente dei commit, ad esempio dopo aver apportato delle modifiche ai file di configurazione di qualche servizio.
Supponiamo di aver modificato il file /etc/hosts. Con il comando:

# bzr status /etc/

possiamo vedere quali file sono cambiati dall'ultimo commit:

root@server1:~# bzr status /etc/
modified:
  hosts
root@server1:~#

Possiamo quindi effettuare un nuovo commit dei file che ci interessano:

# etckeeper commit "Changed /etc/hosts"
root@server1:~# etckeeper commit "Changed /etc/hosts"
Committing to: /etc/
modified hosts
Committed revision 3.
root@server1:~#

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.
Ad esempio:

# bzr log /etc/hosts

ci mostrerà tutte le versioni archiviate del file /etc/hosts:

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:~#

Il comando:

# bzr log /etc

ci mostrerà le versioni dell'intera directory /etc:

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:~#


Per ripristinare il file /etc/hosts alla versione 3 occorre:

# bzr revert --revision 3 /etc/hosts

Se vogliamo ripristinare l'intera directory//etc alla versione 2:

# bzr revert --revision 2 /etc

Monitorare i pacchetti installati

Possiamo aggiungere a etckeeper anche la lista dei pacchetti installati nel sistema, utilizzando un piccolo script:

# dpkg --get-selections > /etc/package.list
# cp /etc/apt/sources.list /etc/sources.list
# apt-key exportall > /etc/Repo.keys

Inserito in cron, questo script creerà una lista aggiornata dei pacchetti installati nel sistema, che sarà poi inserita nel controllo di versione di etckeeper.
Potremo ripristinare le modifiche con:

# 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




Guida scritta da: Ferdybassi Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized