Разблокировка CI/CD: Как успешно установить Jenkins на Ubuntu

Вы тратите много времени на развертывание кода в вашей инфраструктуре с множеством шагов и программного обеспечения? Не волнуйтесь, вы находитесь в нужном месте, чтобы узнать, как установить Jenkins – самый широко используемый инструмент с открытым исходным кодом.

В этом учебнике вы узнаете, как установить Jenkins на машине с Ubuntu, чтобы с легкостью собирать и развертывать код одним щелчком.

Читайте далее и начинайте установку!

Предварительные требования

Этот пост будет шаг за шагом. Чтобы следовать за уроком, убедитесь, что у вас есть машина с Ubuntu. В этом уроке используется Ubuntu 18.04 с установленным apache.

Установка Java версии 11 на машине с Ubuntu

Jenkins – это инструмент для непрерывной интеграции (CI) и непрерывного развертывания (CD), который можно запустить в различных контейнерах servlet, таких как Apache Tomcat или GlassFish. Но для этой демонстрации вы будете запускать Jenkins на его встроенном сервере Java servlet container.

Есть несколько реализаций Java, которые можно использовать с Jenkins, но OpenJDK самый популярный, который вы установите и используете в этом руководстве.

1. Войдите в свою машину Ubuntu, используя ваш клиент SSH.

2. Затем выполните следующие команды, чтобы создать каталог с именем ~/install_jenkins_demo и перейти в этот каталог.

mkdir ~/install_jenkins_demo
cd ~/install_jenkins_demo

3. Запустите команду apt install ниже, чтобы установить Java на вашем компьютере.

# Установка Java Версия: Java SE 11 (LTS)
sudo apt install default-jdk 
Installing Java Version: Java SE 11 (LTS)

4. Наконец, выполните нижеприведенную команду, чтобы проверить версию установленной Java на вашем компьютере. Это гарантирует успешную установку Java.

# Проверка версии Java для подтверждения установки Java.
java -version
Checking the Version of Java to verify Java installation

Установите Jenkins на экземпляр Ubuntu 18.04 LTS

Теперь, когда у вас установлена Java на компьютере с Ubuntu, пришло время установить Jenkins на ваш компьютер. Установка Jenkins довольно похожа на установку других пакетов на вашем компьютере.

Предполагая, что вы все еще вошли в SSH-клиент:

1. Во-первых, выполните команду apt update, чтобы обновить пакеты вашей системы.

sudo apt update

2. Затем выполните нижеприведенную команду wget, чтобы добавить открытый ключ Jenkins в вашу систему.

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

wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

3. Выполните следующие команды, чтобы добавить официальный репозиторий Jenkins в вашу систему и обновить ее.

# Добавление официального репозитория Jenkins в систему
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > \
    /etc/apt/sources.list.d/jenkins.list'
# Обновление пакета
sudo apt-get update

4. Теперь выполните команду ниже, чтобы установить пакет Jenkins.

# Установка пакета Jenkins
sudo apt-get install Jenkins
Installing the Jenkins package on an ubuntu machine

5. Наконец, запустите команду service ниже, чтобы проверить статус службы Jenkins. # Подтверждение статуса службы Jenkins на машине ubuntu: service jenkins status

# Подтверждение статуса службы Jenkins на машине ubuntu
service jenkins status

Как видите ниже, статус показывает, что служба Jenkins активна.

Verifying the status of Jenkins service

Настройка экземпляра Jenkins

На данный момент вы на полпути к успешной установке Jenkins. Но прежде чем вы начнете его использовать, вам необходимо настроить его с базовыми удобствами. Как? Первый шаг в настройке Jenkins – разблокировать недавно установленный Jenkins.

Предполагая, что вы все еще вошли в клиент SSH:

1. Откройте ваш любимый браузер и перейдите по IP-адресу сервера, за которым следует порт 8080, например, jenkins-ip:8080. После перехода по ссылке вам потребуется разблокировать Jenkins, предоставив административный пароль. Административный пароль хранится в каталоге /var/lib/jenkins/secrets/initialAdminPassword на сервере (шаг два).

Unlocking Jenkins Instance

2. Запустите команду cat ниже, чтобы добавить пароль администратора на вашем компьютере из каталога /var/lib/jenkins/secrets/initialAdminPassword.

cat /var/lib/jenkins/secrets/initialAdminPassword

Как видите ниже, огромная строка в выводе – это пароль администратора. Запишите пароль администратора, так как вам потребуется он для разблокировки Jenkins (шаг три).

Checking the Initial Admin Password

3. Вернитесь к своему веб-браузеру (Разблокировать Jenkins страница) и введите пароль администратора, который вы записали на шаге два.

Как только вы разблокируете Jenkins, ваш браузер перенаправится на страницу, где вы сможете настроить свой экземпляр Jenkins с помощью плагинов (шаг четыре).

4. На странице Настройка Jenkins нажмите на вариант Установить рекомендуемые плагины.

Плагин Jenkins – это сторонний инструмент, который интегрируется с Jenkins и позволяет выполнять такие задачи, как плагин Git. Плагин Git позволяет подключаться к репозиторию Git, выполнять команды Git и так далее.

Installing the Jenkins Plugin

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

Как только вы нажмете Сохранить и продолжить, появится экран настройки экземпляра, показанный на шаге пять.

По умолчанию в Jenkins создана учетная запись администратора с именем пользователя/паролем (admin: admin), но все же вы можете создать учетную запись администратора по своему выбору. Вы можете пропустить этот шаг и продолжить в качестве администратора, если не хотите создавать пользовательскую учетную запись администратора.

Creating the First Admin user

6. Наконец, нажмите Сохранить и завершить, чтобы сохранить конфигурацию экземпляра.

Конфигурация экземпляра позволяет указать URL-адрес Jenkins, который вы хотите использовать, и в этом случае вы будете использовать URL-адрес по умолчанию (т.е. server-ip:8080)

Configuring the Jenkins Instance
Jenkins Running successfully on Port 8080

Изменение порта Jenkins по умолчанию

Ранее вы узнали, что по умолчанию Jenkins работает на порту 8080, что вполне нормально. Но что, если вам нужно запустить другие приложения на том же порту, такие как Apache или NGINX? Не волнуйтесь! Вы можете изменить порт Jenkins (8080) и запустить экземпляр Jenkins на других портах.

1. Откройте файл /etc/default/Jenkins в выбранном вами текстовом редакторе и измените порт по умолчанию с 8080 на 9090, затем сохраните изменения.

Changing the Default Jenkins Port

2. Затем выполните следующую команду для перезапуска Jenkins, чтобы обновленные конфигурации вступили в силу.

sudo systemctl restart jenkins

3. Наконец, перейдите по URL Jenkins, но на этот раз измените порт на 9090, как показано ниже.

Jenkins Running successfully on Port 9090

Запуск Jenkins безопасно (HTTPS) с использованием SSL-сертификата

Теперь ваш экземпляр Jenkins отлично работает на порту 9090. Но является ли он безопасным? Нет, не является. Обеспечьте безопасность вашего экземпляра Jenkins и избегайте его компрометации злоумышленниками, включив SSL-сертификат.

SSL-сертификаты в основном используются для тестирования на локальной машине, когда отсутствует сертификат от внешнего удостоверяющего центра.

Для обеспечения безопасности вашего экземпляра Jenkins:

1. Выполните каждую из приведенных ниже команд, чтобы создать каталог с именем ~/certificates для хранения сертификатов и перейдите в этот каталог.

mkdir ~/certificates
cd ~/certificates

2. Затем запустите следующую команду openssl, чтобы сгенерировать запрос на подпись сертификата (CSR) и закрытый ключ.

openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes
Generating a CSR and private key

3. Выполните следующие команды, чтобы создать другую директорию (/etc/apache2/ssl) и переместить сертификаты из директории ~/certificates/ в директорию /etc/apache2/ssl.

mkdir /etc/apache2/ssl
mv ~/certificates/* /etc/apache2/ssl/.

4. Откройте файл конфигурации SSL веб-сайта по умолчанию (/etc/apache2/sites-available/default-ssl.conf) и добавьте следующие строки. Убедитесь, что заменили <my-server-name> на фактическое имя вашего сервера.

В приведенном ниже коде вы указываете расположение (ключа сертификата и файла), куда вы ранее скопировали SSL сертификаты. Также для перенаправления Jenkins на порт 9090 вы добавите аргумент ProxyPass и включите ProxyPreserveHost.

ServerName <my-server-name>
SSLCertificateFile    /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9090/
ProxyPassReverse / http://127.0.0.1:9090/
Updating default SSL Apache site configuration file

5. Теперь выполните каждую команду ниже, чтобы включить модуль SSL, включить измененный сайт (шаг четыре) и перезапустить службу Apache.

# Включить модуль SSL, чтобы работать с SSL-соединениями.
sudo a2enmod ssl proxy proxy_http proxy_balancer
# Включить измененный сайт (шаг четыре)
sudo a2ensite default-ssl.conf
# Перезапустить службу Apache
sudo service apache2 restart

6. Наконец, перейдите к вашему экземпляру Jenkins, но на этот раз используйте HTTPS, как показано ниже.

Как видите, Jenkins успешно открывается с SSL-соединениями на порту HTTPS. Не беспокойтесь, если вы видите предупреждающий символ, отображающий сообщение Не безопасно. Вы увидите это предупреждение, поскольку используете самоподписанный сертификат (созданный вами), а не от центра сертификации.

Accessing Jenkins Instance with SSL connections on HTTPS port

Заключение

В этом уроке вы узнали, как установить Jenkins на машину с Ubuntu и убедились, что можете безопасно получить доступ к экземпляру Jenkins.

Теперь, как вы планируете улучшить свою работу с Jenkins? Возможно, автоматизировать развертывание веб-приложений? Или создать конвейер Jenkins CI CD, чтобы улучшить процесс разработки программного обеспечения?

Source:
https://adamtheautomator.com/install-jenkins/