[PATCH 91/94] features: add gitlab-runner
Konstantin A. Lepikhov
lakostis at altlinux.ru
Sat Dec 4 16:51:18 MSK 2021
- Add gitlab-runner feature.
---
features.in/gitlab-runner/README | 11 ++++
features.in/gitlab-runner/config.mk | 13 ++++
.../rootfs/image-scripts.d/60-gitlab-install | 61 +++++++++++++++++++
3 files changed, 85 insertions(+)
create mode 100644 features.in/gitlab-runner/README
create mode 100644 features.in/gitlab-runner/config.mk
create mode 100755 features.in/gitlab-runner/rootfs/image-scripts.d/60-gitlab-install
diff --git a/features.in/gitlab-runner/README b/features.in/gitlab-runner/README
new file mode 100644
index 00000000..2e09e84b
--- /dev/null
+++ b/features.in/gitlab-runner/README
@@ -0,0 +1,11 @@
+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
diff --git a/features.in/gitlab-runner/config.mk b/features.in/gitlab-runner/config.mk
new file mode 100644
index 00000000..3bb3e719
--- /dev/null
+++ b/features.in/gitlab-runner/config.mk
@@ -0,0 +1,13 @@
+# 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)
diff --git a/features.in/gitlab-runner/rootfs/image-scripts.d/60-gitlab-install b/features.in/gitlab-runner/rootfs/image-scripts.d/60-gitlab-install
new file mode 100755
index 00000000..259c6d97
--- /dev/null
+++ b/features.in/gitlab-runner/rootfs/image-scripts.d/60-gitlab-install
@@ -0,0 +1,61 @@
+#!/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
--
2.33.0
--Suci8nNDZAk/5tkt
Content-Type: text/x-patch; charset=us-ascii
Content-Disposition: attachment;
filename="0094-use-gitlab-runner-update-README.patch"
More information about the devel-distro
mailing list