Installing Buildkite Agent on Ubuntu
The Buildkite Agent is supported on Ubuntu versions 18.04 and above using our signed apt repository.
First, add our signed apt repository. The default version of the agent is
stable, but you can get the beta version by using
unstable instead of
stable in the following command, or the agent built from the
main branch of the repository by using
experimental instead of
Next, download the Buildkite PGP key to a directory that is only writable by
root (create the directory before running the following command if it doesn't already exist):
wget -O- https://keys.openpgp.org/vks/v1/by-fingerprint/32A37959C2FA5C3C99EFBC32A79206696452D198 | tee /tmp/buildkite-agent-archive-keyring.gpg && sudo bash -c "cat /tmp/buildkite-agent-archive-keyring.gpg | gpg --dearmor > /usr/share/keyrings/buildkite-agent-archive-keyring.gpg"
Then add the signed source to your list of apt sources:
echo "deb [signed-by=/usr/share/keyrings/buildkite-agent-archive-keyring.gpg] https://apt.buildkite.com/buildkite-agent stable main" | sudo tee /etc/apt/sources.list.d/buildkite-agent.list
And install the Buildkite agent:
sudo apt-get update && sudo apt-get install -y buildkite-agent
Configure your agent token:
sudo sed -i "s/xxx/INSERT-YOUR-AGENT-TOKEN-HERE/g" /etc/buildkite-agent/buildkite-agent.cfg
And then start the agent:
sudo systemctl enable buildkite-agent && sudo systemctl start buildkite-agent
You can view the logs at:
journalctl -f -u buildkite-agent
If you've previously installed keys using
apt-key, move the Buildkite agent key from
/usr/share/keyrings/buildkite-agent-archive-keyring.gpg, making sure that both that file and directory are only writable by
Update your Buildkite agent entries in
deb [signed-by=/usr/share/keyrings/buildkite-agent-archive-keyring.gpg] https://apt.buildkite.com/buildkite-agent stable main
SSH keys should be copied to (or generated into)
/var/lib/buildkite-agent/.ssh/. For example, to generate a new private key which you can add to your source code host:
$ sudo su buildkite-agent $ mkdir -p ~/.ssh && cd ~/.ssh $ ssh-keygen -t rsa -b 4096 -C "firstname.lastname@example.org"
See the Agent SSH Keys documentation for more details.
- Agent Hooks:
- Logs, depending on your system:
journalctl -f -u buildkite-agent(systemd)
- Agent user home:
- SSH keys:
The configuration file is located at
/etc/buildkite-agent/buildkite-agent.cfg. See the configuration documentation for an explanation of each configuration setting.
You can run as many parallel agents on the one machine as you wish by duplicating the upstart service configuration file, for example:
# Disable the default unit sudo systemctl stop buildkite-agent && sudo systemctl disable buildkite-agent # Create a systemd template sudo cp /lib/systemd/system/buildkite-agent.service /etc/systemd/system/buildkite-agent@.service # Now, as many times as you like sudo systemctl enable --now buildkite-agent@1 sudo systemctl enable --now buildkite-agent@2 # Follow them all sudo journalctl -f -u "buildkite-agent@*" # Or one-by-one sudo journalctl -f -u buildkite-agent@2
The Buildkite Agent can be upgraded like any other system package:
sudo apt-get update && apt-get upgrade