Sto usando GitLab CI per eseguire test automatici su una configurazione di Ubuntu 14.04. Il runner GitLab CI ha creato un nuovo utente, gitlab-runner
, che esegue tutti i test. Ora questi test includono componenti della GUI, quindi ho bisogno di un display X, che impongo anche senza un display fisico tramite ConnectedMonitor
e CustomEDID
opzioni in xorg.conf
.
Il problema è che quando un test viene avviato dall'utente gitlab-runner
tramite DISPLAY=:0.0 ./runTestApp
, ricevo un messaggio "Impossibile connettersi per visualizzare :0.0" errore. Posso risolverlo accedendo come utente normale sulla workstation ed eseguendo sudo DISPLAY=:0.0 xhost +
.
Tuttavia:
- Non ho trovato un modo per eseguire correttamente
xhost +
all'avvio (ho provato a inserirlo in/etc/rc.local
) - La pagina man dice che
xhost +
è in realtà molto insicuro, ma non ho scoperto cosa fare invece. Sembra che possa avere a che fare con un.Xauthority
file (che il mio utente normale ha, magitlab-runner
no)
Qual è il modo migliore per fornire gitlab-runner
accesso permanente al display X?
Risposta accettata:
Innanzitutto, per consentire l'accesso solo al runner Gitlab CI, è necessario utilizzare un comando più limitato:
xhost +SI:localuser:gitlab-runner
Secondo, /etc/rc.local
viene eseguito troppo presto perché questo comando abbia effetto e, inoltre, è necessario impostare $DISPLAY
affinché funzioni.
Dipende da come viene avviato il tuo server X. Se stai usando LightDM, penso che tu possa farlo funzionare aggiungendo la seguente riga a /etc/lightdm/lightdm.conf
:
greeter-setup-script=xhost +SI:localuser:gitlab-runner