Облачный сервер с Jenkins
Jenkins — сервер непрерывной интеграции с открытым исходным кодом. Приложение предназначено для автоматизации различных этапов разработки программного обеспечения, включая сборку, тестирование и развертывание ПО.
Можно создать облачный сервер с готовым приложением Jenkins. В России приложение работает на облачном сервере с настроенной операционной системой SelectOS 1.1. В других странах — Ubuntu 24.04.
Создать облачный сервер с Jenkins
Для работы Jenkins облачный сервер должен быть доступен из интернета. Для этого создайте приватную подсеть и подключите публичный IP-адрес — вы можете это сделать при создании сервера. Для настройки Jenkins при создании сервера укажите user data — пользовательские параметры конфигурации операционной системы.
После создания сервера с Jenkins автоматически выпустится бесплатный TLS-сертификат от Let’s Encrypt® для домена, который вы укажете. Для выпуска сертификата нужно добавить A-запись для домена и указать в значении записи публичный IP-адрес сервера. Домен можно добавить в DNS-хостинг Selectel (actual).
1. Создать публичный IP-адрес
Создайте публичный IP-адрес, чтобы облачный сервер с Jenkins был доступен из интернета.
Используйте подраздел Создать публичный IP-адрес инструкции Публичные IP-адреса.
2. Добавить А-запись для домена
Добавьте ресурсную запись, чтобы получить доступ к Jenkins по домену.
Выберите тип ресурсных записей в группе — A. В значении записи укажите публичный IP-адрес, который вы создали раннее.
3. Создать сервер с Jenkins
-
В панели управления в верхнем меню нажмите Продукты и выберите Облачные серверы.
-
Нажмите Создать сервер.
-
В блоке Имя и расположение:
3.1. В поле Имя введите имя сервера. Оно будет установлено как имя хоста в операционной системе.
3.2. В полях Регион и Пул выберите регион и сегмент пула, в котором будет создан сервер. От сегмента пула зависит список доступных конфигураций сервера и стоимость ресурсов. После создания сервера изменить сегмент пула нельзя.
-
В блоке Источник откройте вкладку Приложения.
-
Выберите
Cloud Jenkins
. -
Опционально: если вам нужна версия приложения ниже, в поле Версия выберите нужную версию.
-
В блоке Конфигурация выберите конфигурацию сервера в зависимости от количества пользователей. Если пользователей менее 100, выберите конфигурацию от 2 vCPU, RAM от 4 ГБ и размером загрузочного диска от 20 ГБ. Можно выбрать:
- фиксированную конфигурацию — линейки, в которых зафиксировано соотношение ресурсов;
- или произвольную конфигурацию, в которой можно указать любое соотношение ресурсов.
В конфигурациях используются разные процессоры в зависимости от линейки и сегме нта пула.
7.1. Чтобы выбрать фиксированную конфигурацию, нажмите Фиксированная, откройте вкладку с нужной линейкой и выберите конфигурацию.
7.2. Чтобы выбрать произвольную конфигурацию, нажмите Произвольная, укажите количество vCPU и размер RAM.
7.3. Чтобы в качестве загрузочного диска сервера выбрать локальный диск, отметьте чекбокс Локальный SSD NVMe диск. Чтобы в качестве загрузочного диска выбрать сетевой диск, не отмечайте чекбокс.
Объем оперативной памяти, который выделяется серверу, может быть меньше указанного в конфигурации — ядро операционной системы резервирует часть оперативной памяти в зависимости от версии ядра и дистрибутива. Выделенный объем на сервере можно проверить с помощью команды
sudo dmesg | grep Memory
.После создания сервера можно изменить конфигурацию.
-
Если вы не отметили чекбокс Локальный SSD NVMe диск на шаге 7.3., в качестве загрузочного диска сервера будет использоваться первый указанный сетевой диск. В блоке Д иски:
8.1. В поле Тип диска выберите тип сетевого загрузочного диска.
8.2. Укажите размер сетевого загрузочного диска в ГБ или ТБ. Учитывайте лимиты сетевых дисков на максимальный размер.
-
Опционально: добавьте дополнительные сетевые диски сервера. В блоке Диски:
9.1. В поле Тип диска выберите тип сетевого диска.
9.2. Укажите размер сетевого диска в ГБ или ТБ. Учитывайте лимиты сетевых дисков на максимальный размер.
9.3. Чтобы добавить другой дополнительный диск, нажмите Добавить, выберите тип диска и укажите его размер.
После создания сервера можно отключить от него дополнительные диски или подключить новые.
-
В блоке Сеть подключите существующую приватную подсеть с облачным роутером или создайте новую:
Существующая приватная подсеть
Новая приватная подсеть
10.1. Нажмите Приватная подсеть.
10.2. В поле Публичный IP-адрес для доступа из интернета выберите публичный IP-адрес, который вы создали ранее.
10.3. Разверните блок с настройками приватной подсети.
10.4. В поле Подсеть выберите существующую подсеть.
10.5. В поле Приватный IP укажите приватный IP-адрес сервера. Публичный IP-адрес будет автоматически подключен к приватному адресу.
10.1. Нажмите Приватная подсеть.
10.2. В поле Публичный IP-адрес для доступа из интернета выберите публичный IP-адрес, который вы создали ранее.
10.3. Разверните блок с настройками приватной подсети.
10.4. Если у вас есть существующие сети в проекте, в поле Подсеть выберите Новая подсеть.
10.5. Опционально: измените CIDR подсети.
10.6. Опционально: включите тумблер DHCP.
10.7. Опционально: в поле Шлюз измените IP-адрес шлюза по умолчанию.
10.8. В поле Сеть выберите существующую сеть, в которой будет создана подсеть, или Новая сеть. Для приватной подсети с публичным IP-адресом автоматически будет создан роутер router-<network_name>
, где <network_name>
— имя сети.
10.9. Если вы выбрали Новая сеть, введите имя сети.
-
Выберите группы безопасности для фильтрации трафика на портах сервера. Без групп безопасности трафик будет запрещен. Если блок отсутствует, в сети сервера выключена фильтрация трафика (port security). С выключенной фильтрацией трафика весь трафик будет разрешен.
-
В блоке Доступ:
12.1. Разместите на сервере SSH-ключ для безопасного подключения.
Чтобы добавить в облачную платформу новый SSH-ключ, нажмите Добавить SSH-ключ, введите имя ключа, вставьте публичный SSH-ключ в формате OpenSSH и нажмите Добавить.
Если SSH-ключ добавлен в облачную платформу, в поле SSH-ключ выберите существующий ключ.
12.2. Опционально: в поле Пароль для «root» скопируйте пароль пользователя
root
(пользователь с неограниченными правами на все действия над системой). Сохраните пароль в безопасном месте и не передавайте в открытом виде. -
В блоке Дополнительные настройки:
13.1. Опционально: если вы планируете создать несколько серверов и хотите повысить отказоустойчивость инфраструктуры, добавьте сервер в группу размещения. Чтобы создать новую группу, нажмите Создать группу, введите имя группы и выберите политику размещения на разных хостах:
- желательно — soft-anti-affinity. Система постарается разместить серверы на разных хостах. Если при создании сервера не будет подходящего хоста, он будет создан на том же хосте;
- обязательно — anti-affinity. Серверы в группе обязательно располагаются на разных хостах. Если при создании сервера не будет подходящего хоста, сервер не будет создан.
Если группа создана, в поле Группа размещения выберите группу размещения.
13.2. Опционально: добавьте теги сервера, чтобы добавить дополнительную информацию или фильтровать серверы в списке. Автоматически добавляются теги операционной системы и конфигурации. Чтобы добавить новый тег, в поле Теги введите тег.
-
В блоке Автоматизация в поле User data вставьте скрипт, который выполнится при загрузке системы:
#cloud-config
write_files:
- path: "/opt/gomplate/values/user-values.yaml"
permissions: "0644"
content: |
username: "<administrator_username>"
password: "<administrator_password>"
domain: "<example.ru>"
email: "<root@example.ru>"Укажите:
<administrator_username>
— имя администратора Jenkins;<administrator_password>
— пароль администратора Jenkins. Должен быть более восьми символов;<example.ru>
— домен для доступа к Jenkins. Для домена нужно добавить A-запись и указать в значении записи публичный IP-адрес, который вы указали на шаге 10. Если домен добавлен в DNS-хостинг Selectel (actual), используйте инструкцию Добавить ресурсную запись. После создания сервера для домена автоматически выпустится TLS-сертификат от Let’s Encrypt®;<root@example.ru>
— электронная почта администратора Jenkins для создания аккаунта и получения уведомлений Let’s Encrypt®.
-
Проверьте цену облачного сервера.
-
Нажмите Создать.