Herramientas de usuario

Herramientas del sitio


clase:daw:daw:tema07

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
clase:daw:daw:tema07 [2026/10/29 19:02] – Runners: los dos workflows de despliegue iguales, solo ejecutan ~/deploy.sh (por SSH o en el propio servidor) claudeclase:daw:daw:tema07 [2026/10/29 19:16] (actual) – [Runners] claude
Línea 121: Línea 121:
   * ''"~/deploy.sh"'': la orden que se le pasa a ''ssh'' detrás del servidor se ejecuta en el servidor, no en el runner. Va entre comillas para que ''~'' sea el //home// del servidor y no el del runner.   * ''"~/deploy.sh"'': la orden que se le pasa a ''ssh'' detrás del servidor se ejecuta en el servidor, no en el runner. Va entre comillas para que ''~'' sea el //home// del servidor y no el del runner.
  
-Solo funciona si el servidor acepta SSH desde Internet. Si está detrás del router del instituto o de la empresa, antes hay que conectar la VPN en otro paso, con más secretos.+Solo funciona si el servidor acepta SSH desde Internet. Si está detrás del router del instituto o de la empresa, antes hay que conectar la VPN en otro paso, con más secretos. O quizás ni se pueda si no hay una VPN
  
 ==== Con un runner propio ==== ==== Con un runner propio ====
Línea 132: Línea 132:
 Un runner se registra en **un** repositorio y solo ejecuta sus workflows. Se instala en el servidor con el usuario que va a desplegar, no con ''root'': Un runner se registra en **un** repositorio y solo ejecuta sus workflows. Se instala en el servidor con el usuario que va a desplegar, no con ''root'':
  
-  - En el repositorio, //Settings → Actions → Runners → New self-hosted runner//, con //Linux// y //x64//. GitHub muestra las órdenes de los pasos siguientes con el token ya puesto. El token caduca en una hora.+  - En el repositorio, //Settings → Actions → Runners → New self-hosted runner//, con //Linux// y //x64//. GitHub muestra las órdenes de los pasos siguientes: se copian de esa página, porque la de ''config.sh'' lleva el token.
   - Descargarlo:<sxh bash>   - Descargarlo:<sxh bash>
 mkdir actions-runner && cd actions-runner mkdir actions-runner && cd actions-runner
Línea 138: Línea 138:
 tar xzf ./actions-runner-linux-x64-2.338.2.tar.gz tar xzf ./actions-runner-linux-x64-2.338.2.tar.gz
 </sxh> </sxh>
-  - Registrarlo en el repositorio. Pregunta el grupo, el nombre y las etiquetas: con //Enter// se queda lo que propone.<sxh bash>+  - Registrarlo en el repositorio. ''--url'' es el repositorio y ''--token'' un **token de registro** que GitHub genera al abrir la página de //New self-hosted runner//: está en la orden ''config.sh'' del apartado //Configure// de esa página. Pregunta el grupo, el nombre y las etiquetas: con //Enter// se queda lo que propone.<sxh bash>
 ./config.sh --url https://github.com/lgonzalezmislata/Facturas --token AXQKZ7MBV3LN2RCYEUHJ4PDTD6Y2W ./config.sh --url https://github.com/lgonzalezmislata/Facturas --token AXQKZ7MBV3LN2RCYEUHJ4PDTD6Y2W
 </sxh> </sxh>
Línea 147: Línea 147:
 </sxh> </sxh>
   - En //Settings → Actions → Runners// tiene que salir como //Idle//.   - En //Settings → Actions → Runners// tiene que salir como //Idle//.
 +
 +<note important>El token de registro **no es un token personal** de GitHub ni hay que crearlo: lo da esa página, solo sirve para registrar el runner una vez y **caduca en una hora**. Si ''config.sh'' dice que el token no vale, se recarga la página y se copia el nuevo.</note>
  
 ==== Configurar un workflow para usar un runner ==== ==== Configurar un workflow para usar un runner ====
Línea 168: Línea 170:
 </sxh> </sxh>
  
-Lo que hace que el job se ejecute en nuestro servidor es ''runs-on: self-hosted''. Los pasos se ejecutan **con el usuario que instaló el runner** y sin terminal para escribir la contraseña de ''sudo'', así que si ''deploy.sh'' usa Docker, ese usuario tiene que estar en el grupo ''docker'' (''sudo usermod -aG docker $USER'' y reiniciar el servicio). Y solo se usa en **repositorios privados**: en uno público, cualquiera que abra un //pull request// puede hacer que ejecute su código en tu servidor.+Lo que hace que el job se ejecute en nuestro servidor es ''runs-on: self-hosted''. Los pasos se ejecutan **con el usuario que instaló el runner**
  
 Más información: Más información:
clase/daw/daw/tema07.1793296927.txt.gz · Última modificación: por claude