yml sitio only oficial example gitlab gitlab-ci gitlab-ci-runner

sitio - Cambiar usuario Gitlab CI Runner



gitlab web (4)

Ejecutando ps aux puedes ver:

/usr/bin/gitlab-ci-multi-runner run --working-directory /home/gitlab-runner --config /etc/gitlab-runner/config.toml --service gitlab-runner --syslog --user gitlab-runner

El servicio se está ejecutando con la opción --user .

Así que vamos a cambiar esto, depende de qué distro. lo estas ejecutando Si es systemd, hay un archivo:

/etc/systemd/system/gitlab-runner.service:

[Service] StartLimitInterval=5 StartLimitBurst=10 ExecStart=/usr/bin/gitlab-ci-multi-runner "run" "--working-directory" "/home/gitlab-runner" "--config" "/etc/gitlab-runner/config.toml" "--se

Bingo, cambiemos este archivo ahora:

gitlab-runner uninstall gitlab-runner install --working-directory /home/ubuntu --user ubuntu

reinicie la máquina o vuelva a cargar el servicio (es decir, systemctl daemon-reload ), y listo!

Actualmente, cuando comienzo una compilación en GitlabCI, se ejecuta bajo el usuario gitlab-runner. Quiero cambiarlo de usuario interno de la empresa. No encontré ningún parámetro para el /etc/gitlab-runner/config.toml que es resolver eso.

Mi configuración actual:

concurrent = 1 [[runners]] name = "deploy" url = "" token = "" executor = "shell"


Solo para futuras referencias, estaba haciendo una prueba con una versión clonada de mi configuración, si el nombre de dominio no apunta al servidor con el que está trabajando, gitlab podría considerar a sus corredores fuera de línea. Si tiene otra instancia (copiada) ejecutándose en la ip a la que apunta el dominio y no hay un bloqueo de firewall, el comando de verificación gitlab-runner dirá que sus corredores están vivos.

una solución podría ser agregar su dominio que apunta a 127.0.0.1 a su archivo de hosts. Tendrás que reiniciar tu instancia de gitlab y tus corredores.


Tenga en cuenta que al instalar con un usuario específico (--usuario), cada vez que actualice, volverá al script original de systemd y, por lo tanto, volverá a utilizar el usuario gitlab-runner.

para mantener el cambio de usuario en las actualizaciones, usando las modificaciones de systemd (centos7) puede usar estos pasos (asumiendo que el servicio está en /etc/systemd/system/gitlab-runner.service ):

  1. Cree un directorio /etc/systemd/system/gitlab-runner.service.d .
  2. Cree un archivo /etc/systemd/system/gitlab-runner.service.d/exec_start.conf , con contenido:

    [Service] ExecStart= ExecStart=/usr/lib/gitlab-runner/gitlab-runner "run" "--working-directory" "/home/ubuntu" "--config" "/etc/gitlab-runner/config.toml" "--service" "gitlab-runner" "--syslog" "--user" "ubuntu"

  3. Ejecutar systemctl daemon-reload


Ahora para comprobar que esto está funcionando, puedes hacer esto:

  1. Reinstale el paquete GitLab Runner, gitlab-runner uninstall y luego gitlab-runner install

  2. Compruebe ps aux | grep gitlab ps aux | grep gitlab y confirme que el usuario correcto está siendo utilizado

fuente: https://gitlab.com/gitlab-org/gitlab-runner/issues/3675


[RESPUESTA DEPRECADA]

Encontré una solución, que no es el mejor pactrice sino que la resolví. Necesito usar el ejecutor ssh y ssh para localhost. Es necesario agregar gitlab-runner id_rsa.pub a los authorized_keys del usuario que desea usar. Ahí está mi código extendido:

concurrent = 1 [[runners]] name = "deploy" url = "" token = "" executor = "ssh" [runners.ssh] user = "user" host = "localhost" port = "22" identity_file = "/home/gitlab-runner/.ssh/id_rsa"