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:
-
Tutorial de registro automático del agente Docker
Cómo configurar dos (o más) agentes privados de Docker que se registrarán automáticamente en un grupo de agentes privados designado en su organización.
-
Cómo configurar un grupo de agentes privados para que se registren y escalen automáticamente mediante Kubernetes y Yelmo.
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.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:
-
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 siusername
ypassword
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 (sintoken
), y encriptados usando elJitterbitUtils
aplicación empaquetada con la instalación del agente predeterminada, como se describe a continuación (propiedad requerida sitoken
no está definido) -
password
: Contraseña (sintoken
), y encriptado usandoJitterbitUtils
, como se describe a continuación (propiedad requerida sitoken
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 entrue
, 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 esfalse
(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
a300
, por defecto es10
(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
a600
, por defecto es5
(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
deauto_%ip%_%host%_%guid%
Dará como resultado un nombre de agente comoauto_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.
{
"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.
{
"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:
-
NA: Https://na-east.jitterbit.com
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)
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
- 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
- Cree un cuadro de imagen, instale el agente e instale cualquier otro software necesario (monitoreo, utilidades, etc.)
- Detenga el agente
- 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
- Copiar el
register.json
archivo en el mismo directorio que elcredentials.txt
archivo - Eliminar el
credentials.txt
Archivo - 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:
- 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
- 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.
- Detenga el agente y elimine o mueva el
credentials.txt
archivo para el agente - 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
- Coloque el
register.json
archivo en el mismo lugar donde elcredentials.txt
Se encontró el archivo - Iniciar el agente
- 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ó.
- La Management Console Agentes La página debe mostrar el agente recién registrado
- Una vez que el registro se haya realizado correctamente, el agente debe eliminar el
register.json
archivo y mostrar en su lugar uncredentials.txt
archivo