 |
» |
|
|
 |
Las herramientas Distributed Systems Administration Utilities
(DSAU) se pueden utilizar para enviar archivos y comandos a sistemas
designados del clúster o la red. Las herramientas DSAU
proporcionan: Sincronización
de la configuración (Configuration Synchronization) Registro consolidado (Consolidated
Logging) Cargabilidad de salida de
comandos (Command Fanout)
Con la sincronización de la configuración
(Configuration Synchronization), se puede confiar en que los sistemas
del clúster o la red se mantienen conforme a un estándar
que se adopte. A medida que se efectúan cambios en el maestro
de configuración, dichos cambios se propagan a todos los
sistemas cliente. Con el registro consolidado (Consolidated Logging), se puede
examinar un solo archivo de registro que contenga las entradas de
todos los sistemas de la configuración, según
el orden de las marcas de hora, para buscar fácilmente
una entrada específica. Con la cargabilidad de salida de comandos (Command Fanout),
se puede enviar el mismo comando desde un sistema designado a todos
los sistemas de la configuración definida. Esto acaba con
la visita a todos los sistemas de la configuración y con
muchas operaciones manuales. Introducción
a la sincronización de la configuración (Configuration
Synchronization) |  |
Administrar la configuración y la deriva de configuración
de un conjunto de sistemas distribuidos es un reto constante para
los administradores de sistemas. Se dispone de una variedad de herramientas
para ayudar a manejar diversos aspectos de la administración
de la configuración multisistema. Por ejemplo, para la
administración de cuentas, las soluciones estándar
abarcan el sistema NIS (Network Information System) y el protocolo
LDAP (Lightweight Directory Access Protocol - Protocolo ligero de
acceso a directorios). Para la sincronización a nivel de archivos,
se dispone de herramientas como rdist (consulte la página de manual de rdist(1))
y rsync. System Insight Manager de HP ayuda a detectar, supervisar
y administrar grupos de sistemas. Una
herramienta nueva de este kit de herramientas es Configuration Engine
(cfengine). cfengine es una popular herramienta de código abierto
para la sincronización de la configuración. Posibilita
la administración de la configuración basada en
directrices o basada en metas que permite al administrador definir
las acciones de administración que han de aplicarse a los
grupos de sistemas para que dichos sistemas alcancen un estado deseado. cfengine es una herramienta basada en cliente/servidor. Un sistema maestro
de configuración central o servidor de directrices alberga
un archivo de directrices de configuración que define las
acciones administrativas que han de efectuarse en cada cliente administrado. El maestro
de configuración también alberga los archivos
de “imagen dorada” o las copias de referencia
que deben distribuirse a los clientes. El administrador
puede utilizar cfengine para llevar a cabo tareas como, por ejemplo: Asegurarse
de que los sistemas cliente utilizan un conjunto correcto de archivos
de configuración copiando archivos o directorios de referencia. Deshabilitar archivos configurados
de forma inapropiada en el cliente. Comprobar los permisos de
acceso a los archivos y la titularidad, y realizar un seguimiento
de los cambios de la suma de comprobación. Ejecutar comandos de shell
especificados en cada cliente. Buscar procesos o procesos
de señal. Buscar montajes de sistemas
de archivos específicos.
Se
facilita un asistente de sincronización de la configuración (Configuration
Synchronization Wizard) (csync_wizard) para ayudar al administrador a configurar rápidamente cfengine a fin de administrar un conjunto de sistemas distribuidos
o de configurarlo como un servicio de alta disponibilidad en un
clúster Serviceguard. Descripción
general de cfengineEl administrador empieza por definir un sistema o clúster
Serviceguard central para que haga de servidor maestro de configuración
o de servidor de directrices. El asistente de sincronización
de la configuración (Configuration Synchronization Wizard)
(csync_wizard) es un servidor de solicitudes de cliente fácil
de utilizar con el proceso de configuración inicial. Este
sistema central albergará los archivos de directrices maestros
(por ejemplo, cfagent.conf), que definen las directrices de configuración
deseadas, y también copias de referencia o copias maestras de
archivos que deben distribuirse a los clientes administrados. Cada cliente administrado copia las copias maestras de los
archivos de directrices desde el servidor central de configuración
y evalúa su estado actual en comparación con el
estado deseado definido por el archivo de directrices. Las diferencias
existentes hacen que se ejecuten las normas de configuración
para volver a sincronizar el cliente. El administrador puede iniciar
operaciones de sincronización en los clientes administrados
de dos formas: mediante una operación de inserción
(push) o de extracción (pull). Utilizando
el comando cfrun (consulte la página de manual de cfrun(1) para
obtener más información) desde el servidor de
configuración maestro, el administrador puede insertar
cambios. cfrun lee el archivo cfrun.hosts para determinar la lista de clientes administrados.
A continuación, llama al comando cfagent en cada cliente administrado para efectuar una ejecución
de sincronización. Por tanto, las operaciones de inserción
(push) en realidad son solicitudes dirigidas a los clientes administrados
para realizar una extracción (pull) inmediata. Las operaciones de extracción
(pull) se realizan utilizando el demonio cron o el propio demonio
cfexecd parecido a cron de cfengine. Cualquiera de las dos técnicas
llama al comando cfagent a intervalos fijos para efectuar una sincronización
de la configuración iniciada por un cliente. El administrador
define qué intervalo es apropiado para cada grupo de clientes
administrados. Por ejemplo, cada cinco minutos, una vez a la hora
o una vez al día. El administrador también puede
llamar directamente a cfagent para realizar ejecuciones de sincronización
a solicitud.
Demonios
y comandos de cfenginecfengine emplea varios demonios y comandos para efectuar operaciones
de sincronización de la configuración. En la siguiente
lista, se describen los componentes de cfengine primarios. cfagent: El comando cfagent es el caballo de tiro de cfengine. Se ejecuta en cada
cliente administrado y realiza una secuencia de arranque en sí mismo
utilizando el archivo update.conf, que describe el conjunto de archivos para transferir
del servidor maestro al cliente administrado local. Los archivos
transferidos incluyen el archivo de directrices principal, cfagent.conf, y los archivos de directrices conexos. En la implementación
DSAU, cfagent.conf importa el archivo cf.main, el cual contiene ejemplos de muchas características
de cfengine. Después de transferir los archivos de configuración, cfagent evalúa las instrucciones de configuración
de dichos archivos. Si la configuración actual del sistema
cliente se desvía de la configuración deseada, cfagent ejecuta las acciones definidas para devolver el cliente
al estado correcto. cfservd: El demonio cfservd tiene dos funciones: cfservd se ejecuta en el servidor de configuración maestro
y es la cámara de compensación para las solicitudes
de transferencia de archivos procedentes de los clientes administrados. cfagent se pone en contacto en los clientes administrados con
el demonio cfservd del servidor maestro y solicita copias de los archivos
de directrices maestros, y copias de todo archivo de referencia
que sea necesario, formando parte de las operaciones de sincronización
de configuración definidas. El demonio cfservd maestro es responsable de autenticar los clientes remotos utilizando
un mecanismo de intercambio de claves pública/privada y
de cifrar opcionalmente los archivos que se transfieran a los clientes
administrados. cfservd se puede ejecutar opcionalmente en cada cliente administrado
para procesar las solicitudes de cfrun. cfrun permite al administrador
insertar cambios en los clientes administrados en lugar de esperar
a que los clientes sincronicen mediante algún intervalo
de tiempo definido por el cliente. El comando cfrun debe iniciarse desde el servidor de configuración
maestro. Se pone en contacto con cada cliente administrado enumerado
en los archivos cfrun.hosts y conecta con el demonio cfservd del cliente administrado
pidiéndole que llame a cfagent para llevar a cabo el trabajo de sincronización. cfservd se configura utilizando cfservd.conf y se inicia utilizando /sbin/init.d/cfservd.
cfexecd: cfexecd es una herramienta de programación y generación de
informes. Si el administrador utiliza el demonio cron para realizar ejecuciones
de sincronización a intervalos fijos, cfexecd es el comando que
se ubica en el archivo crontab para empaquetar la llamada de cfagent. cfexecd almacena la salida de la ejecución
de cfagent en el directorio de salidas (consulte el archivo cfagent.conf para obtener detalles) y, opcionalmente, envía
un correo electrónico. cfexecd tiene sus propias características parecidas
al demonio cron que se basan en las clases de tiempo de cfengine. El administrador puede optar por ejecutar cfexecd en modo demonio y utilizarlo para llamar al comando cfagent
a intervalos definidos en lugar de cron. El valor por defecto es
llamar a cfagent cada hora. Al empezar a utilizar cfengine, lo más sencillo es comenzar por usar cron. cfrun: El comando cfrun se pone en contacto con los clientes administrados pidiéndole
a cada uno de ellos que realice una ejecución de sincronización
inmediata. Específicamente, conecta con el demonio cfservd opcional en cada cliente administrado que, a su vez,
inicia cfagent.
La Figura 3-1, «Descripción general de cfengine»,
ilustra la relación de los comandos y demonios de cfengine, y muestra un ejemplo del administrador utilizando cfrun. Las líneas punteadas del diagrama indican las
secuencias de llamada (por ejemplo, A llama a B). Las líneas continuas
indican que los datos se están leyendo desde los archivos
de configuración. El administrador inicia una sesión en el
servidor maestro de sincronización de la configuración
y efectúa un cambio para que se difunda a los clientes
administrados, utilizando el comando cfrun. cfrun comprueba el archivo cfrun.hosts para ver la lista de clientes administrados. Tenga en
cuenta que el servidor maestro puede ser un cliente de sí mismo.
En este diagrama, hay dos clientes, el servidor maestro y un cliente
remoto. cfrun se pone en contacto con cfservd en cada cliente administrado, que a su vez llama a cfagent. cfagent comprueba primero el servidor maestro para obtener una copia
actualizada del archivo update.conf y la transfiere al cliente, si es necesario. Si el servidor maestro es un sistema autónomo, la
copia maestra de update.conf se ubica por defecto en /var/opt/dsau/cfengine_master/inputs/. Las copias maestras de otros archivos de configuración,
por ejemplo, cfagent.conf, cfservd.conf y cfrun.hosts, también se ubican allí. Si el servidor maestro
es un clúster Serviceguard, los archivos de configuración maestros
se ubican en el punto de montaje asociado al paquete. Por ejemplo,
si dicho punto de montaje se llamara csync,
la ruta sería /csync/dsau/cfengine_master/inputs. Al copiar los archivos de configuración
en el sistema local, cfagent los coloca en /var/opt/dsau/cfengine/inputs tanto para sistemas autónomos como para clústeres. cfagent evalúa primero el contenido de update.conf para actualizar los archivos binarios de cfengine modificados (si los hubiere) y obtiene la versión
más reciente de los archivos de directrices (cfagent.conf) y los archivos conexos. cfagent evalúa, a continuación, cfagent.conf para determinar que el cliente está en el estado
deseado. Si hay deltas, cfagent lleva a cabo las acciones definidas para corregir la
configuración de los clientes.
Modelos
de distribución del servidor maestro de cfengineEl servidor maestro de cfengine puede ser un sistema HP-UX autónomo que preste
servicio a grupos de clientes distribuidos. Los propios clientes pueden
ser sistemas autónomos o miembros de un clúster
Serviceguard. Si ya utiliza un servidor de administración
central Systems Insight Manager, éste puede ser un sistema
ideal para utilizar como un servidor maestro de cfengine. Los servidores maestros también pueden hacer
de clientes y las tareas de sincronización de la configuración
se pueden llevar a cabo en dichos sistemas, así como en
los clientes remotos. Si administra clústeres Serviceguard, cfengine se
puede distribuir única y exclusivamente para uso intraclúster
a fin de sincronizar los miembros de un solo clúster. En
esta configuración, cfservd se configura como un paquete para alta disponibilidad,
pero los únicos clientes de cfengine son los propios miembros
del clúster. El nombre DNS/dirección IP del paquete es
el nombre para el servidor maestro de cfengine. Además de ofrecer sincronización de la configuración
como un servicio intraclúster, otra configuración
Serviceguard tiene el clúster que ofrece el servicio de
sincronización de la configuración de alta disponibilidad
a los grupos de los sistemas cliente remotos. Dichos clientes pueden
ser sistemas autónomos o clústeres Serviceguard.
El clúster que ofrece el servicio de cfengine puede ser
un cliente de sí mismo y, además, puede sacar
partido de las características de sincronización
de la configuración de cfengine. Una configuración
posible, aunque algo desacostumbrada, consiste en hacer que un miembro
fijo del clúster Serviceguard haga de servidor maestro
y en que no se configure ningún paquete, de modo que cfservd
no presente alta disponibilidad. Esta configuración es
válida, pero no es recomendable. Configuración
de cfengine |  |
En las siguientes secciones
se facilitan instrucciones detalladas para configurar un servidor
maestro de sincronización de la configuración
y los clientes del mismo. La forma más rápida
de empezar consiste en utilizar el asistente de sincronización
de la configuración (Configuration Synchronization Wizard)
(csync_wizard), que se describe más adelante. También
se describen configuraciones completamente manuales. Utilización
del asistente de sincronización de la configuración (Configuration
Synchronization Wizard)El asistente csync_wizard (consulte csync_wizard(1)) automatiza la tarea de
definir un servidor maestro de sincronización de la configuración y
sus clientes administrados. Permite configurar como el servidor
maestro un sistema autónomo o un clúster Serviceguard.
El asistente configura todos los clientes administrados para ejecutar
un demonio cfservd de forma que cfrun (consulte cfrun(8)) se pueda utilizar en el
servidor maestro. Para obtener detalles, consulte las secciones apropiadas que
se presentan más adelante. Utilización
del asistente para configurar un servidor de sincronización
autónomoPara configurar un servidor de sincronización para
un sistema autónomo, ejecute el asistente csync_wizard(1)
en el sistema autónomo que desee configurar como el servidor
de sincronización maestro: # /opt/dsau/sbin/csync_wizard El asistente presenta la siguiente pantalla preliminar: Querying the system <nombre de host local> for current status, one moment...This Configuration Synchronization Wizard helps you set up the Configuration Engine (cfengine) environment. Cfengine is a powerful tool for performing policy-based management for groups of systems and cluster environments.It is a client/server based utility. A standalone system or Serviceguard cluster can be configured as the cfengine ‘master’. The master contains the configuration description and configuration files that will be used by all the clients. Clients copy the configuration description from the master and apply it to themselves. The configuration description supports a rich set of management actions such as copying configuration files from the master to the client, performing edits to files, checking file ownerships, permissions, and checksums, executing shell commands, checking for processes, etc. For a detailed description of the cfengine management actions, please refer to cfengine man page. This wizard will help you set up this system as a cfengine master or to add or remove a cfengine client, and to perform the required security setup. Press ‘Return’ to continue... Presione la tecla de retorno para continuar y elija el elemento
1 en el siguiente menú para configurar un servidor maestro: Configuration Synchronization Wizard Menu ========================================= (1) Set up a cfengine master server (2) Add a client (3) Remove a client (4) Key management for cfengine users (9) Exit Enter choice: 1 The cfengine master server is being configured on: <nombre de host local> A continuación, el asistente le pregunta si también
desea configurar los clientes administrados inmediatamente después
de configurar el servidor. En este ejemplo, la respuesta es negativa.
Los clientes administrados se agregarán posteriormente. You can optionally specify additional remote clients to manage at this time. If you are running in an HA environment, you do not need to specify the cluster members. Would you like to manage clients? [N]: n El asistente pasa a configurar el sistema como un servidor
maestro: ******* WARNING!!!! ******** To protect against possible corruption of sensitive configuration files, control-c has been disabled for the remainder of this configuration. Configuration of the cfengine master server is starting. Verifying the master has an entry in the /etc/hosts file on each client... Keys are being created... Keys have been created, now distributing.... Starting cfengine on the master and any pertinent client machines. This may take a few minutes.... Cuando se completa la configuración, el asistente
muestra las siguientes pantallas de resumen que remiten al administrador
al archivo de directrices principal, /var/opt/dsau/cfengine_master/inputs/cf.main, y al archivo de respuestas grabadas para esta ejecución
del asistente. The Configuration Synchronization Wizard has completed the configuration of cfengine: - The master configuration description template is here: </var/opt/dsau/cfengine_master/inputs/cf.main> This default template has examples of typical configuration synchronization actions performed in cfengine. For example, synchronizing critical files such as /etc/hosts, package scripts, etc. All the actions in the template are disabled by default (commented out). Uncomment the lines corresponding to the desired synchronization actions for this configuration. See the cfengine reference documentation for a description of additional cfengine features: /opt/dsau/doc/cfengine/ Press ‘Return’ to continue... The cfengine environment has been created with Master Host: <nombre de host local> and members: Tenga en cuenta que al configurar un servidor maestro sin
agregar ningún cliente administrado durante la configuración
del servidor, los miembros (la lista de clientes administrados)
estarán vacíos tal como se muestra en el ejemplo
anterior. A file recording the answers for this run of the Configuration Synchronization Wizard is stored here... /var/opt/dsau/cfengine/tmpdir/csync_wizard_input.txt This configuration can be reestablished by issuing the command: /opt/dsau/sbin/csync_wizard \ -f /var/opt/dsau/cfengine/tmpdir/csync_wizard_input.txt Utilización
del asistente para configurar un servidor de sincronización
de un clúster ServiceguardPara configurar un servidor de sincronización para
un clúster Serviceguard, existen dos opciones de configuración: Crear un paquete
Serviceguard para que el servicio de configuración asegure
la alta disponibilidad. Configurar un solo miembro
del clúster como si fuera un sistema autónomo.
El servicio de sincronización de la configuración
no tendrá alta disponibilidad y esta configuración
tampoco funcionará correctamente con las características
de automatización Serviceguard analizadas en la sección “Características
de automatización Serviceguard” y no se recomienda.
Esta sección se centra en el uso del asistente para
configurar un servicio de sincronización de la configuración
de alta disponibilidad.  |  |  |  |  | NOTA: Asegúrese de que el valor MAX_CONFIGURED_PACKAGES
de este clúster puede albergar el paquete adicional. Para
obtener más información sobre este valor, consulte
el manual Managing Serviceguard, que forma
parte del juego de documentación de Serviceguard. Asimismo, antes
de iniciar el asistente, todos los miembros actuales del clúster
deben estar instalados y en funcionamiento en el clúster. |  |  |  |  |
Empiece por ejecutar el asistente de sincronización
de la configuración (Configuration Synchronization Wizard),
csync_wizard(1): # /opt/dsau/sbin/csync_wizard Querying the system <nombre de host local> for current status, one moment... This Configuration Synchronization Wizard helps you set up the Configuration Engine (cfengine) environment. Cfengine is a powerful tool for performing policy-based management for groups of systems and cluster environments. It is a client/server based utility. A standalone system or Serviceguard cluster can be configured as the cfengine ‘master’. The master contains the configuration description and configuration files that will be used by all the clients. Clients copy the configuration description from the master and apply it to themselves. The configuration description supports a rich set of management actions such as copying configuration files from the master to the client, performing edits to files, checking file ownerships, permissions, and checksums, executing shell commands, checking for processes, etc. For a detailed description of the cfengine management actions, please refer to cfengine man page. This wizard will help you set up this system as a cfengine master or to add or remove a cfengine client, and to perform the required security setup. Press ‘Return’ to continue... Presione la tecla de retorno para continuar y elija el elemento
1 en el siguiente menú para configurar un servidor maestro: Configuration Synchronization Wizard Menu ========================================= (1) Set up a cfengine master server (2) Add a client (3) Remove a client (4) Key management for cfengine users (9) Exit Enter choice: 1 Después de elegir 1 y de presionar la tecla de retorno,
el asistente muestra el siguiente texto: This system is a member of a Serviceguard cluster. The cfengine configuration will be defined as a package for high availability unless you answer no to the below question. If you answer no, for the purposes of cfengine control, this machine will be treated as a single machine without failover capability for cfengine. If you accept the default answer of ‘HA’ to the below question, cfengine will be configured as a highly available Serviceguard package. This will ensure that your cfengine master server is available as long as one of the cluster members that can run the package is also available. You will need a free IP address for this package and you need to configure storage for the package before proceeding. For details on creating highly available file systems, please refer to ‘Creating a Storage Infrastructure’ chapters of the Managing Serviceguard documentation. Will this master server be Highly Available (HA) [Y]: El asistente nombra el nombre de paquete “csync” para
la sincronización de configuración. Se necesita
el nombre de este paquete específico. La configuración
del almacenamiento LVM y la configuración de red para el paquete
deben prepararse antes de continuar o antes de ejecutar el asistente.
Todos los miembros del clúster también deben estar
instalados y disponibles. Para obtener detalles, consulte el manual Managing Serviceguard (capítulo “Building
an HA Cluster Configuration”, sección “Creating
a Storage Infrastructure with LVM”).  |  |  |  |  | NOTA: El asistente sólo permite crear paquetes en
función de los grupos de volúmenes LVM. Cuando
se utiliza el sistema de archivos CFS o VxVM, es necesaria la configuración
manual. Consulte la sección sobre la configuración
manual de un clúster Serviceguard para obtener detalles sobre
cómo configurar manualmente el paquete csync. |  |  |  |  |
El asistente pide lo siguiente, todo lo cual ya debe estar
configurado: El nombre del
grupo de volúmenes LVM (por ejemplo, vgcsync) El volumen lógico
del grupo de volúmenes (por ejemplo, /dev/vgcsync/lvol1) El punto de montaje del sistema
de archivos (por ejemplo, /csync) Las opciones de montaje del
sistema de archivos (por ejemplo, -o rw,largefiles).
Las opciones de montaje se utilizan al pie de la letra en el campo
FS_MOUNT_OPT[0] de la secuencia de comandos de control del paquete
Service. Tenga en cuenta que las opciones de montaje deben coincidir
con el sistema de archivos creado en el volumen lógico.
Por ejemplo, si el sistema de archivos se creó con soporte
para archivos grandes, la opción de montaje “
largefiles” debe especificarse. El tipo de sistema de archivos
(por ejemplo, VxFS) La dirección IP
del paquete. Esta dirección también debe ser un nombre
DNS registrado para que la sincronización de la configuración sea
fácil de configurar en los sistemas cliente. La subred del paquete. Utilice
netstat -i para determinar la subred correcta.
Después de configurar la infraestructura de almacenamiento
y de obtener la dirección IP, presione la tecla Retorno
para obtener acceso a la respuesta por defecto de “yes” y
continúe con la creación del paquete. El asistente
pide a continuación la información sobre el paquete: Configuring the csync Serviceguard package for a highly available cfengine master. The cfengine master server is being configured as a HA Serviceguard Package on this cluster. Please provide the following information for the package: Enter the Volume group? []: vgcsync You need to enter a fully qualified Logical Volume, for example: /dev/vgname/lvol1 Enter the fully qualified Logical Volume? []: /dev/vgcsync/lvol1 Enter the Filesystem (Mount Point)? []: /csync Enter the Mount Options? [-o rw,largefiles]:<return> Enter the Filesystem Type? [vxfs]: <return> Enter the IP address? []: 12.345.6.78 Enter the Subnet? []: 12.345.7.8 El asistente le pregunta, a continuación, si desea
administrar clientes remotos adicionales, es decir, sistemas ubicados
fuera del clúster. El asistente configura automáticamente
los miembros actuales del clúster. Éste es el
motivo por el que todos los miembros deben estar activos y accesibles
cuando se ejecuta el asistente. En el ejemplo mostrado a continuación,
el administrador elige “no” para que, en un principio,
sólo se configuren como clientes miembros del clúster. Tenga en cuenta que se pueden agregar fácilmente
clientes remotos adicionales con posterioridad utilizando el asistente.
No es necesario utilizar el asistente para agregar clientes nuevos
cuando se agregan miembros adicionales al clúster. Para
obtener detalles, consulte la sección sobre las características
de automatización Serviceguard. You can optionally specify additional remote clients to manage at this time. If you are running in an HA environment, you do not need to specify the cluster members. Would you like to manage clients? [N]: <return> El asistente ya tiene todos los datos que necesita para configurar
el clúster y así pasa a hacerlo: ******* WARNING!!!! ******** To protect against possible corruption of sensitive configuration files, control-c has been disabled for the remainder of this configuration. Configuring the ‘csync’ Serviceguard package. Applying the ‘csync’ Serviceguard package configuration file, this will take a moment. Starting the ‘csync’ Serviceguard package, this will take a few moments... The ‘csync’ Serviceguard package has been started on <nombre de host local>. Configuration of the cfengine master server is starting. Verifying the master has an entry in the /etc/hosts file on each client... Keys are being created... Keys have been created, now distributing.... Starting cfengine on the master and any pertinent client machines. This may take a few minutes.... Cuando se completa la configuración, el asistente
muestra las siguientes pantallas de resumen que remiten al administrador
al archivo de directrices principal, punto_montaje/cfengine_master/inputs/cf.main, y al archivo de respuestas grabadas para esta ejecución
del asistente. Tenga en cuenta que el archivo de directrices se
ubica en el sistema de archivos recién configurado que
está asociado al paquete. En nuestro ejemplo, el administrador
opta por montar el sistema de archivos para el paquete como /csync.Si
el administrador hubiera configurado previamente cfengine, antes de sobrescribir ningún archivo de configuración
existente, el asistente habría creado copias de seguridad
en el directorio: /var/opt/dsau/cfengine/backups Los archivos de nivel superior de este directorio son los
archivos de copia de seguridad más recientes. Las configuraciones
anteriores se guardan en los subdirectorios con marca de hora denominados v_marcadehora. The Configuration Synchronization Wizard has completed the configuration of cfengine: - The master configuration description template is here: </csync/dsau/cfengine_master/inputs/cf.main> This default template has examples of typical configuration synchronization actions performed in a cluster. For example, synchronizing critical files such as /etc/hosts, package scripts, etc. All the actions in the template are disabled by default (commented out). Uncomment the lines corresponding to the desired synchronization actions for this cluster. See the cfengine reference documentation for a description of additional cfengine features: /opt/dsau/doc/cfengine/ Press ‘Return’ to continue... The cfengine environment has been created with Master Host: <nombre de host de paquete> and members: <miembro1 del clúster>, <miembro2 del clúster>, ... A file recording the answers for this run of the Configuration Synchronization Wizard is stored here... /var/opt/dsau/cfengine/tmpdir/csync_wizard_input.txt This configuration can be reestablished by issuing the command: /opt/dsau/sbin/csync_wizard \ -f /var/opt/dsau/cfengine/tmpdir/csync_wizard_input.txt Notas sobre
la configuración del clústerEn esta sección, se describen los detalles de una
configuración de alta disponibilidad de cfengine en un clúster Serviceguard. Para obtener más
información sobre la función de los diversos demonios
y comandos de cfengine, consulte la sección «Demonios
y comandos de cfengine». El paquete Serviceguard asegura que el
demonio cfservd de cfengine sigue presentando alta disponibilidad. Los archivos de
configuración update.conf y cfagent.conf de cfengine definen el servidor maestro de sincronización
de la configuración para que sea el nombre DNS registrado
para la dirección IP reubicable del paquete. Cuando los
clientes administrados ejecutan cfagent (consulte cfagent(8)), cfagent se conecta al demonio cfservd en el nodo adoptivo del paquete. Por tanto, los propios
miembros del clúster son todos clientes administrados.
El miembro que alberga el paquete hace, además, de servidor
maestro para los archivos de directrices. Cuando se inicia el clúster, cada miembro inicia
un demonio cfservd cliente. Éste es el demonio cfservd que contesta a las peticiones de cfrun. Cuando el paquete se inicia en un miembro, ese demonio cfservd tiene acceso al sistema de archivos del paquete y se
convierte en el demonio cfservd maestro que entrega los archivos de directrices a todos los
clientes administrados. El paquete supervisa dicho demonio cfservd. Si cfservd da error, el paquete tratará de reiniciarse
en otro miembro. El demonio cfservd de dicho miembro se convertirá, a continuación,
en el cfservd maestro. Tenga en cuenta que detener el paquete no implica detener
el demonio cfservd en el miembro adoptivo, puesto que la expectativa es
que el demonio esté presente para contestar a futuras peticiones
de cfrun. Asimismo, a diferencia de otros servicios de alta disponibilidad
(HA - High Availability), si el paquete csync no está activo o no está disponible,
no hay ningún impacto negativo en los clientes remotos.
Los clientes siguen ejecutando las configuraciones que tengan definidas
actualmente. El administrador tendría que asegurarse
de que el paquete está instalado y en funcionamiento para
distribuir cualquier instrucción de configuración
nueva a los clientes administrados. El asistente automatiza la distribución de claves
de cfengine entre todos los miembros del clúster. Para obtener
una descripción detallada de los pasos dados en relación
con la distribución de claves, consulte la sección «Notas
sobre la seguridad». Características
de automatización ServiceguardLas herramientas Distributed Systems Administration Utilities
necesitan Serviceguard 11.17 o posterior. Con Serviceguard 11.17
o posterior, cuando se agregan o eliminan miembros en el clúster,
las herramientas de sincronización de la configuración
adoptan automáticamente las acciones de configuración
apropiadas. De forma específica: Al agregar
un miembro al clúster, el miembro nuevo se configura automáticamente
para participar en la sincronización de la configuración.
Las siguientes acciones de configuración se producen automáticamente
en el miembro agregado: etc/rc.config.d/cfservd se cambia para definir CSYNC_CONFIGURED en 1 Las claves pública/privada
apropiadas de cfengine se crean para el miembro nuevo y se ubican en el directorio
/var/opt/dsau/cfengine/ppkeys del miembro. Las claves nuevas para este miembro también
se distribuyen entre los directorios /var/opt/dsau/cfengine/ppkeys de los demás miembros del clúster. El directorio /var/opt/dsau/cfengine/inputs del miembro nuevo se ocupa. cfservd se inicia en el miembro nuevo. Los archivos del paquete
se copian en /etc/cmcluster/csync/, en el
miembro nuevo. Se efectúa una ejecución
de sincronización cfagent en el maestro para ocupar el directorio /var/opt/dsau/cfengine/inputs del maestro. Se efectúa una ejecución
de sincronización cfagent en el cliente remoto.
Al eliminar un miembro en un clúster, la
clave pública del miembro eliminado se elimina del directorio /var/opt/dsau/cfengine/ppkeys de todo el clúster.
Tenga en cuenta que el administrador puede definir grupos
o clases de cfengine que enumeren todos los miembros de un clúster
Serviceguard concreto. Estas definiciones de clase no se actualizarán
automáticamente y el administrador deberá actualizar
manualmente el archivo cfagent.conf y los archivos conexos en relación con los
cambios de pertenencia al clúster. Configuración
de un cliente de sincronizaciónEl asistente de sincronización
de la configuración (Configuration Synchronization Wizard)
se puede utilizar para agregar clientes administrados a una configuración
de cfengine existente. Ejecute el asistente en el servidor maestro, no en
el sistema cliente. Cuando un clúster Serviceguard sea
el servidor maestro, ejecute el asistente en el nodo adoptivo para
el paquete csync. Tenga en cuenta que la
adición en forma de cliente de un miembro nuevo del clúster
en una configuración de alta disponibilidad se hace automáticamente.
Para obtener más información, consulte la sección «Características
de automatización Serviceguard». Asimismo, para distribuir sin riesgos las claves de cfengine,
el cliente debe configurarse para el acceso ssh no
interactivo por parte de la cuenta de usuario root del servidor
maestro. La herramienta csshsetup (consulte csshsetup(1)) simplifica la configuración
del acceso ssh a un sistema remoto. Esta
herramienta se utiliza en los siguientes ejemplos. Actualmente, el asistente sólo puede administrar
clientes cuando éstos se hallan en el mismo dominio DNS
que el servidor maestro. Para las configuraciones multidominio,
consulte la sección «Configuración
manual » a fin de obtener instrucciones sobre la adición manual
de clientes. Observe que si se agrega un clúster Serviceguard
como un cliente administrado, cada miembro del clúster
deberá agregarse individualmente. Empiece por iniciar una sesión como usuario root
en el servidor maestro y configurar el acceso ssh al
sistema remoto: # csshsetup <nombre de host del cliente administrado> csshsetup prueba en primer lugar el acceso ssh al
sistema remoto. Si no está configurada, ssh pide
la contraseña del cliente administrado. Ejecute el asistente de sincronización de la configuración
(Configuration Synchronization Wizard) y elija la opción
2 para agregar un cliente nuevo: Configuration Synchronization Wizard Menu ========================================= (1) Set up a cfengine master server (2) Add a client (3) Remove a client (4) Key management for cfengine users (9) Exit Enter choice: 2 Cuando se lo pida el sistema, escriba el nombre del cliente
para agregar: This option will configure additional clients to the cfengine domain. Enter the name of the client to add: <cliente nuevo> El asistente pasa, a continuación, a configurar el
cliente y a informar del avance: Verifying the master has an entry in the /etc/hosts file on each client... Keys are being created... Keys have been created, now distributing.... The client <cliente nuevo> has been added to the cfengine domain El asistente configura cada cliente nuevo para ejecutar cfservd
de forma que pueda contestar a las peticiones de cfrun y agrega el cliente en el archivo cfrun.hosts del maestro. En las siguientes secciones se describen los pasos necesarios
para configurar manualmente los servidores maestros de sincronización
de la configuración o los clientes administrados de cfengine. Tenga en cuenta que, en general, es más fácil
empezar por utilizar el asistente csync_wizard (consulte csync_wizard(1m)) y, luego, modificar la configuración
resultante que empezar desde cero. Esto es particularmente cierto
en un clúster Serviceguard, en cuyo caso el asistente ayuda
a configurar el paquete y se ocupa de difundir los archivos de configuración correctos
a todos los miembros del clúster. Cuando se efectúan configuraciones manuales, es posible
crear configuraciones que posteriormente el asistente csync_wizard no pueda administrar. Por ejemplo, el asistente admite
sólo configuraciones de un solo dominio DNS. Al configurar
manualmente configuraciones multidominio, no se puede utilizar el
asistente para agregar y eliminar clientes.  |  |  |  |  | NOTA: Puede utilizar csshsetup para configurar una relación de confianza entre el
servidor maestro y los clientes administrados. Esto le permitirá utilizar los
comandos de cargabilidad de salida de comandos (command fanout), por
ejemplo, cexec y ccp (consulte cexec(1) y ccp(1)). El uso de dichos comandos
puede simplificar los pasos de configuración descritos
más adelante cuando hay que distribuir archivos entre los
clientes administrados. |  |  |  |  |
Configuración
manual de un servidor de sincronización autónomoDé los siguientes pasos puntuales para configurar
un sistema autónomo como un servidor maestro de cfengine: Empiece por crear las copias maestras
de los archivos de configuración de cfengine. Estos archivos se ubican en un directorio conocido y
se distribuyen a cada cliente administrado. El directorio por defecto
es /var/opt/dsau/cfengine_master/inputs, al que se alude en las plantillas por defecto. Empiece
por crear el directorio: # mkdir -p /var/opt/dsau/cfengine_master/inputs Copie los archivos de las plantillas por defecto
en los siguientes directorios: # cd /var/opt/dsau/cfengine_master/inputs # cp /opt/dsau/share/cfengine/templates/cf.main.template cf.main # cp /opt/dsau/share/cfengine/templates/update.conf.template update.conf # cp /opt/dsau/share/cfengine/templates/cfagent.conf.template cfagent.conf # cp /opt/dsau/share/cfengine/templates/cfrun.hosts.template cfrun.hosts # cp /opt/dsau/share/cfengine/templates/cfservd.conf.template cfservd.conf |
A continuación, modifique update.conf. Este archivo presenta un formato parecido al archivo
de configuración principal de cfengine: cfagent.conf. Se utiliza para transferir y actualizar los archivos binarios
y los archivos de definiciones de configuración actualizados (por
ejemplo, cfagent.conf) de cfengine para los clientes administrados. Reviste importancia
crítica hacer que este archivo se mantenga muy sencillo
y evitar cometer errores. Los errores de este archivo requerirán
que se copie manualmente una versión nueva en cada cliente
administrado. El archivo contiene signos con la forma de <%nombre del signo%> que el asistente csync_wizard sustituye por las respuestas del administrador a las
preguntas. Sustituya los signos como sigue: Sustituya
<%HOST_NAMER%> por el nombre de host incompleto del servidor
maestro. Sustituya <%DOMAIN_NAMER%> por el nombre de dominio del servidor maestro.
Por ejemplo: host_name = ( «master-server-name» ) domain_name = ( «abc.xyz.com» ) |
Tenga en cuenta que esta plantilla update.conf da por sentado que el servidor maestro y sus clientes
están todos en un solo dominio DNS. Si el servidor maestro
va a tener clientes administrados en varios dominios DNS, cambie update.conf como sigue: Sustituya <%HOST_NAMER%> por el nombre de host completo del servidor maestro. Elimine la variable
<domain_name>. Sustituya la línea «domain = ( “${domain_name}” )» por lo siguiente: domain = ( ExecResult(/sbin/awk ‘/domain/ {print $2}’ /etc/resolv.conf) ) |
Esto define apropiadamente la variable de dominio en el cliente. Tenga
en cuenta que esta técnica da por sentado que /etc/resolv.conf está correctamente configurado en cada cliente
administrado. Estas mismas modificaciones del dominio también deben realizarse
en cf.main y cfservd.conf. Consulte los pasos siguientes. Utilice el indicador cfagent -p (o --parse-only) para comprobar la sintaxis de update.conf.
Distribuya el archivo update.conf maestro a cada cliente administrado. Este paso se describe
en la sección «Configuración
de un cliente administrado de sincronización». Cree las claves de seguridad del servidor maestro. cfengine utiliza un intercambio de claves pública/privada
para autenticar los clientes remotos. Se genera un par de claves
pública/privada en el servidor maestro y en todos los clientes
administrados. La clave pública de cada cliente administrado
se copia en el servidor maestro y desde éste en los clientes
administrados. Es importante intercambiar las claves de forma segura
por medio de una herramienta como “secure copy” (copia
segura) (consulte scp(1)) o por medio de una cinta
o un CD-ROM. Empiece por generar las claves del servidor maestro: # /opt/dsau/sbin/cfkey # cd /var/opt/cfengine/ppkeys Esto crea los archivos localhost.pub y localhost.priv. Copie la clave pública en root-dirección IP del servidor maestro.pub. Por ejemplo, en el supuesto de que la dirección
IP de este sistema sea 10.0.0.5, utilice este
comando: # cp localhost.pub root-10.0.0.5.pub Para obtener detalles sobre cómo copiar las claves
de cliente en este servidor maestro, consulte la sección «Configuración
de un cliente administrado de sincronización». En el servidor maestro, configure
el demonio cfservd para que se inicie al arrancar el sistema. Modifique
/etc/rc.config.d/cfservd y cambie la línea CSYNC_CONFIGURED=0 por CSYNC_CONFIGURED=1. También, si desea tener capacidad para
extender los cambios a los clientes administrados utilizando cfrun, reproduzca este cambio en todos los clientes administrados. cfrun necesita que los clientes administrados se enumeren en
el archivo cfrun.hosts. En la configuración por defecto, este archivo
se ubica en /var/opt/dsau/cfengine_master/inputs. Modifíquelo y agregue los nombres de host
de cada cliente administrado, uno por cada línea. Es lo
más sencillo para asegurarse de que todos los nombres de
host están completos. Cuando se utilizan nombres de host completos,
la línea «domain =» no es necesaria y se puede eliminar. Si se
utilizan nombres de host incompletos, busque la línea “
domain = <%DOMAIN_NAMER%>” y sustituya el signo por el dominio
DNS de los sistemas cliente. Esto limita a todos los clientes a
ser miembros de ese único dominio. El archivo /var/opt/dsau/cfengine_master/inputs/cfagent.conf es el archivo de directrices maestro. El archivo cfagent.conf por defecto incluye la plantilla por defecto cf.main,
que es un archivo de plantilla comentado con ejemplos de acciones
de sincronización comunes tanto para sistemas autónomos
como para clústeres Serviceguard. cf.main contiene los mismos signos <%HOST_NAMER%> y <%DOMAIN_NAMER%> que los de update.conf. Efectúe las mismas modificaciones descritas
en el paso 3 anterior. Tenga en cuenta que este archivo cf.main por defecto no realiza ninguna acción de administración.
Todas las líneas de acción están marcadas
como comentario. Éste es un punto de partida para crear
un conjunto personalizado de directrices y acciones de cfengine para los clientes administrados. El manual de referencia
de cfengine que documenta la sintaxis y todas las acciones de administración definidas
en este archivo se ubica en /opt/dsau/doc/cfengine. Otros archivos de configuración de cfengine de ejemplo que se incluyen en la distribución
de cfengine de código abierto se ubican en /opt/dsau/share/cfengine/examples. El archivo /var/opt/dsau/cfengine_master/inputs/cfservd.conf controla qué clientes administrados tienen
acceso a los archivos atendidos por el demonio cfservd en el maestro. Realice las siguientes modificaciones
en cfservd.conf. Elimine por completo la siguiente
línea: domain_name = ( “<%DOMAIN_NAMER%>” ) Cambie la línea que reza domain = ( “${domain_name}” ) por lo siguiente: domain = ( ExecResult(/sbin/awk ‘/domain/ {print $2}’ /etc/resolv.conf) ) La estrofa “admit:” controla qué clientes remotos
tienen acceso a los archivos en el servidor. Cambie cada “*.${domain_name}” por una lista separada por espacios
de dominios DNS de clientes administrados. Por ejemplo: /var/opt/dsau/cfengine_master/master_files *.abc.xyz.com *.cde.xyz.com Este ejemplo permite a todos los hosts de los dominios enumerados
obtener acceso a los archivos del servidor maestro. También
se pueden especificar listas de hosts, intervalos de direcciones
IP, etcétera, específicos. Para obtener información adicional,
consulte el manual de referencia de cfengine.
En el servidor maestro, inicie el demonio cfservd: # /sbin/init.d/cfservd start Esto se repite para cada cliente administrado. Pruebe la configuración dando los siguientes
pasos: En un cliente administrado, utilice
el comando: # cfagent --no-lock --verbose --no-splay La salida detallada mostrará al cliente buscando
copias actualizadas de los archivos de directrices maestros, copiándolas en /var/opt/cfengine/inputs, si procede, y ejecutando, a continuación,
el contenido de cfagent.conf/cf.main. En el servidor maestro, pruebe el comando cfrun: # cfrun -- --inform La sintaxis --inform da instrucciones al cfagent remoto para que utilice el indicador --inform,
el cual generará mensajes para todos los cambios que cfengine realice en el sistema. Para obtener información
adicional, el comando --verbose también puede
ser útil: # cfrun -v -- --verbose La opción -v le indica al propio cfrun que sea más detallado y la opción --verbose se
transmite al cfagent remoto.
Para obtener información adicional sobre la solución
de problemas, consulte la sección «Solución
de problemas de cfengine».
Configuración
manual de un servidor de sincronización de un clúster
ServiceguardConfigurar cfengine para alta disponibilidad en un clúster Serviceguard
es parecido a configurarlo para un equipo autónomo, lo
que se describe en la sección «Utilización
del asistente para configurar un servidor de sincronización
autónomo». Las principales diferencias son la creación
del paquete Serviceguard y el mecanismo utilizado para distribuir
las teclas de seguridad de cfengine. Dé todos los pasos
descritos a continuación. Preparación
inicial del paquete Serviceguard Empiece
por obtener una dirección IP para el paquete. Esta dirección
normalmente se registra en el sistema DNS para simplificar la administración
de los clientes remotos. Si utiliza cfengine exclusivamente para
uso intraclúster, basta con asegurarse de que la dirección
se agrega en el archivo /etc/hosts de cada miembro. A continuación, cree la infraestructura
de almacenamiento necesaria para un paquete nuevo. Las instrucciones
para hacerlo se documentan en el manual Managing Serviceguard (capítulo «Building
an HA Cluster Configuration», sección «Creating
a Storage Infrastructure»). Por ejemplo, si utiliza una infraestructura
de almacenamiento LVM, ésta abarcaría los siguientes
pasos: Crear
el grupo de volúmenes (VG, del inglés “volume
group”) y los volúmenes lógicos (LV,
del inglés “logical volume”) del administrador
LVM (por ejemplo, /dev/vgcsync/lvol1). Exportar/importar el grupo
de volúmenes en todo el clúster. Definir un sistema de archivos
en el volumen lógico. Crear el punto de montaje
del sistema de archivos (por ejemplo, /csync) en todo el clúster.
Las plantillas por defecto dan por sentado que se utiliza
el almacenamiento basado en LVM. Para utilizar VxVM u otros sistemas
de archivos y almacenamiento en todo el clúster, efectúe los
cambios apropiados en las plantillas del paquete descritas a continuación. Asegúrese de que el sistema de archivos
correspondiente al paquete se monta en el miembro actual. Por ejemplo,
si utiliza el administrador LVM, haga lo siguiente: # vgchange -a e /dev/vgcsync # mount -o rw,largefiles /dev/vgcsync/lvol1 /csync
Personalización
inicial de los archivos de directrices Cree un subdirectorio para los archivos
de directrices maestros y los archivos de referencia. Por ejemplo: # mkdir -p /csync/dsau/cfengine_master/master_files Estos directorios de ejemplo son los utilizados por el asistente csync_wizard. Copie las plantillas por defecto en el directorio
de entradas (inputs) maestro: # cd /csync/dsau/cfengine_master/inputs |
# cp /opt/dsau/share/cfengine/templates/cf.main.template cf.main |
# cp /opt/dsau/share/cfengine/templates/update.conf.template update.conf |
# cp /opt/dsau/share/cfengine/templates/cfagent.conf.template cfagent.conf |
# cp /opt/dsau/share/cfengine/templates/cfrun.hosts.template cfrun.hosts |
# cp /opt/dsau/share/cfengine/templates/cfservd.conf.template cfservd.conf |
Modifique update.conf. Este archivo presenta un formato parecido al archivo
de configuración principal de cfengine: cfagent.conf. Se utiliza para transferir y actualizar los archivos binarios
y los archivos de definiciones de configuración actualizados
(por ejemplo, cfagent.conf) de cfengine para los clientes administrados. Reviste
importancia crítica hacer que este archivo se mantenga
muy sencillo y evitar cometer errores. Los errores de este archivo
requerirán que se copie manualmente una versión
nueva en cada cliente administrado. El archivo
contiene signos con la forma de <%nombre del signo%> que el asistente csync_wizard sustituye por las respuestas del administrador a las
preguntas. Sustituya los signos como sigue: Sustituya <%HOST_NAMER%> por
el nombre de host incompleto del paquete Serviceguard. Sustituya <%DOMAIN_NAMER%> por
el nombre de dominio DNS del paquete. Por ejemplo: host_name = ( «package-hostname») domain_name = ( «abc.xyz.com») |
Tenga en cuenta que esta plantilla update.conf da por sentado que el servidor maestro y sus clientes
están todos en un solo dominio DNS. Si el servidor maestro
va a tener clientes administrados en varios dominios DNS, cambie update.conf como sigue: Sustituya <%HOST_NAMER%> por
el nombre de host completo del paquete Serviceguard. Elimine la variable «domain_name». Sustituya la línea domain = ( “${domain_name}” ) por lo siguiente: domain = ( ExecResult(/sbin/awk ‘/domain/ {print $2}’ /etc/resolv.conf) ) |
Esto define apropiadamente la variable de dominio en el cliente.
Estas mismas modificaciones del dominio también deben realizarse
en cf.main y cfservd.conf. Consulte más adelante. Utilice el indicador -p (--parse-only, sólo analizar) de cfagent para comprobar la sintaxis de update.conf.
Obtención de una
lista de clientes administrados en cfrun.hosts cfrun necesita que todos los clientes administrados se enumeren
en el archivo cfrun.hosts. Puesto que cada miembro del clúster se considera
que es un cliente, asegúrese de que se enumera cada miembro
en /csync/dsau/cfengine_master/inputs/cfrun.hosts. Modifíquelo y agregue los nombres de host de cada
miembro, uno por cada línea. Es lo más sencillo
para asegurarse de que todos los nombres de host están
completos. Cuando se utilizan nombres de host completos, la línea «domain =» no es necesaria y se puede eliminar. Si se
utilizan nombres de host incompletos, busque la línea «domain = <%DOMAIN_NAMER%>» y sustituya el signo por el dominio DNS
de los miembros del clúster. Esto limita a todos los clientes
a ser miembros de ese único dominio. Modificación del
archivo de directrices maestro El archivo /var/opt/dsau/cfengine_master/inputs/cfagent.conf es el archivo de directrices maestro. El archivo cfagent.conf por defecto incluye la plantilla por defecto cf.main, que es un archivo de plantilla comentado con ejemplos
de acciones de sincronización comunes tanto para sistemas
autónomos como para clústeres Serviceguard. Modifique cf.main para sustituir los siguientes signos: cf.main contiene los mismos signos <%HOST_NAMER%> y <%DOMAIN_NAMER%> que los de update.conf. Realice las mismas modificaciones que las descritas
en el paso 3 del punto anterior “Personalización
inicial de los archivos de directrices”. Tenga en cuenta que esta plantilla por defecto no realiza
ninguna acción de administración. Todas las líneas
de acción están marcadas como comentario. La plantilla
contiene muchos ejemplos específicos de la sincronización
de archivos en un clúster Serviceguard. Éste es un
punto de partida para crear un conjunto personalizado de directrices
y acciones de cfengine para el clúster y otros clientes administrados. El manual de referencia de cfengine que documenta la sintaxis y todas las acciones de administración
definidas en este archivo se ubica en /opt/dsau/doc/cfengine/. Otros archivos de configuración de cfengine de ejemplo
que se incluyen en la distribución de cfengine de código
abierto se ubican en /opt/dsau/share/cfengine/examples. Modificación del
archivo cfservd.conf El archivo /var/opt/dsau/cfengine_master/inputs/cfservd.conf controla qué clientes administrados tienen
acceso a los archivos atendidos por el demonio cfservd en el maestro. Realice las siguientes modificaciones
en cfservd.conf. Elimine por completo la siguiente
línea: domain_name = ( “<%DOMAIN_NAMER%>” ) Cambie la línea que reza domain = ( “${domain_name}” ) por lo siguiente: domain = ( ExecResult(/sbin/awk ‘/domain/ {print $2}’ /etc/resolv.conf) ) La estrofa “admit:” controla qué clientes remotos
tienen acceso a los archivos en el servidor. Cambie cada “*.${domain_name}” por una lista separada por espacios
de dominios DNS de clientes administrados. Por ejemplo: /var/opt/dsau/cfengine_master/master_files *.abc.xyz.com *.cde.xyz.com Este ejemplo permite a todos los hosts de los dominios enumerados
obtener acceso a los archivos del servidor maestro. También
se pueden especificar listas de hosts, intervalos de direcciones
IP, etcétera, específicos. Para obtener información adicional,
consulte el manual de referencia de cfengine.
Distribución del
archivo maestro update.conf a cada miembro del clúster Utilice los siguientes comandos: # cd /var/opt/dsau/cfengine/master_files/inputs # ccp update.conf /var/opt/dsau/cfengine/inputs/ El propio cfengine se ocupará de distribuir los demás
archivos en todo el clúster y a todos los clientes administrados. Distribución de
las claves de seguridad de cfengine Puesto que cfengine utiliza un modelo de intercambio de claves pública/privada
para validar la autenticidad de los clientes administrados, debe
configurarse una clave que se asocie a la dirección IP
reubicable del paquete. Dicha dirección es la que los clientes
remotos perciben como el servidor maestro. Puesto que cualquier
miembro del clúster puede convertirse en el nodo adoptivo, dicha
clave debe ser idéntica en todos los miembros del clúster.
cfkey de cfengine genera un par de claves pública/privada para
el sistema actual. cfkey crea los archivos localhost.priv y localhost.pub. cfengine espera que las claves se denominen conforme a la siguiente convención: nombreusuario-dirección IP.pub Por ejemplo: root-10.0.0.3.pub El administrador copia la clave localhost.pub en el nombre
correcto según la dirección IP del sistema. En
el caso de un clúster, las claves del miembro actual se
utilizan para generar las claves en todo el clúster dando
los siguientes pasos: Utilice cfkey para crear el par de claves pública y privada
para este miembro del clúster: # mkdir -p /var/opt/dsau/cfengine/ppkeys # cd /var/opt/dsau/cfengine/ppkeys # /opt/dsau/sbin/cfkey |
Esto creará las claves denominadas localhost.priv
y localhost.pub. La clave pública, localhost.pub, se copia a continuación en root-dirección IP del paquete.pub. Por ejemplo: # cp localhost.pub root-10.116.9.74.pub |
donde 10.116.9.74 es la dirección IP reubicable del
paquete csync. La clave pública localhost.pub de este miembro se utiliza a continuación para
crear claves específicas de miembro para cada miembro: # cp localhost.pub root-<dirección IP del miembro1>.pub # cp localhost.pub root-<dirección IP del miembro2>.pub # cp localhost.pub root-<dirección IP del miembro3>.pub ... # cp localhost.pub root-<dirección IP del miembroN>.pub |
Por último, todas las claves se copian
en cada miembro. # ccp * /var/opt/dsau/cfengine/ppkeys |
Nota: ccp, un comando de cargabilidad de salida de comandos (command-fanout),
realiza una copia del clúster copiando un comando en todos
los miembros del clúster.
Configuración e
inicio de cfservd Configure el
demonio cfservd para que se inicie al arrancar el sistema. Modifique
/etc/rc.config.d/cfservd y cambie la línea CSYNC_CONFIGURED=0 por CSYNC_CONFIGURED=1. Propague este cambio en todo el clúster: # ccp /etc/rc.config.d/cfservd /etc/rc.config.d/cfservd |
En el servidor maestro, inicie el demonio cfservd: # /sbin/init.d/cfservd start |
Repita para el resto de los miembros del clúster.
Si ha configurado el clúster para que se utilice con las
herramientas de cargabilidad de salida de comandos (Command Fanout)
de DSAU, utilice el siguiente comando para iniciar los demonios
en todo el clúster: # cexec /sbin/init.d/cfservd start |
Creación del paquete
csync Para crear el paquete de sincronización de la configuración,
modifique los archivos de plantilla del paquete por defecto según
proceda para el entorno Serviceguard. Tenga en cuenta que es preciso
que el paquete se llame csync. De no llamarlo
así, se impedirá que las operaciones automatizadas
de Serviceguard se lleven a cabo. Para obtener más información,
consulte la sección «Características
de automatización Serviceguard». Empiece por efectuar los cambios descritos más adelante. Cree el directorio del paquete en todo
el clúster: # cexec mkdir /etc/cmcluster/csync |
Copie el archivo ASCII del paquete de plantilla
y la secuencia de comandos de control del paquete en el directorio /etc/cmcluster/cysnc del miembro actual: # cd /etc/cmcluster/csync # cp /opt/dsau/share/serviceguard/templates/csync.conf.template csync.conf # cp /dsau/share/serviceguard/templates/csync.script.template csync # chmod +x csync |
Modifique el archivo de configuración
ASCII del paquete csync.conf para sustituir los signos de marcador
de posición por los valores apropiados. Los signos presentan
la forma <%nombre del signo%>. Busque la línea «SUBNET <%SG_PKG_SUBNET%>» y sustituya el signo por la subred del
paquete csync. Utilice netstat -i para ayudar a identificar la subred. Modifique la secuencia de comandos de control del
paquete y sustituya los signos de marcador de posición
por los valores apropiados. Nota: La plantilla de secuencia de comandos por defecto da
por sentado que se utiliza una configuración de almacenamiento basado
en LVM. Si utiliza VxVM y/o CFS, consulte el documento Managing
Serviceguard para obtener más información
sobre la configuración de paquetes mediante estos recursos
técnicos. Tendrá que marcar como comentarios las
partes de LVM de la plantilla descritas más adelante y
sustituir las estrofas VxVM o CFS apropiadas. Busque
la línea «VG[0]=“<%SG_PKG_VOL_GRP%>”» y sustituya el signo por el nombre del
grupo de volúmenes LVM del paquete. Por ejemplo,
VG[0]“vgcsync”. Busque la línea «LV[0]=“<%SG_PKG_LOG_VOL%>”» y sustituya el signo por el nombre completo
del volumen lógico. Por ejemplo, LV[0]=“/dev/vgcsync/lvol1”. Busque la línea «FS[0]=“<%SG_PKG_FS%>”» y sustituya el signo por el nombre del
punto de montaje del sistema de archivos creado para este paquete.
Por ejemplo, FS[0]=“/csync”. Tenga en cuenta que este punto de montaje debería
haberse creado en cada miembro del clúster como parte de
la configuración de almacenamiento descrita más
arriba. Busque la línea «FS_MOUNT_OPT[0]=“<%SG_PKG_MNT_OPT%>”» y sustituya el signo por las opciones
de montaje del sistema de archivos. Por ejemplo, FS_MOUNT_OPT[0]=“-o rw,largefiles”. Busque la línea
«FS_TYPE[0]=“<%SG_PKG_FS_TYPE%>”» y sustituya el signo por el tipo de sistema
de archivos. Por ejemplo, FS_TYPE[0]=“vxfs”. Busque la línea «FS_UMOUNT_OPT[0]=“<%SG_PKG_FS_UMOUNT_OPT%>”» y sustituya el signo por cualquier opción
umount del sistema de archivos. El signo se puede eliminar y
esta opción se puede dejar en blanco si no hay ninguna
opción umount particular. Por ejemplo, FS_UMOUNT_OPT[0]=“”. Busque la línea
«FS_FSCK_OPT[0]=“<%SG_PKG_FS_FSCK_OPT%>”» y sustituya el signo por cualquier opción
fsck específica del sistema de archivos. Como en
el caso anterior, el signo se puede eliminar y esta opción
se puede dejar en blanco. Por ejemplo, FS_FSCK_OPT[0]=“”. Busque la línea «IP[0]=“<%SG_PKG_IP%>”» y sustituya el signo por la dirección
IP del paquete csync. Por ejemplo, IP[0]= 123.456.789.3. Busque la línea «SUBNET[0]=“<%SG_PKG_SUBNET%>”» y sustituya el signo por la subred de
la dirección IP del paquete. Utilice netstat -i para ayudar a determinar la subred. Por ejemplo,
SUBNET[0]= 123.456.789.0.
Distribuya en todo el clúster la secuencia
de comandos de control del paquete y los archivos de configuración
ASCII del paquete: # ccp csync csync.conf /etc/cmcluster/csync/ Aplique el paquete e inícielo: # cmapplyconf -P csync.conf # cmmodpkg -e csync
Prueba de la configuración
del paquete csync Pruebe la configuración dando los siguientes pasos: En un cliente administrado, utilice
el comando: # cfagent --no-lock --verbose --no-splay La salida detallada mostrará al cliente buscando
copias actualizadas de los archivos de directrices maestros, copiándolas en /var/opt/cfengine/inputs, si procede, y ejecutando, a continuación,
el contenido de cfagent.conf/cf.main. En el servidor maestro, pruebe el comando cfrun: # cfrun -- --inform --inform da instrucciones al cfagent remoto para que utilice el indicador --inform, el cual generará mensajes para todos los cambios
que cfengine realice en el sistema. Para obtener información
adicional, el comando --verbose también puede ser útil: # cfrun -v -- --verbose La opción -v le indica al propio cfrun que sea más detallado
y la opción --verbose se transmite al cfagent remoto. Para obtener información adicional sobre la solución
de problemas, consulte la sección «Solución
de problemas de cfengine».
Configuración
de un cliente administrado de sincronizaciónCuando se configuran manualmente clientes administrados, los
pasos básicos son: Intercambio
de claves de seguridad. Esto establece la relación de confianza
entre el cliente administrado y el servidor maestro. Copia de update.conf desde el servidor maestro en el cliente administrado. Definición de un
programa para el que cfagent realizará operaciones de sincronización.
Para configurar un clúster Serviceguard como un cliente
de un servidor maestro existente de cfengine, se trata a cada miembro del clúster como si
fuera un sistema autónomo, configurándose individualmente.
Si agrega miembros nuevos al clúster, cada uno de ellos
debe configurarse apropiadamente.Si agrega un miembro nuevo a un
clúster Serviceguard y este clúster ejecuta el
paquete csync, los miembros del clúster se configuran automáticamente
como clientes administrados de cfengine. En este marco hipotético, el paquete csync hace de servidor maestro. Los miembros nuevos se configurarán
automáticamente como clientes administrados y también
podrán manejar la conmutación por error para el
paquete. La infraestructura de almacenamiento y el sistema de archivos
del paquete deben configurarse antes de agregar el miembro al clúster. Para
agregar un cliente administrado nuevo, empiece por configurar la relación
de confianza entre el cliente y el servidor maestro. Los dos sistemas
intercambian claves de seguridad para autenticarse. La clave pública
del servidor maestro tiene que copiarse en el cliente y la clave pública
del cliente se copia en el servidor maestro: Como usuario root, cree la clave
de seguridad del cliente utilizando cfkey: # mkdir -p /var/opt/cfengine/ppkeys # cd /var/opt/cfengine/ppkeys # /opt/dsau/sbin/cfkey |
Esto crea los archivos localhost.pub y localhost.priv para
este cliente. Copie la clave de este cliente
en el servidor maestro. El servidor maestro utiliza la siguiente
convención de nomenclatura para las claves de cliente:
<nombreusuario>-<dirección_IP_cliente>.pub. Inserte la clave pública del cliente en
el directorio ppkeys del servidor maestro aplicando la siguiente
convención de nomenclatura: # scp localhost.pub servidor_maestro:\ /var/opt/cfengine/ppkeys/root-dirección_IP_cliente.pub |
Tenga en cuenta que es importante usar una utilidad como secure copy
(copia segura) (consulte scp(1)) al transferir la clave
para proteger su integridad. Por último, copie la clave del servidor
maestro en este cliente administrado: # scp servidor_maestro:\ /var/opt/cfengine_master/ppkeys/localhost.pub \ root-dirección_IP_servidor_maestro.pub |
A continuación, copie el archivo update.conf
del servidor maestro en el cliente administrado: # mkdir -p /var/opt/dsau/cfengine/inputs # cd /var/opt/dsau/cfengine/master_files/inputs # cd /var/opt/dsau/cfengine/inputs # scp servidor_maestro:\ /var/opt/dsau/cfengine/inputs/update.conf ./update.conf |
Para permitir que este cliente acepte peticiones de cfrun, dé los siguientes pasos: Modifique
/etc/rc.config.d/cfservd y defina la variable CSYNC_CONFIGURED en «1»: esto iniciará cfservd en el momento
del inicio. Inicie el demonio cfservd: # /sbin/init.d/cfservd start Pruebe la configuración con cfagent (consulte cfagent(8)): # cfagent --no-lock --verbose --no-splay La salida detallada mostrará al cliente buscando
copias actualizadas de los archivos de directrices maestros, copiándolas
en /var/opt/cfengine/inputs, si procede, y ejecutando, a continuación,
el contenido de cfagent.conf/cf.main.
Para obtener información adicional sobre la solución
de problemas, consulte la sección «Solución
de problemas de cfengine». Selección
de un método de llamada a la sincronizaciónComo administrador, usted puede extender los cambios a los
clientes administrados con ayuda del comando cfrun (consulte cfrun(8)). cfrun se pone en contacto con el demonio cfservd en cada cliente administrado y el demonio cfservd llama al comando cfagent para realizar el trabajo de sincronización real. También
puede optar por que cfagent se ejecute a intervalos en el cliente. Son dos los planteamientos: Ejecute cfagent desde un trabajo cron. Cuando ejecute cfagent desde cron, llámelo con ayuda de cfexecd -F. A continuación, se muestra un ejemplo de entrada crontab: 0 * * * * /var/opt/dsau/cfengine/bin/cfexecd -F Esta entrada crontab hará que cfagent se ejecute cada hora. En este ejemplo, cfexecd (consulte cfexecd(8)) hace de empaquetador (“wrapper”)
para cfagent y recaba la salida y la coloca en /var/opt/dsau/cfengine/outputs. cfexecd también puede hacer que se envíe correo
al administrador si se especifica en el archivo cfagent.conf. Para obtener detalles, consulte el manual de referencia
de cfengine en /opt/dsau/doc/cfengine. Tenga en cuenta que el archivo cf.main por defecto tiene un ejemplo para agregar automáticamente
la línea anterior en el archivo crontab de cada cliente administrado. Ejecute cfexecd en modo demonio. cfexecd tiene características parecidas al demonio cron que se basan en las clases de tiempo de cfengine y que se pueden utilizar en lugar de cron para ejecutar cfagent. cfexecd adopta por defecto la ejecución de cfengine cada hora. Al empezar a utilizar por primera vez cfengine, probablemente lo más fácil sea utilizar cron para programar la sincronización en el lado
del cliente. Para obtener detalles sobre el uso de cfexecd en modo demonio, consulte el tutorial de cfengine ubicado en /opt/dsau/doc/cfengine/.
cfengine presenta muchas características de seguridad
que abarcan desde parámetros para controlar los ataques
de denegación de servicio a listas de control de acceso
que impiden a los clientes administrados obtener acceso a los directorios
de archivos de referencia en el servidor. Para obtener detalles
sobre las características de seguridad de cfengine, consulte el manual de referencia ubicado en /opt/dsau/doc/cfengine/. Los temas de seguridad analizados a continuación
abarcan: Alertas de suma de comprobación
Intercambio de clavesEn todos los ejemplos de intercambio de claves mostrados hasta
ahora se ha utilizado la utilidad scp para transferir sin riesgos la clave pública
del servidor maestro al cliente administrado |