Saltar al contenido

Registro automático y escalado automático del agente privado Jitterbit

Introducción

El registro automático de Agente permite que un administrador configure previamente los agentes de manera 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 escalado automático y registro del agente funciona con agentes privados de Linux, Windows y Docker versión 10.14 o superior. No está disponible para los grupos de agentes en 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

Expediente de registro del 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 requerida)

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

    Importante

    Si usa agentes de la versión 10.83/11.21 o posterior, recomendamos usar Tokens de acceso de registro de Agente sobre credenciales de usuario cifradas del Instalador del agente. Los tokens de acceso al Registro del Agente no vencen 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 a continuación (propiedad requerida si token no está definido)

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

  • agentNamePrefix: Un prefijo que se agrega a la marca de tiempo UTC de la creación del agente para formar el nombre del agente, como se muestra en la Management Console. Las variables que se sustituyen automáticamente se pueden usar para crear nombres únicos que identifiquen a un agente tanto en la 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 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 deben realizar 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 al 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 de la versión 10.83/11.21 o posterior, recomendamos usar Tokens de acceso de registro de Agente sobre credenciales de usuario cifradas del Instalador del agente. Los tokens de acceso al Registro del Agente no vencen 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 configurar un rol de agente, consulte Administrar permisos, roles 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 la sesión del portal de Harmony, ya que deberá responder al correo de configuración del agente como ese nuevo usuario para completar la configuración. Si no cierra la sesión, puede iniciar sesión como usuario administrador y no completar la configuración. Puede usar 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_Admin_.

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 usar 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 de la versión 10.83/11.21 o posterior, recomendamos usar Tokens de acceso de registro de Agente sobre credenciales de usuario cifradas del Instalador del Agente. Los tokens de acceso de Registro del 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 que se describen arriba.#agentautomaticregistrationandautoscaling-agent-registration-file).

Ejemplos

Ejemplo de uso de jitterbit-utils En Linux, para cifrar un nombre de usuario y una 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 escaparlos, 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 que se creó.

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

Escalado automático 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 de la versión 10.83 o posterior, genere un token de acceso de registro de Agente
    • Si no es así, 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 definir sus configuraciones. Para la autenticación, inserte:
    • Un token de acceso de registro de Agente, o
    • Un nombre de usuario y contraseña cifrados
  5. Copiar 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, utilizando archivos mapeados; y 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 que utiliza 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 escalado automático es que, si se excede la cantidad de agentes para los que tiene licencia, no se muestra 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 la Management Console. Como solución alternativa, controle el panel de la 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 correctamente un grupo de agentes:

  1. Configure las credenciales de autenticación:
    • Si utiliza agentes de la versión 10.83 o posterior, genere un token de acceso de registro de Agente
    • Si no es así, 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 realice pruebas con ejecuciones de operación de muestra para asegurarse de que funcione correctamente durante la instalación normal y de que funcione correctamente.
  3. Detenga el agente y elimine o mueva el credentials.txt archivo para el agente
  4. Cree el register.json y definir sus ajustes. Para la autenticación, inserte:
    • Un token de acceso de registro de Agente, o
    • Un nombre de usuario y contraseña cifrados
  5. Coloque el register.json archivo en el mismo lugar donde el credentials.txt Se encontró el archivo
  6. Iniciar 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