Commit 4bcf7a17 authored by Konstantin A. Lepikhov's avatar Konstantin A. Lepikhov Committed by Anton Midyukov

features: add gitlab-runner

- Add gitlab-runner feature.
parent a0068021
This feature installs gitlab-runner according official guide [1]
The following envs can be altered:
GL_USER - define default gitlab-runner username ('gitlab-runner' by default)
GL_SSH_KEY - ssh pubkey added to authorized_keys of GL_USER
NOTE: this feature depends on network enablement in hasher (see [2] for details)
1. https://docs.gitlab.com/runner/install/linux-manually.html
2. https://bugzilla.altlinux.org/34596
# WARNING: the variable values are stored in build config/log!
use/gitlab-runner:
@$(call add_feature)
@$(call add,THE_PACKAGES,shadow-utils passwd curl)
@$(call xport,GL_USER)
@$(call xport,GL_SSH_KEY)
# some presets
# USERS variable chunk format is "login:passwd:admin:sudo"
# GROUPS are just stashed there to include USERS logins created
# GL_SSH_KEY should be changed accordingly
use/gitlab-runner/defuser: use/gitlab-runner
@$(call add,GL_USER,gitlab-runner)
#!/bin/sh -efu
gl_url="https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-"
add_user() {
useradd -c 'Gitlab Runner' -m "$1"
[ -z "$GLOBAL_GL_SSH_KEY" ] || echo "$GLOBAL_GL_SSH_KEY" >> /home/"$1"/.ssh/authorized_keys
usermod -L "$1" ||
echo "*** failed to add user '$1'"
}
case "$GLOBAL_ARCH" in
x86_64)
gl_url="${gl_url}amd64"
;;
i586)
gl_url="${gl_url}386"
;;
armh)
gl_url="${gl_url}arm"
;;
aarch64)
gl_url="${gl_url}arm64"
;;
ppc64le)
gl_url="${gl_url}ppc64le"
;;
*)
echo "arch $GLOBAL_ARCH not supported!"
exit 1
;;
esac
if [ -n "$GLOBAL_GL_USER" ]; then
add_user "$GLOBAL_GL_USER"
echo 'nameserver 8.8.8.8' >> /etc/resolv.conf
curl -L --output /usr/local/bin/gitlab-runner "$gl_url"
chmod +x /usr/local/bin/gitlab-runner
cat > /lib/systemd/system/gitlab-runner.service << EOF
[Unit]
Description=GitLab Runner
ConditionFileIsExecutable=/usr/local/bin/gitlab-runner
After=syslog.target network.target
[Service]
StartLimitInterval=5
StartLimitBurst=10
ExecStart=/usr/bin/gitlab-runner "run" "--working-directory" "/home/$GLOBAL_GL_USER" "--config" "/etc/gitlab-runner/config.toml" "--service" "gitlab-runner" "--user" "$GLOBAL_GL_USER"
Restart=always
RestartSec=120
EnvironmentFile=-/etc/sysconfig/gitlab-runner
[Install]
WantedBy=multi-user.target
EOF
systemctl enable gitlab-runner
fi
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment