Ir al contenido España-Español
HP.com España principal Productos y Servicios Soporte y Drivers Soluciones Cómo Comprar
» Contactar con HP
Más opciones
HP.com España principal
Administración de sistemas y grupos de trabajo: Guía para los administradores de sistemas HP-UX > Capítulo 3 Configuración de un sistema

Utilización de Distributed Systems Administration Utilities

» 

Documentación técnica

Libro completo en PDF
» Comentarios
Aquí empieza el contenido

 » Tabla de contenido

 » Índice

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.

  • Modificar los archivos.

  • 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 cfengine

El 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 cfengine

cfengine 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.

Figura 3-1 Descripción general de cfengine

Descripción general de cfengine
  1. 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.

  2. 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.

  3. cfrun se pone en contacto con cfservd en cada cliente administrado, que a su vez llama a cfagent.

  4. 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.

  5. 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 cfengine

El 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ónomo

Para 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 Serviceguard

Para 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úster

En 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 Serviceguard

Las 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:

    1. etc/rc.config.d/cfservd se cambia para definir CSYNC_CONFIGURED en 1

    2. 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.

    3. El directorio /var/opt/dsau/cfengine/inputs del miembro nuevo se ocupa.

    4. cfservd se inicia en el miembro nuevo.

    5. Los archivos del paquete se copian en /etc/cmcluster/csync/, en el miembro nuevo.

    6. Se efectúa una ejecución de sincronización cfagent en el maestro para ocupar el directorio /var/opt/dsau/cfengine/inputs del maestro.

    7. 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ón

El 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.

Configuración manual

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ónomo

Dé los siguientes pasos puntuales para configurar un sistema autónomo como un servidor maestro de cfengine:

  1. 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

  2. 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
  3. 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:

    1. Sustituya <%HOST_NAMER%> por el nombre de host incompleto del servidor maestro.

    2. 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:

    3. Sustituya <%HOST_NAMER%> por el nombre de host completo del servidor maestro.

    4. Elimine la variable <domain_name>.

    5. 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.

  4. 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».

  5. 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».

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. En el servidor maestro, inicie el demonio cfservd:

    # /sbin/init.d/cfservd start

    Esto se repite para cada cliente administrado.

  11. Pruebe la configuración dando los siguientes pasos:

    1. 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.

    2. 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 Serviceguard

Configurar 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

    1. 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.

    2. 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:

      1. 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).

      2. Exportar/importar el grupo de volúmenes en todo el clúster.

      3. Definir un sistema de archivos en el volumen lógico.

      4. 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.

    3. 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

    1. 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.

    2. 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 
    3. 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:

    1. 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.

    2. 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.

    3. 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
    4. 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

    1. 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.

    2. Propague este cambio en todo el clúster:

      # ccp /etc/rc.config.d/cfservd /etc/rc.config.d/cfservd
    3. En el servidor maestro, inicie el demonio cfservd:

      # /sbin/init.d/cfservd start 
    4. 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.

    1. Cree el directorio del paquete en todo el clúster:

      # cexec mkdir /etc/cmcluster/csync
    2. 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
    3. 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.

    4. 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.

      1. 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”.

      2. 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”.

      3. 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.

      4. 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”.

      5. 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”.

      6. 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]=“”.

      7. 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]=“”.

      8. 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.

      9. 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.

    5. 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/

    6. 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:

    1. 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.

    2. 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ón

Cuando 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:

  1. 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.

  2. 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.

  3. 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.

  4. 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
  5. 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:

  1. Modifique /etc/rc.config.d/cfservd y defina la variable CSYNC_CONFIGURED en «1»: esto iniciará cfservd en el momento del inicio.

  2. Inicie el demonio cfservd:

    # /sbin/init.d/cfservd start

  3. 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ón

Como 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/.

Notas sobre la seguridad

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:

  • Intercambio de claves

  • Uso del puerto de red

  • Cifrado

  • Alertas de suma de comprobación

Intercambio de claves

En 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