How to setup gitlab runner with ssh executor for upload job artifacts?

How to setup correct runner set up at our environment?

Describe your question in as much detail as possible:

  • I want to resolve this error message “Missing gitlab-runner. Uploading artifacts is disabled”

2021-11-01_11h18_17

  • I have found that we need to install gitlab-runner also on the ssh target host. But not sure how to install it.

  • Our environment

    • Self host Gitlab server (ec2 on aws)
    • Self host Gitlab runner server (another ec2 on aws)
    • Self host web server (on-premise)
  • I have found that we need to install gitlab-runner also on the ssh target host.

  • We have installed gitlab-runner on our Gitlab runner server with ssh executor, and execute jobs via ssh on the web server, but situation doesn’t changed.

  • Question is, do we need to install gitlab-runner on our web server with ssh executor? If so, what is the correct settings?

  • According to out job configuration below, do we need to have two gitlab-runner on gitlab-runner server and web gitlab-runner which has same tags?

  • What version are you on? Are you using self-managed or GitLab.com?

    • GitLab ( GitLab Community Edition [13.6.7] ):
    • Runner (gitlab-runner 11.9.2):
  • Add the CI configuration from .gitlab-ci.yml and other configuration if relevant (e.g. docker-compose.yml)

job:
 script:
  - cd /home/projectname
#  - composer install --dev
  - git pull
  - cd /home/projectname/tests/
  - pwd
  - whoami
  - /home/projectname/vendor/bin/phpunit --version
  - /home/projectname/vendor/bin/phpunit --log-junit report.xml
 artifacts:
   when: always
   expire_in: 1 day
   reports:
     junit: report.xml
 tags:
  - tagname
 only:
  - branchname

If I missed any information, please let me know!

Thanks for taking the time to be thorough in your request, it really helps! :blush:

1 Like

Does anyone know how to solve this?
For some reason, I need to explain what to do to the responsible for the server, so that I can’t try it easily.

Our configuration is like below.

GitLab server ↔ GitLab runner Server → Web server
We already have ssh executor on GitLab runner Server and works fine but not for uploading artifacts.

Where to add ssh executor?
On the Web server to the GitLab server or GitLab runner Server?
Is the tag for new runner should be same or make new job that only has artifacts?