Acciones
editfiles
Provee múltiples comandos para editar archivos:
AppendIfNoSuchLine, LocateLineMatching, RepaceWith, etc.
Ejemplo:
editfiles:
redhat::
{ /etc/sysconfig/rhn/up2date
LocateLineMatching '^forceInstall=[1-9]'
ReplaceLineWith 'forceInstall=0'
DefineClasses 'up2date_forceinstall' }
Acciones
processes
Manipula procesos. Puede enviar señales (kill, hup, etc), reiniciar, definir clases, etc.
processes:
ntp_conf_modified::
"ntpd" signal=kill restart "/etc/init.d/ntpd restart"
Acciones
tidy: Borra archivos del sistema que no son necesarios, por ejemplo archivos temporales, etc.
disable: Renombra archivos que no son necesarios, pero que no se quiere borrar necesariamente.
directories: Crea directorios
links: Crea enlaces
shellcommands: Permite ejecutar scripts
packages: Instala software empaquetado por la distribución (se puede definir el empaquetador)
Instalación (en breve)
Definir una máquina que funcionará como servidor (policyhost)
Poner todas las configuraciones en un directorio maestro
Ej. /var/lib/cfengine2/master/
Configurar el servidor en /var/lib/cfengine2/inputs/cfservd.conf
Ejecutar cfservd
Configuración del Agente
En Ubuntu: /var/lib/cfengine2/inputs
Dos etapas:
update.conf: Copia todos los demás archivos de configuración desde el servidor
Configuración muy simple y estática
cfagent.conf: Controla toda la funcionalidad del agente cfengine
Se puede separar en varios archivos, usando import
Instalación (en breve)
Crear un update.conf básico que copie las configuraciones en
/var/lib/cfengine2/inputs
Crear un cfagent.conf definiendo las políticas
Instalar cfengine en las máquinas cliente
Copiar la clave pública del cliente en el servidor
/var/lib/cfengine2/ppkeys (localhost.pub ? root-192.168.1.10.pub)
Copiar la clave pública del servidor en el cliente (o utilizar trustkey=true)
Copiar el archivo update.conf en /var/lib/cfengine2/inputs
Ejecutar cfexecd (/etc/init.d/cfexecd start)
Pruebas
Ejecutar cfservd en modo debug
cfservd -d2
Ejecutar cfagent directamente
cfagent -Kqv
Definir una clase de prueba que restrinja el dominio de acción
testhosts = ( host1 )
testhosts::
< acciones nuevas>
Más pruebas
Probar las configuraciones de servicios antes de instalarlos
Indispensable para servicios al público
(Apache, Sendmail, Bind, etc)?
Se logra haciendo las copias en dos etapas
Etapa1:
Copiar del servidor al cliente en un directorio temporal
Ejecutar un script que chequee el archivo de configuración
Etapa2:
Si la prueba es satisfactoria, copiar el archivo en el lugar definitivo
Reiniciar el servicio
Control de versiones
El directorio maestro en el servidor debería mantenerse bajo un sistema de control de versiones (ej. Subversion)
Sólo deben guardarse los cambios una vez se hayan probado
Página anterior | Volver al principio del trabajo | Página siguiente |