SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы

Назад

gitlab-runner: Установка, настройка и обслуживание


Метки: gitlab-runner gitlab docker docker registry centos fedora dnf nftables openssl wget chmod chmod

Установка

CentOS/Fedora

wget -O /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64"
chmod +x /usr/local/bin/gitlab-runner

Создаём нужные группы и нужных пользователей

groupadd gitlab-runner
useradd -m -d /home/gitlab-runner -s /bin/bash -g gitlab-runner -m gitlab-runner

/etc/systemd/system/gitlab-runner.service

[Unit]
Description=GitLab Runner
ConditionFileIsExecutable=/usr/local/bin/gitlab-runner
 
After=syslog.target network.target 

[Service]
StartLimitInterval=5
StartLimitBurst=10
ExecStart=/usr/local/bin/gitlab-runner "run" "--working-directory" "/home/gitlab-runner" "--config" "/etc/gitlab-runner/config.toml" "--service" "gitlab-runner" "--user" "gitlab-runner"

Restart=always

RestartSec=120
EnvironmentFile=-/etc/sysconfig/gitlab-runner

[Install]
WantedBy=multi-user.target

Принимаем сервис

systemctl daemon-reload
systemctl enable gitlab-runner
systemctl start gitlab-runner

Настройка

gitlab-runner register

Межсетевой экран

Проброс порта

cat << EOF | nft -f -
table ip nat {
    chain prerouting { 
        type nat hook  prerouting priority -100;
        policy accept;

      ip daddr 10.10.10.10 tcp dport { 8093 } dnat to 192.168.0.10:8093 comment "Accept gitlab-runner on port 8093";
    }
}
EOF

docker-registry

Авторизация

printf "my_username:my_password" | openssl base64 -A

/etc/gitlab-runner/config.toml

[[runners]]
executor = "docker"
environment = ["DOCKER_AUTH_CONFIG={\"auths\": {\"registry.specialistoff.net\": {\"auth\": \"bXlfdXNlcm5hbWU6bXlfcGFzc3dvcmQ=\"}}}"]

Обслуживание

Очистка кеш

docker system prune --volumes -af --filter label=com.gitlab.gitlab-runner.managed=true

Ссылки