Установка Jenkins в Unix/Linux
Jenkins является кросс-платформенным инструментом, для непрерывной интеграции и постоянного применения доставки, для увеличения вашей производительности. Используйте дженкинс, чтобы построить и проверить свои программные проекты и обеспечить легкое решение для разработчиков для интеграции изменений в проект.
В своей статье «Установка Jenkins в Unix/Linux» я расскажу как можно установить Jenkins в Unix/Linux на примере CentOS 6/7 и Debian 8.
Установка Jenkins на Debian’s.
Для установки дженкинс на deb’s ОС, выполните ряд действий:
# cd /usr/local/src && wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - # sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
Обновляем репозиторий и устанавливаем jenkins:
# apt-get update && apt-get install jenkins
Обновление
После установки, вы можете обновить дженкинс до более поздней версии (когда он выйдет), выполнив следующие команды. Для начала, обновляем ОС:
# apt-get update
Далее:
# apt-get install jenkins
PS: Используйте aptitude или apt-get нет никакой разницы.
Что этот пакет делает?
- Jenkins будет запущен как демон при запуске. Смотрите /etc/init.d/jenkins для более подробной информации.
- Пользователь ‘jenkins’ создан, чтобы запустить эту службу.
- Log файл будет разпологаться в /var/log/jenkins/jenkins.log. Проверьте этот файл при возникновении ошибок с Jenkins.
- /etc/default/jenkinsбудет захватывать параметры конфигурации для запуска, например JENKINS_HOME
- По умолчанию, Дженкинс слушает 8080 порт. Используйте этот порт чтобы начать настройку.
- Если ваш файл /etc/init.d/jenkins не запускает Дженкинс, отредактируйте /etc/default/jenkins и замените HTTP_PORT=8080 на HTTP_PORT=8081 (как пример).
Здесь был выбран 8081 порт, но вы можете использовать любой другой не используемый порт.
Развертывание на Ubuntu в облако (EC2, HP Cloud, OpenStack)
На убунту, дженкинс поддерживает сценарий развертывания / управления Juju для развертывания в облаках, можно использовать:
# juju deploy jenkins # juju deploy -n 5 jenkins-slave # juju add-relation jenkins jenkins-slave
По умолчанию пароль для аккаунта ‘Admin’ будет автоматически генерироваться. Вы можете установить его с помощью:
# juju set jenkins password=my_password
Всегда меняйте это так — это учетная запись используется charm для управления slave конфигурацией. По этому, не забывайте выставить свой master дженкинс:
# juju expose jenkins
Использование iptables для проброса 80 порта -> 8080-й
Это позволяет переадресацию трафика между портами 80 и 8080. Вы можете сохранить дженкинс на порт 8080 по умолчанию, а доступ к нему будите получать по нормальному URL без установки каких-либо дополнительных, для этого, выполним изменения:
# vim /etc/rc.local
Добавляем запросы снаружи:
# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
можно еще пробросить 443-й порт:
# iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 3443
Добавляем запросы c localhost:
# iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8080
можно еще пробросить 443-й порт:
# iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 443 -j REDIRECT --to-ports 3443
PS: Порты 3443 и 8080 могут отличаться от вашей конфигурации. По этому, будьте внимательны!
После этого выполните перезапуск ОС или выполните:
# /etc/rc.local
Настройка Apache Proxy для порта 80 -> 8080
Эта конфигурация установит Apache2 с прокси с 80 на 8080, так что вы можете держать дженкинс на 8080:
# aptitude install apache2
И потом:
# a2enmod proxy # a2enmod proxy_http
Не выполняйте следующую команду, если у вас уже есть виртуальный хост по умолчанию:
# a2dissite default
Если вы получите ОШИБКУ: по умолчанию сайта не существует! (ERROR: Site default does not exist!) попробуйте это:
# a2dissite 000-default
И если у вас не получается и сейчас, то посмотрите, есть ли конфиг по умолчанию для вашего сайта:
# ls /etc/apache2/sites-enabled/
Создайте файл конфигурации jenkins.conf в /etc/apache2/sites-available:
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName ci.linux-notes.org ServerAlias ci ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPreserveHost on ProxyPass / http://localhost:8080/ nocanon AllowEncodedSlashes NoDecode </VirtualHost>
После чего, выполните:
# a2ensite jenkins # apache2ctl restart
Настройка Nginx прокси на порт 80 -> 8080
Данная конфигурация, установит Nginx с прокси с 80 на 8080, так что вы можете держать дженкинс на 8080:
# aptitude -y install nginx
Удаляем стандартный конфиг:
# cd /etc/nginx/sites-available # rm default ../sites-enabled/default
Создать новую конфигурацию для Дженкинса. Этот пример использует утилиту cat, но вы можете использовать ваш любимый текстовый редактор. Не забудьте заменить домен «ci.yourlinux-notes.org»:
sudo cat > jenkins upstream app_server { server 127.0.0.1:8080 fail_timeout=0; } server { listen 80; listen [::]:80 default ipv6only=on; server_name ci.linux-notes.org; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; if (!-f $request_filename) { proxy_pass http://app_server; break; } } } ^D # Нажмите CTRL + D, чтобы дописать файл
Создаем ссылку на конфигурацию sites-available в sites-enabled:
# ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/
Перезапускаем Nginx:
# service nginx restart
Установка Jenkins на RedHat’s.
В RPM-дистрибутивах, такими как Red Hat Enterprise Linux (RHEL), CentOS, Fedora или Scientific Linux, вы можете установить Дженкинс через Yum.
Установка Jenkins в RPM’s ОС
Добавьте репозиторий Jenkins в свой репозиторий для дальнейшей установки:
# cd /usr/local/src && wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
Импортируем ключ:
# rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
После чего, выполняем установку jenkins:
# yum install jenkins -y
Установка стабильной версии
Существует также хранилище LTS YUM репозиторий для LTS релиза. При необходимости, используйте:
# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
Импортируем ключ:
# rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
И производим установку:
# yum install jenkins -y
PS: Возможно вампотребуется установить:
$ yum install dejavu-sans-fonts fontconfig xorg-x11-server-Xvfb -y
Идем дальше….
Установка Java
Для Jenkins требует Java, по этому, необходимо установить Java Development (OpenJDK). Это можно сделать так:
# yum install java -y
Проверяем версию java:
$ java -version java version "1.7.0_85" OpenJDK Runtime Environment (rhel-2.6.1.3.el6_7-x86_64 u85-b01) OpenJDK 64-Bit Server VM (build 24.85-b03, mixed mode)
Если не последняя стабильная версия java, то ее нужно удалить и установить новую:
# yum remove java
После того как Вы удалили Java. Вы должны установить совместимую версию Java. Самый простой подход с использованием OpenJDK, который доступен через репозиторий EPEL, по этому, установим OpenJDK:
# yum install java-1.7.0-openjdk
Запуск\Остановка\Перезапуск Jenkins
Чтобы запустить Jenkins используйте:
# service jenkins start
Чтобы остановить Jenkins используйте:
# service jenkins stop
Чтобы перезаупстить Jenkins используйте:
# service jenkins restart
Так же, можно добавить дженкинс в автозагрузку ОС:
# chkconfig jenkins on
Что этот пакет делает?
- Jenkins будет запущен как демон при запуске. Смотрите /etc/init.d/jenkins для более подробной информации.
- Пользователь ‘jenkins’ создан, чтобы запустить эту службу.Если вы измените его на другого пользователя через конфигурационный файл, вы должны изменить владельца в /var/log/jenkins, /var/lib/jenkins, и /var/cache/jenkins.
- Log файл будет разпологаться в /var/log/jenkins/jenkins.log. Проверьте этот файл при возникновении ошибок с Jenkins.
- /etc/sysconfig/jenkins будет захватывать параметры конфигурации для запуска.
- По умолчанию, Дженкинс слушает 8080 порт. Используйте этот порт чтобы начать настройку. Обратите внимание, что встроенный межсетевой экран, возможно будет блокировать соединения с других компьютеров (можно ознакомиться с отключением тут: Отключение Firewall в RHEL/CentOS /RedHat).
- A Jenkins RPM хранилище добавляется в /etc/yum.repos.d/jenkins.repo
Отключение firewall
# firewall-cmd --zone=public --add-port=8080/tcp --permanent # firewall-cmd --zone=public --add-service=http --permanent # firewall-cmd --reload # firewall-cmd --list-all
Или:
# iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT # iptables -I INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
Двигаемяс дальше.
Использование jenkins
Т.к jenkins работает на 8080м порту, то открываем в браузере, у меня это выглядит так:
В настоящее время установка является небезопасной и каждый может получить к нему доступ. Сейчас мы это исправим! Во-первых, перейти к Управление Дженкинс «Manage Jenkins» (в левом меню) нажмите кнопку «Setup Security» на странице, загруженной:
Идем далее, в открывшемся окне, выставляем следующее:
Т.е включаем «security by checking» и выставялем чтобы дженкинс использовал «Jenkins’s own user database» и disable sign ups (можно оставить на момент тестирования или для пробной установки. Если никогда не работали с jenkins, то не выключайте данную опцию).
Далее, выставляем «Matrix-based security»:
Не забываем добавить пользователя и назначить ему права.
Нажмите кнопку сохранить в нижней части страницы. После загрузки страницы, вы увидите форму входа, игнорируйте ее и откройте jenkins.linux-notes.org:8080 (у меня это IP адрес):
Вводим свои данные (логин, пароль, имя и почтовый адрес) и нажимаем «Sing up». Вы попадаете в начальное меню и у вас будет защищен вход в панель дженкинс.
Добавление своей первой работы (First Job) в jenkins
Теперь, когда все настроено и работает, пришло время создать нашу первую работу. Нажмите ссылку «New Job»:
Прописываем следующие:
Нажмите «ОК» и переходим на следующую страницу, добавить «Execute shell build «:
В поле «Command», пропишите «uptime»:
Нажмите кнопку Сохранить (Save) в нижней части экрана. После этого, нажмите кнопку Построить сейчас (Build Now):
Нажимаем на синий кружочек:
И получаем:
Создание расписаний (графика) вашей работу в дженкинс
Дженкинс может запустить работу по требованию или в определенный момент времени. Теперь, когда мы создали основную сборку, пришло время настроить расписание сборки. Во-первых, нажмите на ссылку «back to project», чтобы вернуться к просмотру работы:
После того, как вы вернулись на обзор, нажмите кнопку «Configure»:
Это приводит вас к странице конфигурации, как было показано при первой настройке вашей работы. Теперь посмотрим «Build Triggers» и проверить «Build» периодичность:
Теперь это поле ввода принимает CRONTAB синтаксис. Есть несколько специальных дополнительных услуг, которые приходят с Дженкинс планировщиком. Наведите на синий знак вопроса справа от поля ввода, чтобы выяснить, что именно они означают.
Установка плагинов в дженкинс
Существует большое количество плагинов для Дженкинса. Я собираюсь установить плагин, который будет отслеживать дисковое пространство. Для начала, перейдите в «Manage Jenkins» снова. И нажмите на «Manage Plugins»:
Ищем нужный плагин, выполняем установку и используем его. Ничего сложного, не буду заострять внимание на этом.
На этом, тема «Установка Jenkins в Unix/Linux» завершена. Постараюсь выкладывать новый материал.