Ubuntu
apt-get install vim wget httpie curl jq gh nodejs npm maven openjdk-21-jdk-headless protobuf-compiler rpm unzipInstall NPM packages
sudo npm install -g sonar-scannercurl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/installfor pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
apt-get update
apt-get install ca-certificates
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
curl -fsSL https://keys.openpgp.org/vks/v1/by-fingerprint/32A37959C2FA5C3C99EFBC32A79206696452D198 | sudo gpg --dearmor -o /usr/share/keyrings/buildkite-agent-archive-keyring.gpg
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
sudo apt-get update && sudo apt-get install -y buildkite-agentAt this point we need to edit the buildkite-agent.cfg
token="%%BuildKite-Token%%"
name="%hostname-%spawn"
spawn=2
tags="queue=java_build_queue,tag=java"
build-path="/var/lib/buildkite-agent/builds"
hooks-path="/etc/buildkite-agent/hooks"
plugins-path="/etc/buildkite-agent/plugins"You will then need to edit the buildkite maven settings /var/lib/buildkite-agent/.m2/settings.xml
<settings>
<servers>
<server>
<id>mapsmessaging.io</id>
<username>matthew.buckton</username>
<password>*****************</password>
</server>
<server>
<id>maps_release</id>
<username>buildkite</username>
<password>*****************</password>
</server>
<server>
<id>maps_snapshots</id>
<username>buildkite</username>
<password>*****************</password>
</server>
<server>
<id>maps_test_libs</id>
<username>buildkite</username>
<password>*****************</password>
</server>
</servers>
<profiles>
<profile>
<id>matthew.buckton@mapsmessaging.io</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<gpg.executable>gpg2</gpg.executable>
<gpg.passphrase>*****************</gpg.passphrase>
</properties>
</profile>
</profiles>
</settings>wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install consul
Edit /etc/consul.d/consul.hcl and ensure
server = true
data_dir = "/opt/consul"
client_addr = "127.0.0.1"
advertise_addr = "127.0.0.1"
bootstrap_expect=1
retry_join = ["127.0.0.1"]Finally, the buildkite agent requires sudo at times for the build so need to
visudo
buildkite-agent ALL=(ALL) NOPASSWD: ALL
apt-get install softhsm2
softhsm2-util --init-token --slot 0 --label "testToken"