БС
4 декабря 2022
Обновлено 15 марта 2023

Как установить Drone на Linux Ubuntu 20.04

Linux Ubuntu VPS

Введение

CI/CD – Реагирование на определенные запросы или тригеры при работе с контейнерами, или любым другом проектом, т.е выполняет роль уведомления об изменениях в проекте.

Упрощение работы с нотификацией, хранением результатов, а так же публикацией различных проектов.

Так же у Drone CI есть бесплатный план SaaS (software as a service) который доступен для проектов с открытым исходным кодом.

Интегрируется с Github, Bitbucket, Gitea. Конфигурация настраивается благодаря yaml (+ starlark и jsconnet).

Он не требует много ресурсов для его работоспособности, что позволяет сэкономить на оборудовании и начать работать с Dorne даже на слабых устройствах.

Для его работы необходимо предварительно установить Docker, в нашем случае мы будем использовать предустановленную версию Docker.

Чтобы установить Docker, воспользуйтесь нашей инструкцией или создайте сервер в Serverspace с уже установленным приложением.

Необходимые зависимости для Drone

  • Аккаунт github.
  • Для работоспособности Drone, вам нужен собственный домен или открытый ip адрес.
  • Так же на сервере должно быть 11 гигабайтов свободного места, и 2 гигабайта оперативной памяти для работоспособности контейнеров.

Предварительная настройка сервера

Переходим в настройки аккаунта github, и создаем в нем доступ для делегирования нашего сервера к github.

1drone

Используя этот пример, создайте своё OAuth приложение, предварительно измените домен на ваш собственный поддомен “drone.****”.

Если у вас нету собственного домена, тогда вы можете использовать ip адрес вашего сервера заменив домен «http://yourip» во вкладке homepage URL, а так же заменив «Authorization callback URL» на «http://yourip/login».

Зайдите в созданное приложение, скопируйте свой client id, а так же создайте ключ авторизации, эти данные потребуются при настройке сервера.

2drone

Настройка сервера

Создайте RPC ключ сервера.

openssl rand -hex 16

3drone

Создайте и настройте конфиг Drone.

nano /etc/drone

4drone

DRONE_SERVER_HOST=drone.steammmmm.space
#Host of your subdomain
DRONE_SERVER_PROTO=http
#what type of connection you will use
DRONE_GITHUB_CLIENT_ID=id_from_git_OAuth
#Client id from github
DRONE_GITHUB_CLIENT_SECRET=secret_from_github
#Secret from github
DRONE_RPC_SECRET=secret_from_server
#rpc password that we created on server
DRONE_USER_CREATE=username:barikasss,admin:true
#Username of your profile github

Это не весь список доступных настроек файла конфигурации, если у вас возникли вопросы то вы можете обратиться напрямую на страницу разработчика где размещена документация для файла конфигурации.

Установка и запуск Drone

Используя команду ниже, вы получаете образ последней версии Drone.

docker pull drone/drone:1

5drone

Создайте базу данных для Drone.

docker volume create drone-base

6drone

Запустите Drone.

docker run --name=dronegit --detach --restart=always --env-file=/etc/drone --volume=drone-base --publish=80:80 --publish=443:443 drone/drone:1

7drone

Проверка

Перейдите по адресу drone.yourdomain.***, вы увидите окно авторизации github.

8drone

После авторизации у вас откроется интерфейс drone.

9drone

Вывод

На рынке CI и CD очень много продуктов которые позволяют использовать их на бесплатной основе, но у каждого есть свои ограничения для использования их в коммерческих целях.

Подводя итоги, в этой публикации мы разобрали установку Drone CI на операционную систему Linux Ubuntu 20.04

Drone CI :

  • Бесплатный план SaaS который доступен только для opensource проектов.
  • Цена SaaS доступна только enterprise
  • Интеграция возможна с Github, Bitbucket, Gitea
  • Конфигурация Yaml (+starlark, jsconnect)
  • Минималистичен
  • Не требует много ресурсов для работы
Оценка:
5 из 5
Аverage rating : 5
Оценок: 1
191028 Санкт-Петербург Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700 300
ООО «ИТГЛОБАЛКОМ ЛАБС»
700 300