83 lines
2.3 KiB
Bash
83 lines
2.3 KiB
Bash
#!/bin/bash
|
|
# Copyright (c) 2022 fithwum
|
|
# All rights reserved
|
|
set -eu
|
|
|
|
USER=fithwum
|
|
FILE=config.yaml
|
|
|
|
# openssh
|
|
apt-get install openssh-client openssh-server
|
|
|
|
# docker setup
|
|
apt-get remove -y $(dpkg --get-selections docker.io docker-compose docker-doc podman-docker containerd runc | cut -f1)
|
|
|
|
# Add Docker's official GPG key:
|
|
apt-get update
|
|
apt-get install ca-certificates curl
|
|
install -m 0755 -d /etc/apt/keyrings
|
|
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
|
|
chmod a+r /etc/apt/keyrings/docker.asc
|
|
|
|
# Add the repository to Apt sources:
|
|
tee /etc/apt/sources.list.d/docker.sources <<EOF
|
|
Types: deb
|
|
URIs: https://download.docker.com/linux/debian
|
|
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
|
|
Components: stable
|
|
Signed-By: /etc/apt/keyrings/docker.asc
|
|
EOF
|
|
|
|
apt-get update
|
|
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
|
|
|
# user
|
|
adduser $USER docker
|
|
|
|
# runner install
|
|
cd /usr/local/bin/
|
|
|
|
wget https://gitea.com/gitea/act_runner/releases/download/v0.2.13/act_runner-0.2.13-linux-amd64
|
|
mv act_runner-*-linux-amd64 act_runner
|
|
chmod +x act_runner
|
|
|
|
./act_runner generate-config | tee $FILE > /dev/null
|
|
chown fithwum:docker act_runner
|
|
chown fithwum:docker $FILE
|
|
|
|
sed -i '/^ labels:/,/^$/c\
|
|
labels:\
|
|
- "vm-ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest"\
|
|
- "vm-ubuntu-22.04:docker://docker.gitea.com/runner-images:ubuntu-22.04"\
|
|
- "vm-ubuntu-20.04:docker://docker.gitea.com/runner-images:ubuntu-20.04"\
|
|
- "vm-docker-build:docker://catthehacker/ubuntu:custom-latest-20240215"\
|
|
- "vm-docker-build2:docker://catthehacker/ubuntu:act-latest"\
|
|
' $FILE
|
|
|
|
./act_runner --config $FILE register
|
|
|
|
./act_runner register --no-interactive --instance <instance_url> --token <registration_token> --name <runner_name>
|
|
|
|
tee /etc/systemd/system/act_runner.service <<EOF
|
|
[Unit]
|
|
Description=Gitea Actions runner
|
|
Documentation=https://gitea.com/gitea/act_runner
|
|
After=docker.service
|
|
|
|
[Service]
|
|
ExecStart=/usr/local/bin/act_runner daemon --config /usr/local/bin/$FILE
|
|
ExecReload=/bin/kill -s HUP \$MAINPID
|
|
WorkingDirectory=/usr/local/bin
|
|
TimeoutSec=0
|
|
RestartSec=10
|
|
Restart=always
|
|
User=$USER
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
|
|
# load the new systemd unit file
|
|
sudo systemctl daemon-reload
|
|
# start the service and enable it at boot
|
|
sudo systemctl enable act_runner --now |