Как удалить gitlab runner
Перейти к содержимому

Как удалить gitlab runner

  • автор:

Как удалить gitlab runner

You can uninstall or removes an installed gitlab-runner package itself from Debian 9 (Stretch) through the terminal,

$ sudo apt-get remove gitlab-runner
Uninstall gitlab-runner including dependent package

If you would like to remove gitlab-runner and it’s dependent packages which are no longer needed from Ubuntu,

$ sudo apt-get remove --auto-remove gitlab-runner
Use Purging gitlab-runner

If you use with purge options to gitlab-runner package all the configuration and dependent packages will be removed.

$ sudo apt-get purge gitlab-runner

If you use purge options along with auto remove, will be removed everything regarding the package, It’s really useful when you want to reinstall again.

$ sudo apt-get purge --auto-remove gitlab-runner

How do I delete/unregister a GitLab runner

I have registered a personal GitLab runner several months ago, which I no longer use. How do I completely delete it so that it does not show up on my GitLab CI/CD settings page?

asked Mar 13, 2021 at 16:40
18.3k 11 11 gold badges 79 79 silver badges 90 90 bronze badges

9 Answers 9

  1. List runners to get their tokens and URLs:
sudo gitlab-runner list 
sudo gitlab-runner verify --delete -t YMsSCHnjGssdmz1JRoxx -u http://git.xxxx.com/ 

5,063 17 17 gold badges 34 34 silver badges 42 42 bronze badges
answered Aug 2, 2021 at 6:55
Serge Iroshnikov Serge Iroshnikov
779 1 1 gold badge 6 6 silver badges 17 17 bronze badges
For this you will also need to remove it from your CI/CD page on Gitlab first
Nov 7, 2021 at 6:45

Even though the command executes successfully, the runner is still in /etc/gitlab-runner/config.toml , so that seemingly did nothing. The other answer here that suggests a gitlab-runner unregister command works for me tho.

Aug 31, 2022 at 11:56

Get your runner token and id

First, go to the GitLab settings page and find the token (e.g. 250cff81 in the image below) and the id (e.g. 354472 in the image below) of the GitLab runner which you wish to delete.

enter image description here

Use the gitlab-runner CLI to unregister the runner

If you have access to the machine which was used to register the GitLab runner, you can unregister the runner using the following command, where you replace with the token of your GitLab runner (e.g. 250cff81 in the example above).

gitlab-runner unregister --url https://gitlab.org/ --token

Use the GitLab API to unregister the runner

If you no longer have access to the machine which was used to register the runner, or if the runner is associated with multiple projects, you can use the following Python script. Set RUNNER_ID to the id of your runner (e.g. 354472 in the example above) and GITLAB_AUTH_TOKEN to a GitLab token which you can generate from your profile page.

import os import requests GITLAB_AUTH_TOKEN = . RUNNER_ID = . headers = r = requests.get(f"https://gitlab.com/api/v4/runners/", headers=headers) runner_data = r.json() for project in runner_data.get("projects", []): r = requests.delete( f"https://gitlab.com/api/v4/projects//runners/", headers=headers, ) if not r.ok: print("Encountered an error deleting runner from project:", r.json()) r = requests.delete(f"https://gitlab.com/api/v4/runners/", headers=headers) if not r.ok: print("Encountered an error deleting runner:", r.json()) 

Настройка, использование GitLab CI/CD

GitLab – это программный инструмент, созданный с целью хранения и управления репозиториями Git. Концепция непрерывной интеграции (Continuous Integration — CI) на примере использования GitLab CI/CD. Сервис Gitlab предоставляет возможность получить не только бесплатный приватный GIT репозиторий, но и бесплатный CI/CD.

Для самостоятельной установки ПО GitLab на свой сервер используйте ссылки официальную документацию. Основной функционал GitLab:

Планирование и управление разрабатываемыми проектами;
Создание, просмотр и управление кодом и данными проектов;
Проверка кода благодаря автоматическому тестированию и отчетности;
Мониторинг ресурсов и просмотр метрик;
Использование готовых шаблонов моделей.

На этом список функционала не заканчивается. Это лишь основная часть, необходимая для понимания важности использования этого ПО в проектной деятельности. В этой статье будет рассмотрена настройка GitLab CI CD для тестового проекта.

1. Установка GitLab Runner

Runner в GitLab позволяют автоматизировать рутинные задачи при обновлении проектов в репозитории. Для того чтобы у GitLab был доступ к серверу, на этот сервер необходимо установить службу gitlab-runner. Runner будет забирать новые исходники с GitLab, выполнять с ними нужные действия и разворачивать на сервере.

Рассмотрим установку Runner для Debian/Ubuntu/Mint, в моем случае Debian 11 (bullseye):

curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash apt install gitlab-runner

Будет добавлен пользрватель gitlab-runner

gitlab-runner:x:999:999:GitLab Runner:/home/gitlab-runner:/bin/bash

Проверим состояние раннера и если нужно добавим runner в автозагрузку и сразу запустим

systemctl status gitlab-runner systemctl enable --now gitlab-runner

Схема работы GitLab Runner

Схема как работает Git раннер:

2. Регистрация GitLab Runner

В репозитории на GitLab, для которого вы хотите настроить CI, выберите пункт меню Settings подменю CI/CD. Возле пункта Runners нажмите кнопку Expand.

Общие раннеры от GitLab можно отключить для того чтобы они вам не мешали и не забирали задачи у вашего раннера. Для этого под надписью Enable shared runners for this project установите значение выключателя в положение выключено.

Необходимая информация находится в левой части окна, в разделе Specific runners. Тут вам надо узнать URL сервиса и токен авторизации, с которыми нужно регистрировать раннер.

На сервер, на котором был установлен runner и выполните команду для регистрации раннера в Gitlab:

sudo gitlab-runner register

Программа запросит URL , token, которые вы узнали на GitLab в разделе Specific runners и попросит ввести описание и теги. Теги будут использоваться в будущем для того чтобы отправлять этому раннеру задания. Далее останется только выбрать способ выполнения команд. Для того чтобы просто запускать командную оболочку можно выбрать shell.

Для того чтобы убедится, что всё настроено и работает нормально выполните такую команду:

sudo gitlab-runner verify . Verifying runner. is alive

Она должна показать сообщение is_alive. Настройка gitlab runner на сервере завершена.

Для удаления зарегистрированного раннера используйте команду:

gitlab-runner verify --delete --url https://gitlab.com/ --token H2RRJd

3.1 Настройка GitLab Runner в Linux

Скорей всего у вас раннер работать не будет. GitLab Runner при запуске в качестве службы запускает все сценарии оболочки от имени непривилегированного пользователя: gitlab-runner. Если вы хотите использовать команды системного уровня, например, apt-get вам нужно выполнить их с помощью sudo.

Зададим нужные привилегии пользователю gitlab-runner — добавим его в группу sudo и разрешим запуск команд без пароля:

usermod -aG sudo gitlab-runner

и меняем строки в файле /etc/sudoers, используя команду visudo

# visudo #%sudo ALL=(ALL:ALL) ALL %sudo ALL=(ALL) NOPASSWD:ALL

Если нужно ограничит пользователя gitlab-runner в запуске команд, смотрите пример ниже

gitlab-runner ALL= (root) NOPASSWD: /usr/bin/mkdir gitlab-runner ALL= (root) NOPASSWD: /usr/bin/touch

3.2 Настройка GitLab Runner вебинтерфейс

Обновите страницу настроек CI на GitLab. Новый раннер должен появится в списке и кружок возле него должен быть зелёным.

Кликните по значку карандаша (Edit) возле раннера и выставьте такие настройки:

Active — должно быть включено, иначе раннер не сможет выполнять задания;

Protected — должно быть включено, для того чтобы раннер брал задания из всех веток, а не только защищённых;

Run untagged jobs — должно быть включено, позволяет раннеру брать задачи без тегов;
Lock to current projects — если включено, этот раннер доступен только для этого проекта.

Все остальные опции можно не трогать.

4. Создание gitlab-ci.yml

В файле gitlab-ci.yml описываются все задачи, а также команды, которые gitlab-runner будет выполнять на сервере. Вы можете создать его вручную или же, если такого файла ещё нет, то нажмите кнопку Editor в меню CI/CD вашего проекта.

Файл в формате YAML, поэтому отступы перед значениями очень важны.

stages: - название_этапа_1 - название_этапа_2 название_задачи_1-job stage: название_этапа_1 script: - команда_1 - команда_2

Раздел stages описывает этапы разворачивания приложения и очередность их выполнения. Затем описываются задачи, которые будут выполняться в рамках каждого этапа. У задачи должен быть указан этап: stage и script со списком команд, которые будут выполняться на сервере.

Во время разворачивания gitlab-runner автоматически создает на сервере (по умолчанию в домашней папке) директорию build, клонирует туда свежие исходники проекта и переходит в папку с исходниками. А дальше с помощью команд в секции script вы можете делать всё, что нужно с этими исходниками.

Сохраните этот файл. Для этого пролистайте вниз страницы и нажмите кнопку Commit Changes.

Простой пример gitlab-ci.yml создающий файлы. Параметр only жестко задает для какой ветки, какой код должен выполняться.

stages: # List of stages for jobs, and their order of execution - master - develop - staging master-job: # This job runs in the build stage, which runs first. stage: master only: - master script: - echo "Compiling the code. " - echo `date +'%m/%d/%Y'` >> /tmp/master777 - echo "Compile complete." staging-job: # This job runs in the deploy stage. stage: staging # It only runs when *both* jobs in the test stage complete successfully. only: - staging script: - echo "Deploying application. " - echo `date +'%m/%d/%Y'` >> /tmp/staging - echo "Application successfully deployed." develop-job: stage: develop only: - develop script: - echo "Deploying application. " - echo `date +'%m/%d/%Y'` >> /tmp/develop - echo "Application successfully deployed."

5. Проверка работы Pipeline

Если всё было сделано правильно, то ваш раннер получит эту задачу, склонирует исходники. Для того чтобы убедится что это всё произошло, в боковом меню выберите значок ракеты (CI/CD) а затем Pipelines.

runner в gitlab ci/cd

Здравствуйте. Есть кабинет в gitlab.com . Хочу опробовать gitlab CI/CD. В интернете пишут, что взаимодействие между серверами и gitlab CI/CD происходит через runners, но я не могу найти где его настроить в gitlab. В интернете есть инструкции, но там все просто, жмем на gitlab CI/CD -> выбираем runner и настраиваем. Но у меня нет runner в CI/CD. Куда копать? Так же интересует, если не через runner, то как тогда автоматизировать выгрузку из репозиториев на сайт? Заранее спасибо.

sasha198407 ★
10.08.21 10:14:29 MSK

Какая-то каша, Саша.

Ты раннер хочешь свой или их? Если свой, то что ты там жмёшь, если они консольными командами регистрируются?

Читай документацию, формулируй, что ты хочешь. Затем следуй ей. Где застрянешь — пиши, но подробно, со всеми предыдущими выкладка и, конкретными ошибками и т.п.

А так это пока «хочу начать курить, купил прикуриватель — он холодный, покупаю машину — ошибка какая-то. а если не курить, то так тогда быть круче всех?».

t184256 ★★★★★
( 10.08.21 10:28:57 MSK )
Ответ на: комментарий от t184256 10.08.21 10:28:57 MSK

если верить той инструкции, ссылку на которую Вы скинули, то необходимо

For a shared runner, have an administrator go to the GitLab Admin Area and click Overview > Runners

For a group runner, go to Settings > CI/CD and expand the Runners section

For a project-specific runner, go to Settings > CI/CD and expand the Runners section

но нет у меня нет нигде Runners

sasha198407 ★
( 10.08.21 10:39:01 MSK ) автор топика
Ответ на: комментарий от sasha198407 10.08.21 10:39:01 MSK

У Settings есть CI/CD? https://gitlab.com/sasha198407/exampleprojectname/-/settings/ci_cd В нем, между Protected environments и Artifacts, есть секция Runners?

t184256 ★★★★★
( 10.08.21 10:47:39 MSK )
Ответ на: комментарий от t184256 10.08.21 10:47:39 MSK

Нашел. Спасибо. Смотрел не там

sasha198407 ★
( 10.08.21 10:48:52 MSK ) автор топика
Ответ на: комментарий от t184256 10.08.21 10:47:39 MSK

В процессе ковыряния возник вопрос, а можно ли удалить лишние пайплайны в CI/CD -> pipelines ?

sasha198407 ★
( 10.08.21 14:50:12 MSK ) автор топика
Ответ на: комментарий от sasha198407 10.08.21 14:50:12 MSK

t184256 ★★★★★
( 10.08.21 16:44:41 MSK )
Ответ на: комментарий от t184256 10.08.21 16:44:41 MSK

Спасибо за разрешение. Но кнопки Delete нет. Retry есть, а Delete нет. Версия GitLab Enterprise Edition 14.2.0-pre

sasha198407 ★
( 10.08.21 16:56:11 MSK ) автор топика
Последнее исправление: sasha198407 10.08.21 16:57:27 MSK (всего исправлений: 1)

Ответ на: комментарий от sasha198407 10.08.21 16:56:11 MSK

Users with the Owner role in a project

посещено или из overview жмешь?

Если все как в доке, то можешь искать/репортить баг. Я проверил на gitlab.com, у меня в проекте, где я Owner все есть.

t184256 ★★★★★
( 10.08.21 16:58:54 MSK )
Ответ на: комментарий от t184256 10.08.21 16:58:54 MSK

ну да, я владелец. В сведения о конвейере захожу при нажатии на Pipeline ID (или надо как-то иначе?)

sasha198407 ★
( 10.08.21 17:03:29 MSK ) автор топика
Последнее исправление: sasha198407 10.08.21 17:03:54 MSK (всего исправлений: 1)

Ответ на: комментарий от sasha198407 10.08.21 17:03:29 MSK

t184256 ★★★★★
( 10.08.21 17:08:49 MSK )
Ответ на: комментарий от t184256 10.08.21 17:08:49 MSK

Хм. странно. А каким браузером пользуетесь? я хромом. Роль моей учетной записи Maintainer . Статус паплайнов Canceled. Может это имеет значение?

sasha198407 ★
( 10.08.21 17:11:54 MSK ) автор топика
Последнее исправление: sasha198407 10.08.21 17:27:18 MSK (всего исправлений: 2)

Ответ на: комментарий от sasha198407 10.08.21 17:11:54 MSK

Так Owner или Maintainer?

t184256 ★★★★★
( 10.08.21 19:04:58 MSK )
Ответ на: комментарий от t184256 10.08.21 19:04:58 MSK

Роль моего пользователя Maintainer, но т.к. я создал piplains, то я так понимаю, что owner я. Или не правильно понимаю?

anonymous
( 10.08.21 23:35:40 MSK )
Ответ на: комментарий от anonymous 10.08.21 23:35:40 MSK

Неправильно понимаешь, ищи Ownerов проекта и проси их удалить. Не думаю вообще, что есть более мелкогранулярные роли, чем роли в проекте.

t184256 ★★★★★
( 11.08.21 01:52:01 MSK )
Ответ на: комментарий от t184256 11.08.21 01:52:01 MSK

А как я могу стать owner(ом) проекта?

anonymous
( 11.08.21 06:17:51 MSK )
Ответ на: комментарий от anonymous 11.08.21 06:17:51 MSK

Владельцем проекта стать не удалось, но узнал логин и пароль учетки владельца. Под ним получилось удалить. Спасибо, просто думал, что я должен быть владельцем piplain, а оказалось, что надо быть владельцем проекта в целом. Собственно чего я наплодил несколько piplain(ов). Вместо статуса passed они у меня имеют статус pending. Это может быть связанно с тем, что .gitlab-ci.yml находится не в ветке master?

sasha198407 ★
( 11.08.21 10:40:23 MSK ) автор топика
Ответ на: комментарий от anonymous 11.08.21 06:17:51 MSK

Существующего? Просишь Owner’a сделать тебя Owner’ом.

t184256 ★★★★★
( 11.08.21 11:14:33 MSK )
Ответ на: комментарий от t184256 11.08.21 11:14:33 MSK

А 2 владельца может быть?

sasha198407 ★
( 11.08.21 11:21:29 MSK ) автор топика
Ответ на: комментарий от sasha198407 11.08.21 11:21:29 MSK

t184256 ★★★★★
( 11.08.21 11:52:50 MSK )
Ответ на: комментарий от t184256 11.08.21 11:52:50 MSK

обязательно ли для этого создавать группу и переносить проект туда?

sasha198407 ★
( 11.08.21 11:56:06 MSK ) автор топика
Ответ на: комментарий от sasha198407 11.08.21 11:56:06 MSK

t184256 ★★★★★
( 11.08.21 12:11:21 MSK )
Ответ на: комментарий от t184256 11.08.21 12:11:21 MSK

Еще раз Спасибо за помощь. Ну, группу заводить не стану, главное, что разобрался в чем дело. Я не пойму почему не запускаются piplains. В jobs пишет

This job is stuck because you don’t have any active runners online or available with any of these tags assigned to them: test

Go to project CI settings

Странно почему нет исполнителей? Я же создал

файла yml вроде нормальный, если не нормальный, то gitlab ругается

stages: - deploy deploy-job: tags: - test stage: deploy script: - echo "Deploying application. " - echo "Application successfully deployed." 

где-то видимо, что-то упустил.

sasha198407 ★
( 12.08.21 09:14:23 MSK ) автор топика
Ответ на: комментарий от sasha198407 12.08.21 09:14:23 MSK

У раннера должен быть тег test, а его нет. Там в сообщении об ошибке про это написано.

anonymous
( 12.08.21 10:05:50 MSK )
Ответ на: комментарий от anonymous 12.08.21 10:05:50 MSK

Тебе проще будет удалить этот тег

anonymous
( 12.08.21 10:06:38 MSK )
Ответ на: комментарий от anonymous 12.08.21 10:05:50 MSK

sasha198407 ★
( 12.08.21 10:27:56 MSK ) автор топика
Последнее исправление: sasha198407 12.08.21 10:32:57 MSK (всего исправлений: 1)

Ответ на: комментарий от sasha198407 12.08.21 10:27:56 MSK

Включил общие ранеры и заработало

Enable shared runners for this project

Кроме того, что работает, чем это еще чревато? ))) И хочу уточнить, .gitlab-ci.yml должен копироваться на управляемый сервер или так и остается только на gitlab ?

sasha198407 ★
( 12.08.21 12:49:06 MSK ) автор топика
Ответ на: комментарий от sasha198407 12.08.21 12:49:06 MSK

может не работать, зарегистрированный мной раннер, из-за того, что мы пользуемся бесплатным gitlab ?

sasha198407 ★
( 13.08.21 08:36:02 MSK ) автор топика
Ответ на: комментарий от sasha198407 13.08.21 08:36:02 MSK

обновил git на подключаемой машине

sudo yum -y install https://packages.endpoint.com/rhel/7/os/x86_64/endpoint-repo-1.9-1.x86_64.rpm yum update git # git --version git version 2.30.1 

В настройках. подключенного ранера в gitlab ci/cd оставил включенными только галки

в yml файле указал тег ранера (у меня это linux9)

stages: - deploy deploy-job: stage: deploy tags: - linux9 script: - echo "Deploying application. " - echo "Application successfully deployed." 

yml файл отрабатывает с зарегистрированным мной раннером.

sasha198407 ★
( 13.08.21 15:50:07 MSK ) автор топика
Последнее исправление: sasha198407 13.08.21 15:59:47 MSK (всего исправлений: 1)

Ответ на: комментарий от sasha198407 13.08.21 15:50:07 MSK

По ходу пьесы возникают все новые и новые загвоздки. Пытаюсь войти в папку на управляемом сервере через файл .gitlab-ci.yml, что бы потом сделать git pull, но получаю следующее сообщение

$ cd /home/ext_www/ bash: line 123: cd: /home/ext_www/: Permission denied 

Я так понимаю, что не хватает прав. Я уже сделал пользователя gitlab-runner членом группы wheel и членом группы владельца папки /home/ext_www/ , но не помогает. Когда пытаюсь через файл .gitlab-ci.yml создать файлы и папки на управляемом сервере так же выскакивает ошибка

Permission denied 

В чем может быть проблема?
sasha198407 ★
( 16.08.21 11:00:33 MSK ) автор топика
Ответ на: комментарий от sasha198407 16.08.21 11:00:33 MSK

в /etc/sudoers . Теперь заходит в

не отрабатывает в ней. Странно. Теперь интересно насколько корректен этот метод?

sasha198407 ★
( 16.08.21 12:45:32 MSK ) автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.

Похожие темы

  • Форум Настройка Gitlab-Runner в Gitlab (2019)
  • Форум gitlab-ci-multi-runner + CI + Gitlab (2015)
  • Форум gitlab CI и gitlab-runner (2019)
  • Форум gitlab-ci runners и dockerы (2018)
  • Форум gitlab-ci (2017)
  • Форум как делать ci/cd нескольких сервисов(docker swarm, gitlab ci cd) (2021)
  • Форум Натравить gitlab ci/cd на существующий локальный репозиторий (2022)
  • Форум Gitlab Runner падает с ошибкой (2021)
  • Форум конфигурирование множества gitlab-runner-ов (2019)
  • Форум gitlab ci dockerfile copy (2019)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *