Configuraci�n de PICA

PICA tiene actualmente tres ficheros de configuraci�n. Su sintaxis es parecida a la de los ficheros de DNS, por ser clara y legible y resultar familiar a los administradores de sistemas. En uno especificamos algunos datos necesarios para el propio ejecutable de PICA, y en los otros dos especificamos las m�quinas y los objetos que vamos a manejar, respectivamente. Los ficheros se llaman pica.conf, hosts.conf y objects.conf. Aunque no es importante para entender el funcionamiento general de PICA, s� es importante a la hora de usarlo saber que los ficheros se leen en ese orden.

pica.conf

En este fichero se especifican las rutas de varios ejecutables que PICA necesita, algunos directorios locales importantes para el programa (d�nde van los ficheros temporales, por ejemplo) y una lista de directorios que no deben borrarse:

Ejemplo 1. Ejemplo de pica.conf

# pica.conf

defaults {
   # Directorios (locales) importantes para el ejecutable
   picaroot    = /var/lib/pica;  # Ra�z de los ficheros para PICA
   picatmp     = /var/lib/pica/tmp; # Ficheros temporales
   # Donde est�n los ficheros a distribuir
   picasrc     = /var/lib/pica/src;
   # Ficheros de inclusi�n del preprocesador
   picainclude = /var/lib/pica/include;

   # Rutas de algunos programas usados por PICA
   sshpath   = '/usr/bin/ssh -q';  # Ruta al ssh (y opciones)
   diffpath  = '/usr/bin/diff';
   tarpath   = '/bin/tar';
   rsyncpath = '/usr/bin/rsync';

   # Directorios protegidos (nunca se borrar�n ni se coger�n
   # como directorios temporales)
   protecteddirs {
      /,
      /bin,
      /usr/bin,
      /lib,
      /usr/lib
   }
}
      

hosts.conf

El fichero de descripci�n de m�quinas permite especificar los nombres de las que vamos a manejar y sus propiedades, junto con la definici�n de los posibles grupos que queramos (para facilitarnos el referirnos a �stas al llamar a PICA). Por defecto, se intentar� conectar con las m�quinas por el nombre que le demos en el fichero. Si se quiere poner un nombre �l�gico� diferente del nombre real de la m�quina, se puede usar la propiedad fqdn.

Ejemplo 2. Ejemplo de hosts.conf

# hosts.conf

# Valores por defecto
defaults {
   method      =  'tar'; # m�todo de copia (tar, rsync or ssh)

   # Variables globales
   vars {
      docdir  = '/var/www/html/sysadm';
   }
}

# Definici�n de m�quina
host mimaquina;
host miotramaquina {
   method = ssh;
   fqdn   = nombre.completo.net;
}

# Definici�n de grupo
hostgroup migrupo {
    members { mimaquina, miotramaquina }
}

hostgroup miotrogrupo {
    members { miotramaquina }
}
      

objects.conf

El fichero de objetos probablemente ser� el que modifiquemos con m�s frecuencia, y desde luego es el que tiene la sintaxis m�s completa. Al igual que en el fichero de m�quinas, especificamos la lista de objetos que podemos distribuir con sus propiedades y los grupos que queramos crear (aunque se declaran de forma diferente, ver ejemplo).

Ejemplo 3. Ejemplo de objects.conf

# objects.conf

# Inclusi�n de ficheros
#include <pifia.conf>

# Valores por defecto
defaults {
    uid = 0;
    gid = 0;
    perms = 644;
    verbatim = 0;  # Si vale 1 no se aplica el preprocesador
                   # antes de copiar
}

# Ficheros de prueba
file pica-rules {
    path = '/var/lib/pica/rules'; # Donde se instalan en la m�quina
                                  # remota
    source = 'pica-rules';	# Donde est� el "fuente" localmente

    # Variables locales para el fichero (se podr�n sustituir
    # en el fichero de distribuci�n, ver ejemplos del preprocesador
    # m�s adelante)
    vars {
       myvar         = 'foo';
       limit         = '2';
       mythirdvar    = 'enough';
    }
}

# Ficheros de autentificaci�n RSA con SSH
group sshauth {
   file auth_keys {
      source = 'SSHAuth/authorized_keys';
      path   = '/root/.ssh/authorized_keys';
      perms  = '600';
   }
   # SSH v.2
   file auth_keys2 {
      source = 'SSHAuth/authorized_keys2';
      path   = '/root/.ssh/authorized_keys2';
      perms  = '600';
   }
}