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
ansibleuser 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.
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"The nodes (worker and control) plane must have a user named
ansible, this helps keep the operations from ansible trackable.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>Edit the config file to set up access.
nano ~/.ssh/configPaste 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
Follow GitHub docs to setup a runner.
github runner tags for ANL
self-hosted Linux X64 anlThe commit message must contain
[anl]for the actions to trigger from the anl custom runner.