c2sr-testbed-user-docs 0.0.5 Help

setup-github-runner

This guide is for users who wish to set up our on-premise testbed using Jetson edge devices. By following this document, you will correctly configure a custom GitHub runner that executes Ansible playbooks locally to set up your testbed.

Before you start

Make sure that:

  • You have physical access to the Jetson edge devices and that they are connected on the same network.

  • You have administrative access to register and manage a GitHub self-hosted runner for your repository.

  • The devices have the ansible user account created, ensuring operations from Ansible remain trackable.

  • The runner has password less sudo on the ansible user and has access to the devices via ssh without password.

Adding ssh access to the nodes

These steps are pre-req to setting up the GitHub runner.

  1. From the GitHub runner, create an ssh key specifically for ansible to use.

    ssh-keygen -t rsa -b 4096 -f ~/.ssh/testbed_ansible_user -C "git_runner"
  2. The nodes (worker and control) plane must have a user named ansible, this helps keep the operations from ansible trackable.

  3. Copy the newly created id to each device expected to be on the cluster;

    ssh-copy-id -i ~/.ssh/testbed_ansible_user ansible@<device_ip>
  4. Edit the config file to set up access.

    nano ~/.ssh/config
  5. Paste in the template;

    # <comment device name> Host <device name> Hostname <device ip> User ansible IdentityFile ~/.ssh/testbed_ansible_user IdentitiesOnly yes

Setting up a custom GitHub runner

  1. Follow GitHub docs to setup a runner.

  2. github runner tags for ANL

    self-hosted Linux X64 anl
  3. The commit message must contain [anl] for the actions to trigger from the anl custom runner.

Last modified: 20 March 2025