Estoy usando GitLab CI para ejecutar pruebas automatizadas en una configuración de Ubuntu 14.04. El ejecutor GitLab CI creó un nuevo usuario, gitlab-runner , que ejecuta todas las pruebas. Ahora estas pruebas incluyen componentes GUI, por lo que necesito una pantalla X, que fuerzo incluso sin una pantalla física a través de ConnectedMonitor y CustomEDID opciones en el xorg.conf .
El problema es que cuando el usuario gitlab-runner inicia una prueba a través de DISPLAY=:0.0 ./runTestApp , recibo un “No se pudo conectar a la pantalla:0.0” error. Puedo solucionarlo iniciando sesión como usuario normal en la estación de trabajo y ejecutando sudo DISPLAY=:0.0 xhost + .
Sin embargo:
- No he encontrado una forma de ejecutar correctamente
xhost +de forma automática al inicio (intenté ponerlo en/etc/rc.local) - La página man dice que
xhost +en realidad es muy inseguro, pero no he descubierto qué hacer en su lugar. Parece que podría tener que ver con una.Xauthorityfile (que tiene mi usuario habitual, perogitlab-runnerno)
¿Cuál es la mejor manera de dar gitlab-runner acceso permanente a la pantalla X?
Respuesta aceptada:
Primero, para otorgar acceso solo al ejecutor Gitlab CI, debe usar un comando más restringido:
xhost +SI:localuser:gitlab-runner
Segundo, /etc/rc.local se ejecuta demasiado pronto para que este comando tenga efecto y, además, debe configurar $DISPLAY para que funcione.
Depende de cómo se inicie su servidor X. Si está utilizando LightDM, creo que puede hacer que funcione agregando la siguiente línea a /etc/lightdm/lightdm.conf :
greeter-setup-script=xhost +SI:localuser:gitlab-runner