Runners en tus máquinas
Instala, actualiza y comprueba un runner en tu propia máquina, incluida la pantalla virtual en Linux.
Un runner es la máquina que aloja el navegador, el dispositivo o el cliente HTTP que usa una ejecución. En los planes de autoservicio, todas las ejecuciones usan los runners de Autonomy y no hay nada que instalar.
En Enterprise, las ejecuciones también pueden realizarse en tus propias máquinas: dentro de tu red, junto a un entorno privado. Esta página es para las personas que se ocupan de esas máquinas.
Qué necesitas
| Host | Web y API | Android | iOS (próximamente) |
|---|---|---|---|
| Linux (x86_64 o arm64) | Sí | Con el Android SDK y un emulador o dispositivo | No |
| macOS (Intel o Apple silicon) | Sí | Con las herramientas de Android | Con Xcode y un simulador de iOS |
- Solo HTTPS saliente. El runner se conecta a Autonomy; nada se conecta a él.
- En Linux, un emulador de Android necesita un host x86_64 con KVM (
/dev/kvm). Un host con 4 vCPU y 8 GB de RAM ejecuta un emulador. - Xcode y los simuladores de iOS no se instalan automáticamente. Son para las pruebas en iOS, que llegarán pronto.
Autonomy registra tu runner para tu organización y te envía tres cosas: la URL de instalación, un token de instalación y un token del runner (rn_…). El token del runner se muestra una sola vez. Guárdalo como una contraseña.
Instalación
Ejecuta esto con el usuario con el que se ejecutará el runner:
export AUTONOMY_INSTALL_TOKEN="<install token>"
curl -fsSL "<install URL>/install.sh" \
| bash -s -- --yes --base-url "<install URL>"El instalador configura el entorno de ejecución, el navegador y las herramientas de dispositivo, y el comando autonomy-labs en ~/.local/bin. En Linux también instala Xvfb, la pantalla virtual que necesita el navegador (ver más abajo).
Después, pon el token del runner y los ajustes que te envió Autonomy en ~/.autonomy/labs/.env, y haz que el archivo sea privado:
chmod 600 ~/.autonomy/labs/.env
autonomy-labs doctorMantenerlo en marcha
En Linux, ejecútalo como servicio:
autonomy-labs service install
autonomy-labs service start
autonomy-labs service status
autonomy-labs logsEn macOS, ejecuta autonomy-labs --poll desde un LaunchAgent con el mismo usuario propietario de ~/.autonomy/labs.
Comprobar un runner
autonomy-labs doctor comprueba todo lo que necesita una ejecución y termina con 0 cuando el runner está listo. Añade --json para obtener un informe legible por máquina. En Linux sin pantalla, comprueba virtual display (Xvfb) y después que un headed browser opens a page.
autonomy-labs --version muestra el build instalado.
Pantalla virtual en Linux
Las ejecuciones usan Chrome con interfaz gráfica (headed), porque muchos sitios bloquean los navegadores headless como si fueran bots. En un servidor Linux sin pantalla, el runner inicia su propia pantalla virtual con Xvfb cuando DISPLAY no está definido. Si el host ya tiene una pantalla, el runner la usa.
El instalador instala Xvfb con tu gestor de paquetes (apt-get, dnf, pacman o zypper). Si no puede, muestra el comando que debes ejecutar como root. Hasta que Xvfb esté instalado, el runner rechaza las ejecuciones web en lugar de aceptarlas y fallar:
sudo apt-get install -y xvfb
autonomy-labs service restartActualizar
autonomy-labs updateLa actualización espera a que terminen la ejecución en curso y su limpieza antes de sustituir el runner. Nunca interrumpe una ejecución. Después reinstala el navegador y las herramientas de dispositivo y vuelve a ejecutar doctor. Para actualizar solo las herramientas, ejecuta autonomy-labs --update-tools.
Cuando un runner se detiene
| Código de salida | Significado |
|---|---|
0 | Se detuvo a propósito, por ejemplo para una actualización. |
75 | Un problema temporal. El servicio lo reinicia. |
78 | No puede trabajar hasta que alguien arregle el host: un token o unos ajustes incorrectos, falta de pantalla o de navegador, o una actualización sin terminar. El servicio no lo reinicia en bucle. Ejecuta autonomy-labs doctor para ver qué pasa. |
Una ejecución que un runner toma pero no puede comenzar por un problema en el runner termina como Couldn't start, no se factura y dice "This run couldn't start because the runner had a problem. Run it again."
Los propietarios y administradores pueden activar Infrastructure alert en Organization → Notifications para recibir avisos sobre problemas de capacidad de runners y dispositivos.
¿No lo encontraste?