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 |