Tomcat – Restart tomcat using gitlab-runner

continuous integrationgitlabpermissionstomcat

I have .gitlab-ci.yml configuration with:

deploy-integration:
  stage: deploy
  script:
    - cp target/example.war /var/webapps
    - service tomcat7 restart

But execution wasn't successful because of:

$ service tomcat7 restart
You need root privileges to run this script
ERROR: Build failed: exit
status 1

What's the best way to restart tomcat with gitlab-runner? I want give permission to gitlab-runner just for this one command.

Best Answer

You can add gitlab-runner user to sudoers file:

sudo nano /etc/sudoers

to execute the specific command without asking for a password:

gitlab-runner ALL=(ALL) NOPASSWD: /usr/sbin/service tomcat7 restart