PICA: Perl Installation and Configuration Agent: Una solución inteligente para administración de sistemas | ||
---|---|---|
Anterior | Siguiente |
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.
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 } } |
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 } } |
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'; } } |