Saltar al contenido

Registro Automático y Ajuste de Escala Automático del Agente

Introducción

El registro automático de Agente permite a un administrador preconfigurar los agentes de forma segura para que se inicien y registren automáticamente. Esto permite crear múltiples agentes automáticamente (registro automático) y a medida que aumenta la demanda (escalado automático).

El proceso de registro automático y ajuste de escala automático del agente funciona con Linux, Windows y Docker Agentes Privados versión 10.14 o superior. No está disponible para los Grupos de Agentes en Nube.

Estas páginas adicionales están disponibles en esta sección:

Descripción General

El flujo normal de inicio del agente espera una credentials.txt El archivo debe estar presente en el directorio de instalación del agente. Este archivo contiene credenciales cifradas para un agente específico. Como este archivo de credenciales es único, no se puede duplicar ni utilizar con otros agentes.

El proceso de registro automático reemplaza este flujo de inicio y en su lugar permite que cada instancia de un agente cree su propia credentials.txt archivo al inicio.

Este proceso requiere una register.json archivo, que no es exclusivo de un agente y, por lo tanto, se puede copiar, duplicar o generar imágenes para todos los agentes de un Grupo de Agentes.

El register.json En cambio, el archivo es exclusivo del Grupo de Agentes específico de una organización.

El proceso de registro automático requiere que se cumplan ambos criterios:

  • A register.json El archivo está presente en el agente.

  • A credentials.txt el archivo no está presente en el agente

Archivo de Registro de Agente

El archivo de registro del Agente es un archivo JSON llamado register.json. Se coloca en el mismo lugar que el credentials.txt archivo:

  • En Linux o Docker, en /opt/jitterbit/Resources

  • En Windows, en C:\Program Files (x86)\Jitterbit Agent\Resources

El register.json El archivo tiene estas propiedades:

  • cloudUrl: URL de Harmony Cloud (propiedad obligatoria)

  • token: token de acceso de registro de Agente (propiedad requerida si username y password no están definidos)

    Importante

    Si usa agentes versión 10.83/11.21 o posterior, recomendamos usar tokens de acceso de registro de Agente sobre las credenciales de usuario cifradas de Agent Installer. Los tokens de acceso de registro de Agente no caducan y se pueden administrar en la Management Console en cualquier momento.

  • username: Nombre de usuario (sin token), y cifrado utilizando el JitterbitUtils aplicación empaquetada con la instalación predeterminada del agente, como se describe a continuación (propiedad requerida si token no está definido)

  • password: Contraseña (sin token), y cifrado usando JitterbitUtils, como se describe abajo (propiedad requerida si token no está definido)

  • agentGroupId: ID de Grupo de Agentes, disponible desde la Management Console Agentes > Grupos de Agente, colocando el cursor sobre el nombre del Grupo de Agentes para ver el ID del Grupo de Agentes (propiedad obligatoria)

  • agentNamePrefix: Un prefijo agregado a la marca de tiempo UTC de la creación del agente para formar el nombre del agente, como se muestra en Management Console. Las variables que se sustituyen automáticamente se pueden utilizar para crear nombres únicos que identifiquen a un agente tanto en Management Console como en el sistema alojar (propiedad opcional).

  • deregisterAgentOnDrainstop: Cuando se establece en true, realiza la cancelación del registro del agente cuando se detiene el drenaje del agente o se apaga la JVM y elimina el agente de la página Agentes de la Consola de administración. El valor predeterminado es false (propiedad opcional)

  • retryCount: Número de reintentos que se intentarán si el agente tiene problemas para conectarse a Harmony Cloud para registrarse. Rango válido: 0 a 300, por defecto es 10 (propiedad opcional).

  • retryIntervalSeconds: Número de segundos que esperará el agente antes de volver a intentar una conexión. Este intervalo se duplica con cada nuevo intento, hasta un máximo de 600 segundos (10 minutos). Rango válido: 5 a 600, por defecto es 5 (propiedad opcional).

variables en el agentNamePrefix se sustituyen automáticamente:

  • %ip%: dirección IP del sistema o contenedor
  • %host%: Nombre de host del sistema; para una instancia de Docker, este es el Docker Container ID; para Kubernetes, se establece con el nombre del pod del contenedor
  • %guid%: Un GUID generado aleatoriamente de 8 caracteres de longitud. Esto es muy recomendable en escenarios de escalado automático para asignar un valor aleatorio al nombre de cada agente.
  • Por ejemplo: un agentNamePrefix de auto_%ip%_%host%_%guid% resultará en un nombre de agente como

    auto_172.17.0.2_b2a546cc080e_59a260ca_2020-02-14 17:43:03.033

Ejemploregister.json

Importante

Tokens de acceso de registro de Agente requieren agentes versión 10.83/11.21 o posterior.

register.json
{
  "cloudUrl": "https://example.jitterbit.com",
  "token": "jb_a1b23c45-d6ef-789a-b0cd-e12fabcd3e4f",
  "agentGroupId": "21",
  "agentNamePrefix": "auto_%ip%_%host%_%guid%",
  "deregisterAgentOnDrainstop": "true",
  "retryCount": "10",
  "retryIntervalSeconds": "5"
}

Importante

Si usa agentes versión 10.83/11.21 o posterior, recomendamos usar tokens de acceso de registro de Agente sobre las credenciales de usuario cifradas de Agent Installer. Los tokens de acceso de registro de Agente no caducan y se pueden administrar en la Management Console en cualquier momento.

register.json
{
  "cloudUrl": "https://example.jitterbit.com",
  "username": "$000MTF/XSfev/KjlB/M1Q5vFkPLBKU5LKFYm.../PwoHRiSGGLlJ",
  "password": "$006WIdHtws7wrjgCNAoabUzu0f+HsyzAfAZtTpauvsHBE=",
  "agentGroupId": "21",
  "agentNamePrefix": "auto_%ip%_%host%_%guid%",
  "deregisterAgentOnDrainstop": "true",
  "retryCount": "10",
  "retryIntervalSeconds": "5"
}

Para mayor seguridad, la cuenta (username) utilizado en el register.json El archivo debe tener únicamente el permiso Agent Install. Esto se configura en la Management Console. Para ver ejemplos de cómo confirmar y establecer una rol de agente, consulte Administrar permisos, funciones y miembros dentro de Organizaciones.

Nota

Para configurar un usuario con permiso Agent Install, deberá iniciar sesión como usuario con permiso Admin en el Portal Harmony. Cuando haya completado la configuración de la nueva cuenta, cierre la sesión del Portal Harmony, ya que deberá responder al correo de configuración del agente como ese nuevo usuario para poder completar la configuración. Si no cierra la sesión, puede que inicie sesión como usuario administrador y no pueda completar la configuración. Puede utilizar una ventana privada del navegador para responder al correo de configuración del agente y evitar volver a iniciar sesión como usuario con permiso de Administrador.

Consejo

El cloudUrl requerido depende de la Región de Harmony:

Te recomendamos definir deregisterAgentOnDrainstop como true para que cuando los agentes se cierren, se eliminen automáticamente de la página Agentes de la Consola de administración. De lo contrario, el agente no podrá reiniciarse ni registrarse correctamente.

Edición en un Sistema Operativo Windows

Si estás editando el register.json archivo en un sistema operativo Windows para usarlo con Docker, use un editor como Notepad++ que le permite configurar los finales de línea correctamente. Se requieren avances de línea UNIX (LF) para register.json para funcionar correctamente en un sistema Docker. Esto es lo que deberías ver al editar el archivo en Notepad++: Unix (LF)

adjunto

Cifrar el Nombre de Usuario y la Contraseña

Importante

Si usa agentes versión 10.83/11.21 o posterior, recomendamos usar tokens de acceso de registro de Agente sobre las credenciales de usuario cifradas de Agent Installer. Los tokens de acceso de registro de Agente no requieren este paso de cifrado.

El nombre de usuario y la contraseña se cifran utilizando el JitterbitUtils aplicación (para Linux y Docker, con el secuencia de comandos jitterbit-utils) empaquetado con la instalación del agente predeterminado. Copie los resultados de este comando en el archivo JSON en las ubicaciones descritas anteriormente.

Ejemplos

Ejemplo de uso de jitterbit-utils en Linux para cifrar un nombre de usuario y contraseña:

cd /opt/jitterbit/bin && jitterbit-utils -e "first.last@example.com" "somePassw0Rd1"

Ejemplo de uso de jitterbit-utils en Docker para cifrar un nombre de usuario y contraseña:

docker run --rm jitterbit/agent:latest jitterbit-utils -e "first.last@example.com" "somePassw0Rd1"

Ejemplo de uso de JitterbitUtils.exe en Windows para cifrar un nombre de usuario y contraseña:

cd C:\Program Files\Jitterbit Agent\bin && JitterbitUtils.exe -e "first.last@example.com" "somePassw0Rd1"

Ejemplo de respuesta (nombre de usuario y contraseña, cada uno en una línea):

$000MTF/XSfev/KjlB/M1Q5vFkPLBKU5LKFYm.../PwoHRiSGGLlJ
$006WIdHtws7wrjgCNAoabUzu0f+HsyzAfAZtTpauvsHBE=

Consejo

Si su nombre de usuario o contraseña contiene caracteres normalmente interpretados por el shell, debe escapar de ellos, como en este ejemplo:

Shell de Linux o macOS:

docker run --rm jitterbit/agent echo "\"pa\$\$\`\\/\\/0rd\""

Output:

"pa$$`\/\/0rd"

Lógica del Agente

El servicio Jitterbit Tomcat del Jitterbit Agent se encarga de comprobar y ejecutar el proceso de registro automático. El proceso busca un register.json archivo y, si está presente, lo utiliza para crear un credentials.txt archivo. Al final del proceso, el register.json El archivo se elimina porque ya no es necesario para el inicio del agente. En cambio, el credentials.txt Se utilizará el archivo que se creó.

Otros servicios del agente, como la limpieza y el programador, simplemente esperarán durante el inicio hasta que el credentials.txt El archivo está disponible.

Escalado Automático y Aprovisionamiento de Agente

Se requieren agentes de registro automático configurados para el escalado automático. Una vez configurados, se pueden orquestar con diferentes tecnologías, ya sea manualmente o con sistemas como Kubernetes.

Amazon EC2

  1. Configure las credenciales de autenticación:
    • Si utiliza agentes versión 10.83 o posterior, genere un token de acceso de registro de Agente
    • Si no, agregue un usuario a la organización y asígnele el permiso Agent Install. Cifre el nombre de usuario y la contraseña de este nuevo usuario usando JitterbitUtils
  2. Cree un cuadro de imagen, instale el agente e instale cualquier otro software necesario (monitoreo, utilidades, etc.)
  3. Detener al agente
  4. Crea el register.json archivo y defina su configuración. Para autenticación, inserte:
    • Un token de acceso de registro de Agente, o
    • Un nombre de usuario y una contraseña cifrados
  5. Copie el register.json archivo en el mismo directorio que el credentials.txt archivo
  6. Eliminar el credentials.txt archivo
  7. Cree una imagen de Amazon EC2

En este punto, esta imagen de Amazon EC2 se puede utilizar en un grupo de escalado automático o manualmente creando una nueva instancia de Amazon EC2 a partir de la imagen.

Cuando estas instancias se conecten y los agentes se inicien, pasarán por el proceso de registro automático descrito anteriormente.

Estibador

Cuando se utiliza un agente Docker para el escalado automático, el proceso y el flujo son los mismos descritos anteriormente pero con dos opciones: opción 1, usando archivos mapeados; y la opción 2, utilizando variables de ambiente.

Opción 1: Archivos Asignados

Los agentes Docker requieren un credentials.txt archivo que se asignará al /conf directorio.

En lugar de proporcionar y mapear un credentials.txt archivo en el /conf directorio, proporcione el register.json archivo en ese directorio utilizando una herramienta de orquestación de su elección (como Kubernetes).

Opción 2: Variables de Ambiente

Si utiliza credenciales de usuario cifradas Agent Installer, otra opción es suministrar el contenido del register.json archivo usando variables de ambiente. Este ejemplo muestra las variables que definen el registro automático:

AUTO_REGISTER="true"
HARMONY_ORIGIN="https://example.jitterbit.com"
AUTO_REGISTER_ENCRYPTED_USERNAME="$000MTF/XSfev/KjlB/M1Q5vFkPLBKU5LKFYm.../PwoHRiSGGLlJ"
AUTO_REGISTER_ENCRYPTED_PASSWORD="$006WIdHtws7wrjgCNAoabUzu0f+HsyzAfAZtTpauvsHBE="
AUTO_REGISTER_AGENT_GROUP_ID="21"
AUTO_REGISTER_AGENT_NAME_PREFIX="auto_%ip%_%host%_%guid%"
AUTO_REGISTER_DEREGISTER_ON_DRAINSTOP="true"
AUTO_REGISTER_RETRY_COUNT="10"
AUTO_REGISTER_RETRY_INTERVAL_SECONDS="5"

Advertencia

Un problema conocido con el ajuste de escala automático es que si se excede la cantidad de agentes para los que tiene licencia, no se proporciona ningún mensaje de error ni advertencia. En cambio, el registro del agente falla y se escribe un mensaje de error de registro en el registro del agente. Sin embargo, no aparecerá ningún mensaje en Management Console. Como solución alternativa, supervise el panel de Management Console, tenga en cuenta los límites de su licencia y verifique que la cantidad de agentes aprovisionados no exceda esos límites.

Control de Calidad y Pruebas de Configuración

Para probar estas funciones y confirmar que ha configurado un Grupo de Agentes correctamente:

  1. Configure las credenciales de autenticación:
    • Si utiliza agentes versión 10.83 o posterior, genere un token de acceso de registro de Agente
    • Si no, agregue un usuario a la organización y asígnele el permiso Agent Install. Cifre el nombre de usuario y la contraseña de este nuevo usuario usando JitterbitUtils
  2. Instale un Agente Privado y pruebe con ejecuciones de operación de muestra para asegurarse de que esté funcionando correctamente durante la instalación normal y que funcione correctamente.
  3. Detenga el agente y elimine o elimine el credentials.txt expediente para el agente
  4. Crea el register.json y definir su configuración. Para autenticación, inserte:
    • Un token de acceso de registro de Agente, o
    • Un nombre de usuario y una contraseña cifrados
  5. Coloque el register.json archivo en el mismo lugar donde se credentials.txt se encontró el archivo
  6. Inicie el agente
  7. Verifique el registro del agente: el agente debería registrarse automáticamente como un nuevo agente para el ID de Grupo de Agentes que se proporcionó.
  8. La Management Console Agentes > Grupos de Agente la página debe mostrar el agente recién registrado
  9. Tras el registro exitoso, el agente debe eliminar el register.json archivo y mostrar en su lugar un credentials.txt archivo