Drone

Exec runner installation on ARM board

Hi, Drone support team.
I am trying to install Drone exec runner to Linux ARM board. The idea is to pull release artifacts from GitHub and run extensive tests on the native CPU architecture. I installed Drone on my board following these instructions: https://docs.drone.io/runner/exec/installation/linux/
When trying to run Drone runner I receive a weird error: “drone-runner-exec: error: “service” failed: exec: “service”: executable file not found in $PATH”. Of course, I checked $PATH variable, it contains path to drone-runner-exec.
What can be a problem? May be my approach is wrong? Can you, plaese, help me?
Best Regards
Alexander Genkin

Could you please provide some steps to reproduce? Specifically I am interested to know how far you got in the install process (e.g. which commands worked) and then which command failed.

Brad, thank you for the fast response.
I proceed the next steps:

  1. Downloaded 32 bit ARM version to /opt/drone folder on my board.
  2. Ran install -t /usr/local/bin /opt/drone/drone-runner-exec
  3. Created drone directories:
  • mkdir -p /etc/drone-runner-exec
  • mkdir -p /var/log/drone-runner-exe
  1. Edited drone configuration:
  • vi /etc/drone-runner-exec/config
  1. Added new directories to $PATH:
    PATH=$PATH:/usr/local/bin:/opt/drone
    6.Ran ./drone-runner-exec service install - ok
  2. Ran ./drone-runner-exec service start - failed with error message:
    “drone-runner-exec: error: “service” failed: exec: “service”: executable file not found in $PATH, try --help”
    The board is custom designed Cortex-A8 Linux board.

Hoping this information will help to solve the issue, thank you in advance.

Regards
AlexG

thanks for the additional details.

when you run drone-runner-exec service install it creates a systemd service. I recommend looking for the systemd service file (I do not know the exact file name or location off the top of my head) and making sure everything is in order. The error message would seem to imply the systemd service cannot start because it cannot find the drone-runner-exec binary, so perhaps some additional path configuration is necessary in the systemd service configuration? Or maybe install the binary to a well known location like /bin/ or /usr/local/bin?

Thank you, Brad.
I found out that our ARM board has old Linux version installed, that does not support ‘service’ command.
Is still existing any option to run drone runner, or I should check another one?
Regards

If you are running an old distro that does not support systemd, then you can probably install / schedule the runner manually using whatever init system your distro supports. You can use the following command to start the runner:

drone-runner-exec daemon --envfile=<config>

I can definitely confirm drone-runner-exec daemon works since this is what I use for local testing, however, I unfortunately do not have a ton of experience with linux init systems, so that is something you would have to figure out on your own (or maybe another community member can comment).

Thank you a lot, Brad. It seems starting to work.