Saltar al contenido

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

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 agentes privados Linux, Windows y Docker versión 10.14 o superior. No está disponible para los grupos de agentes de la nube.

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

Descripción General

El flujo de inicio del agente normal espera un credentials.txt archivo que 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 puede duplicarse ni usarse 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 propio credentials.txt archivo al iniciarse.

Este proceso requiere un register.json archivo, que no es exclusivo de un agente y, por lo tanto, se puede copiar, duplicar o copiar en todos los agentes de un grupo de agentes.

register.jsonEn 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:

  • Un 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 del 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 encriptados usando el JitterbitUtils aplicación empaquetada con la instalación del agente predeterminada, como se describe a continuación (propiedad requerida si token no está definido)

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

  • agentGroupId: ID del grupo de Agente, visible en Management Console Agentes página

  • 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 anulació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 el agente esperará 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 la 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 ID del contenedor de Docker; para Kubernetes, se establece en 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% Dará como resultado un nombre de agente como

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

Ejemplo register.json

Importante

Tokens de acceso de registro del Agente requieren la versión 10.83/11.21 o posterior del agente.

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 de Harmony. Cuando haya completado la configuración de la nueva cuenta, cierre sesión en el portal de 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 de modo que cuando los agentes se apagan, se eliminan automáticamente de la página Agentes de la Consola de administración. Si no lo hace, el agente no podrá reiniciarse ni registrarse correctamente.

Editar 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. Los saltos de línea UNIX (LF) son necesarios para register.json para que funcione correctamente en un sistema Docker. Esto es lo que debería ver al editar el archivo en Notepad++: Unix (LF)

attachment

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 mediante el JitterbitUtils aplicación (para Linux y Docker, con el secuencia de comandos jitterbit-utils) incluido 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 agente Jitterbit es responsable de verificar 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 iniciar el agente. En su lugar, el credentials.txt Se utilizará el archivo creado.

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

Autoescalado y Aprovisionamiento de Agente

Para el escalado automático se requieren agentes de registro automático configurados. Una vez configurados, se pueden orquestar con diferentes tecnologías, ya sea de forma manual 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. Detenga el agente
  4. Cree 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. Crear una imagen de Amazon EC2

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

Cuando estas instancias se conectan y el agente o los agentes se inician, pasarán por el proceso de registro automático descrito anteriormente.

Acoplable

Al utilizar un agente Docker para el escalado automático, el proceso y el flujo son los mismos que los 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 Mapeados

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

En lugar de proporcionar y asignar un credentials.txt archivo en el /conf directorio, proporcionar 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 se utilizan credenciales de usuario del instalador del agente cifradas, 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.

Pruebas de Control de Calidad y 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 garantizar que esté funcionando correctamente durante la instalación normal y que funcione correctamente.
  3. Detenga el agente y elimine o elimine el credentials.txt archivo para el agente
  4. Cree 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 el 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 del grupo de agentes que se proporcionó.
  8. La Management Console Agentes La página debe mostrar el agente recién registrado
  9. Una vez que el registro se haya realizado correctamente, el agente debe eliminar el register.json archivo y mostrar en su lugar un credentials.txt archivo