PICA: Perl Installation and Configuration Agent: Una solución inteligente para administración de sistemas | ||
---|---|---|
Prev | Next |
PICA se diseñó para resolver los siguientes problemas:
Copia de ficheros de una máquina central al resto. Los ficheros debían tener condicionales y alguna forma genérica de decidir qué iba a formar parte del contenido, dependiendo de la máquina donde fuera a instalarse y de otros parámetros no decididos de antemano por nosotros.
Ejecución remota de órdenes, tanto distribuídas con el programa como arbitrarias, instaladas en la máquina destino.
Gestión de alarmas en cada máquina. Entendemos por alarmas pequeños programas que comprueban el estado del sistema y avisan de cualquier anomalía, y que optativamente lo resuelven.
Para hacer todo esto, PICA se apoya en los siguientes conceptos:
Máquinas. Para PICA, conceptualmente las máquinas siempre son remotas, es decir, todo se copia siempre mediante órdenes ssh.
Objetos. Son los ficheros que PICA distribuye a las máquinas. Estos ficheros pueden ser ficheros normales o alarmas, que tienen un tratamiento especial en algunos casos.
Grupos. Podemos agrupar tanto las máquinas como los objetos con nombres fáciles de manejar. Además, las alarmas son grupos implícitos, que pueden contener otros objetos (ficheros normales, nunca otras alarmas). Estos objetos se tratan como dependencias, es decir, siempre que se instale esa alarma deben instalarse también las dependencias.
En general, el formato de una llamada a PICA se compone de: una operación y opciones generales, una lista de objetos sobre los que operar y una lista de máquinas sobre las que operar. La sintaxis es muy similar a la del PIKT, por aquello de no tener que aprender una nueva sintaxis, y porque nos pareció apropiada (al fin y al cabo, queríamos aprovechar todo lo posible del PIKT).
Las opciones y la operación van precedidas de un guión, al estilo de las opciones normales de UNIX. Pueden agruparse o separarse, por legibilidad.
Para especificar las listas de máquinas y objetos hay toda una sintaxis de aritmética, también tomada prestada del PIKT. Debido a esta aritmética, podemos ir sumando y restando máquinas, objetos y grupos de ambos. Para sumar o restar máquinas, precedemos la lista con +H o -H, y para sumar o restar objetos (ficheros o alarmas), +F o -F. Algunos ejemplos terminarán de aclarar el uso de la aritmética de objetos y máquinas:
Example 1. Llamada a PICA (instalación del objeto pica-rules en la máquina demiurgo)
pica -i +F pica-rules +H demiurgo
Supongamos ahora que tenemos definido un grupo de máquinas con los servidores DNS (dnsservers), pero hay una máquina que pertenece al grupo que está en pruebas o apagada y por esta vez no vamos a procesarla (w2k). En ese caso, podríamos perfectamente «restarla» del grupo con algo como:
Nótese que en este ejemplo acabamos de introducir un concepto nuevo: el de grupos implícitos. Para hacernos la vida más fácil, PICA define algunos grupos implícitamente. Tanto para máquinas como para objetos está definido el grupo all, que se refiere a todas las máquinas/objetos (depende del contexto). También vale la pena comentar aquí que los espacios de nombres de los objetos y las máquinas son completamente independientes, así que podemos tener tanto una máquina (o grupo de máquinas) como un objeto (o grupo de objetos) llamado «dns». Sin embargo, para evitar confusiones suele ser una buena costumbre no repetir nombres.
Las operaciones que PICA puede ejecutar son:
Instalación de cualquier objeto o grupo de objetos (ficheros o alarmas).
Ejecución de un objeto remotamente, como si fuera una orden del sistema (PICA busca la ruta correcta en la definición del objeto), o una orden arbitraria que esté instalada en la máquina remota (muy útil para actualizar la configuración de un servicio que se está ejecutando).
Borrado de objetos.
Cálculo de diferencias entre un objeto (diferencia entre la versión que se instalaría y la que hay realmente en la máquina).
Listado de objetos. PICA puede listar los objetos que hay instalados en una máquina determinada, para saber si están instalados y para comprobar sus permisos y propietarios.
Por otro lado, las opciones generales de PICA, aplicables a todas las operaciones, son:
-d, para activar el modo de depuración. PICA informará de todo lo que hace a medida que lo va haciendo, y deja los ficheros de configuración preprocesados en el directorio temporal. Además, no ejecuta ninguna orden, ni instala ni borra ningún fichero, sólo imprime en pantalla qué debería ejecutar en cada momento.
-n, una opción para simular pero no actuar. Puede informar de errores, e imprime las órdenes que ejecutaría en condiciones normales. Es similar a la opción -n del programa make.
-v, para imprimir en pantalla mucha más información que de costumbre. Conjugando esta opción con la anterior se puede conseguir algo parecido a -d, pero sin dejar ficheros en el directorio temporal ni cargar tanto la pantalla.