Error unable to access jarfile jenkins war

Установка Jenkins на CentOS Jenkins является веб-приложением, которое написано на java. Для его работы мы установим пакет openjdk и сам Jenkins. Данная инструкция применима для CentOS версий 7 и 8. Подготовка системы Для корректной работы Jenkins, мы выполним настройку брандмауэра и отключим SELinux. Настройка firewalld Подключение к порталу выполняется по порту 8080 — необходимо […]

Содержание

  1. Установка Jenkins на CentOS
  2. Подготовка системы
  3. Настройка firewalld
  4. Отключение SELinux
  5. Инсталляция Jenkins
  6. 1. Установка openjdk
  7. 2. Установка Jenkins
  8. 3. Завершение установки
  9. Другие способы установки
  10. 1. Docker
  11. 2. Установка из файла WAR
  12. Работа с Jenkins в CLI
  13. Установка плагинов
  14. Веб-интерфейс
  15. Возможные ошибки
  16. Public key for jenkins is not installed
  17. Error: Unable to access jarfile jenkins-cli.jar
  18. failed to start lsb: start jenkins at boot time
  19. Установка Jenkins на Ubuntu
  20. Подготовка системы
  21. Обновление списка пакетов в репозиториях
  22. Настройка времени
  23. Настройка брандмауэра
  24. Инсталляция Jenkins
  25. 1. Установка openjdk
  26. 2. Установка Jenkins
  27. 3. Завершение установки
  28. Другие способы установки
  29. 1. Docker
  30. 2. Установка из файла WAR
  31. Работа с Jenkins в CLI
  32. Установка плагинов
  33. Веб-интерфейс
  34. Возможные ошибки
  35. Error: Unable to access jarfile jenkins-cli.jar
  36. failed to start lsb: start jenkins at boot time

Установка Jenkins на CentOS

Jenkins является веб-приложением, которое написано на java. Для его работы мы установим пакет openjdk и сам Jenkins. Данная инструкция применима для CentOS версий 7 и 8.

Подготовка системы

Для корректной работы Jenkins, мы выполним настройку брандмауэра и отключим SELinux.

Настройка firewalld

Подключение к порталу выполняется по порту 8080 — необходимо его открыть командой:

firewall-cmd —permanent —add-port=8080/tcp

И после перечитать правила:

Отключение SELinux

Выполняем 2 команды:

sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config

Инсталляция Jenkins

Как было сказано выше, мы установим openjava, сервис Jenkins и завершим развертывания на портале. Итого, 3 этапа.

1. Установка openjdk

yum install java-11-openjdk-devel

Выбираем директорию для java по умолчанию с помощью утилиты update-alternatives:

update-alternatives —config java

Selection Command
————————————————
*+ 1 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.9.11-0.el8_2.x86_64/bin/java)

. выбираем единственно предложенный вариант:

Enter to keep the current selection[+], or type selection number: 1

* если в системе установлено несколько версий java, выбираем актуальную.

Готово. Смотрим версию установленной java:

Мы должны увидеть что-то на подобие:

openjdk version «11.0.9» 2020-10-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.9+11-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.9+11-LTS, mixed mode, sharing)

2. Установка Jenkins

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

wget -P /etc/yum.repos.d/ https://pkg.jenkins.io/redhat-stable/jenkins.repo

Импортируем публичный ключ для подключения к репозиторию:

rpm —import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

yum install jenkins

Разрешаем автозапуск и стартуем сервис:

systemctl enable jenkins

systemctl start jenkins

3. Завершение установки

Открываем браузер и переходим по адресу http:// :8080 — откроется окно «Unlock Jenkins». В нем будет путь до файла, в котором нужно взять парольную фразу для разблокировки портала:

И так, на сервере вводим команду:

* где /var/lib/jenkins/secrets/initialAdminPassword — полный путь до файла, который отображен на стартовой странице установки.

Мы должны увидеть что-то на подобие:

# cat /var/lib/jenkins/secrets/initialAdminPassword
35635dce8b014707a2ec90937763cfe3

Используем данный пароль и вставляем его в поле Administrator password:

В следующем окне выбираем вариант установки плагинов — рекомендованные или по выбору:

* если мы не слишком хорошо знакомы с продуктом, выбираем рекомендованные плагины.

Начнется процесс развертывания Jenkins:

После создаем учетную запись для администратора:

На последней странице мы можем задать URL-адрес для нашего портала (или оставить IP-адрес):

Другие способы установки

Кратко, рассмотрим другие методы установки Jenkins.

1. Docker

После загружаем контейнеры для Jenkins:

docker pull jenkins/jenkins

docker run -p 8080:8080 —name=jenkins-master jenkins/jenkins:latest

На экране мы должны увидеть код для разблокировки Jenkins. Копируем его, открываем в браузере страницу http:// :8080 и выполняем установку в веб, как это делали выше.

После выполнения установки прерываем работу контейнера в интерактивном режиме комбинацией Ctrl + С и запускаем его в бэкграунде:

docker start jenkins-master

2. Установка из файла WAR

Загружаем последнюю версию war-файла:

wget -P /usr/local/bin/ http://mirrors.jenkins-ci.org/war/latest/jenkins.war

* на странице загрузки jenkins можно найти ссылку для скачивания LTS-версии файла war. Обратите внимание, что мы сразу размещаем файл в каталоге /usr/local/bin.

Запускаем war с помощью java:

java -jar /usr/local/bin/jenkins.war

На экране мы должны увидеть код для разблокировки Jenkins. Копируем его, открываем в браузере страницу http:// :8080 и выполняем установку в веб, как это делали выше.

После выполнения установки прерываем работу war в интерактивном режиме комбинацией Ctrl + С.

Создаем юнит в systemd:

[Unit]
Description=Jenkins Service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/bin/java -jar /usr/local/bin/jenkins.war
Restart=on-abort
ExecReload=/bin/kill -HUP $MAINPID

Перечитываем юниты в systemcd:

Разрешаем автозапуск сервиса jenkins и стартуем его:

systemctl enable jenkins —now

Можно проверить состояние запущенной службы командой:

systemctl status jenkins

Работа с Jenkins в CLI

По умолчанию, необходимый для работы с Jenkins из командной строки файл jenkins-cli.jar не копируется в систему.

Его нужно скачать. Выполняем:

wget http://127.0.0.1:8080/jnlpJars/jenkins-cli.jar -P /usr/local/bin/

* таким образом, мы скачаем файл с собственного сервера и разместим его в папке /usr/local/bin/.

Теперь можно выполнять команды с синтаксисом:

java -jar /usr/local/bin/jenkins-cli.jar -auth : -s http://127.0.0.1:8080/

Например, получить список команд можно так:

java -jar /usr/local/bin/jenkins-cli.jar -auth admin:admin -s http://127.0.0.1:8080/ -webSocket help

* где admin:admin — логин и пароль от административной учетной записи.

Установка плагинов

Список плагинов мы можем найти на официальном сайте. Мы рассмотрим 2 способа их установки — из веб-интерфейса и командной строки.

Веб-интерфейс

Переходим в раздел Настроить Jenkins:

Затем в Управление плагинами:

Переходим к вкладке Доступные, по фильтру находим нужный нам плагин, отмечаем галочкой его установку:

Кликаем по кнопке Загрузить и установить после перезагрузки:

Будет выполнена установке плагина, после чего, портал перезапустит сервис.

В командной строке для установки плагина выполняем:

java -jar /usr/local/bin/jenkins-cli.jar -auth admin:admin -s http://127.0.0.1:8080/ install-plugin docker-workflow

* в данном примере мы установим плагин Docker Pipeline. Обратите внимание, что его идентификатор для установки docker-workflow — посмотреть данный идентификатор можно на сайте с плагинами.

После перезапускаем сервис jenkins:

systemctl restart jenkins

Возможные ошибки

Public key for jenkins is not installed

В процессе установки мы можем получить сообщение на подобие:

warning: /var/cache/dnf/jenkins-0919f06c02b07800/packages/jenkins-2.249.3-1.1.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 45f2c3d5: NOKEY
Public key for jenkins-2.249.3-1.1.noarch.rpm is not installed
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing ‘yum clean packages’.

Причина: не импортирован публичный ключ. По умолчанию, репозиторий требует проверку gpg.

Решение: проблема может быть решена 2-я способами.

1. Импортировать публичный ключ для репозитория jenkins. Для этого выполняем команду:

rpm —import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

2. Отключаем проверку gpg. Для этого откроем настройки для репозитория:

Error: Unable to access jarfile jenkins-cli.jar

Ошибка появляется при попытке выполнить команду в jenkins-cli.

Причина: для работы команды необходим файл jenkins-cli.jar, который не устанавливается в системе.

Решение: выполняем действия по настройке системы для работы с jenkins-cli.

failed to start lsb: start jenkins at boot time

Ошибка возникаем при попытке запустить сервис jenkins.

Причина: как правило, отсутствие в системе установленного java.

Решение: устанавливаем java по инструкции выше.

Источник

Установка Jenkins на Ubuntu

Веб-приложение Jenkins написано на java и для его работы мы дополнительно установим пакет openjdk. Данная инструкция написана на примере Ubuntu Server 20.04.

Подготовка системы

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

Обновление списка пакетов в репозиториях

Для возможности установки свежих пакетов, выполняем команду:

Настройка времени

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

timedatectl set-timezone Europe/Moscow

* в данном примере московское время.

Установим службу для синхронизации времени:

apt install chrony

Разрешим ее автозапуск:

systemctl enable chrony

Настройка брандмауэра

По умолчанию в Ubuntu настроены разрешающие правила и конфигурирование брандмауэра не требуется. Однако, если в нашей системе применяются правила, необходимо открыть порт 8080, на котором работает Jenkins:

iptables -I INPUT -p tcp —dport 8080 -j ACCEPT

И сохраняем правило:

apt install iptables-persistent

Инсталляция Jenkins

Как было сказано выше, мы установим openjava, сервис Jenkins и завершим развертывания на портале. Итого, 3 этапа.

1. Установка openjdk

apt install default-jdk

Выбираем реализацию java по умолчанию с помощью утилиты update-alternatives:

update-alternatives —config java

Скорее всего, мы увидим сообщение:

There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-11-openjdk-amd64/bin/java
Nothing to configure.

Это значит, что в системе установлена только одна реализация java. Но если их несколько, на запрос:

Selection Command
————————————————
*+ 1 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.9.11-0.el8_2.x86_64/bin/java)

. выбираем вариант с подходящей версией, например, последней:

Enter to keep the current selection[+], or type selection number: 1

Готово. Смотрим версию установленной java:

Мы должны увидеть что-то на подобие:

openjdk version «11.0.17» 2022-10-18
OpenJDK Runtime Environment (build 11.0.17+8-post-Ubuntu-1ubuntu220.04)
OpenJDK 64-Bit Server VM (build 11.0.17+8-post-Ubuntu-1ubuntu220.04, mixed mode, sharing)

2. Установка Jenkins

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

deb https://pkg.jenkins.io/debian-stable binary/

Импортируем публичный ключ для подключения к репозиторию:

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

Обновляем список пакетов:

apt install jenkins

Разрешаем автозапуск сервиса:

systemctl enable jenkins

3. Завершение установки

Открываем браузер и переходим по адресу http:// :8080 — откроется окно «Unlock Jenkins». В нем будет путь до файла, в котором нужно взять парольную фразу для разблокировки портала:

И так, на сервере вводим команду:

* где /var/lib/jenkins/secrets/initialAdminPassword — полный путь до файла, который отображен на стартовой странице установки.

Мы должны увидеть что-то на подобие:

# cat /var/lib/jenkins/secrets/initialAdminPassword
35635dce8b014707a2ec90937763cfe3

Используем данный пароль и вставляем его в поле Administrator password:

В следующем окне выбираем вариант установки плагинов — рекомендованные или по выбору:

* если мы не слишком хорошо знакомы с продуктом, выбираем рекомендованные плагины.

Начнется процесс развертывания Jenkins:

После создаем учетную запись для администратора:

На последней странице мы можем задать URL-адрес для нашего портала (или оставить IP-адрес):

Другие способы установки

Кратко, рассмотрим другие методы установки Jenkins.

1. Docker

После загружаем контейнеры для Jenkins:

docker pull jenkins/jenkins

docker run -p 8080:8080 —name=jenkins-master jenkins/jenkins:latest

На экране мы должны увидеть код для разблокировки Jenkins. Копируем его, открываем в браузере страницу http:// :8080 и выполняем установку в веб, как это делали выше.

После выполнения установки прерываем работу контейнера в интерактивном режиме комбинацией Ctrl + С и запускаем его в бэкграунде:

docker start jenkins-master

2. Установка из файла WAR

Загружаем последнюю версию war-файла:

wget -P /usr/local/bin/ http://mirrors.jenkins-ci.org/war/latest/jenkins.war

* на странице загрузки jenkins можно найти ссылку для скачивания LTS-версии файла war. Обратите внимание, что мы сразу размещаем файл в каталоге /usr/local/bin.

Запускаем war с помощью java:

java -jar /usr/local/bin/jenkins.war

На экране мы должны увидеть код для разблокировки Jenkins. Копируем его, открываем в браузере страницу http:// :8080 и выполняем установку в веб, как это делали выше.

После выполнения установки прерываем работу war в интерактивном режиме комбинацией Ctrl + С.

Создаем юнит в systemd:

[Unit]
Description=Jenkins Service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/bin/java -jar /usr/local/bin/jenkins.war
Restart=on-abort
ExecReload=/bin/kill -HUP $MAINPID

Перечитываем юниты в systemcd:

Разрешаем автозапуск сервиса jenkins и стартуем его:

systemctl enable jenkins —now

Можно проверить состояние запущенной службы командой:

systemctl status jenkins

Работа с Jenkins в CLI

По умолчанию, необходимый для работы с Jenkins из командной строки файл jenkins-cli.jar не копируется в систему.

Его нужно скачать. Выполняем:

wget http://127.0.0.1:8080/jnlpJars/jenkins-cli.jar -P /usr/local/bin/

* таким образом, мы скачаем файл с собственного сервера и разместим его в папке /usr/local/bin/.

Теперь можно выполнять команды с синтаксисом:

java -jar /usr/local/bin/jenkins-cli.jar -auth : -s http://127.0.0.1:8080/

Например, получить список команд можно так:

java -jar /usr/local/bin/jenkins-cli.jar -auth admin:admin -s http://127.0.0.1:8080/ -webSocket help

* где admin:admin — логин и пароль от административной учетной записи.

Установка плагинов

Список плагинов мы можем найти на официальном сайте. Мы рассмотрим 2 способа их установки — из веб-интерфейса и командной строки.

Веб-интерфейс

Переходим в раздел Настроить Jenkins:

Затем в Управление плагинами:

Переходим к вкладке Доступные, по фильтру находим нужный нам плагин, отмечаем галочкой его установку:

Кликаем по кнопке Загрузить и установить после перезагрузки:

Будет выполнена установке плагина, после чего, портал перезапустит сервис.

В командной строке для установки плагина выполняем:

java -jar /usr/local/bin/jenkins-cli.jar -auth admin:admin -s http://127.0.0.1:8080/ install-plugin docker-workflow

* в данном примере мы установим плагин Docker Pipeline. Обратите внимание, что его идентификатор для установки docker-workflow — посмотреть данный идентификатор можно на сайте с плагинами.

После перезапускаем сервис jenkins:

systemctl restart jenkins

Возможные ошибки

Error: Unable to access jarfile jenkins-cli.jar

Ошибка появляется при попытке выполнить команду в jenkins-cli.

Причина: для работы команды необходим файл jenkins-cli.jar, который не устанавливается в системе.

Решение: выполняем действия по настройке системы для работы с jenkins-cli.

failed to start lsb: start jenkins at boot time

Ошибка возникаем при попытке запустить сервис jenkins.

Причина: как правило, отсутствие в системе установленного java.

Решение: устанавливаем java по инструкции выше.

Источник

Обновлено и опубликовано Опубликовано: 15.11.2020

Используемые термины: Jenkins, Java, CentOS.

Jenkins является веб-приложением, которое написано на java. Для его работы мы установим пакет openjdk и сам Jenkins. Данная инструкция применима для CentOS версий 7 и 8.

Подготовка системы к работе
Установка Jenkins
    Java
    Сервис Jenkins
    Развертывание Jenkins в веб
Альтернативные способы установки
    Как Docker контейнер
    Установка из файла WAR
Подготовка системы для работы в CLI
Управление плагинами
    С помощью веб
    В командной строке
Возможные ошибки

Подготовка системы

Для корректной работы Jenkins, мы выполним настройку брандмауэра и отключим SELinux.

Настройка firewalld

Подключение к порталу выполняется по порту 8080 — необходимо его открыть командой:

firewall-cmd —permanent —add-port=8080/tcp

И после перечитать правила:

firewall-cmd —reload

Отключение SELinux

Выполняем 2 команды:

setenforce 0

sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config

Инсталляция Jenkins

Как было сказано выше, мы установим openjava, сервис Jenkins и завершим развертывания на портале. Итого, 3 этапа.

1. Установка openjdk

Выполняем команду:

yum install java-11-openjdk-devel

Выбираем директорию для java по умолчанию с помощью утилиты update-alternatives:

update-alternatives —config java

И на запрос:

  Selection    Command
————————————————
*+ 1           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.9.11-0.el8_2.x86_64/bin/java)

… выбираем единственно предложенный вариант:

Enter to keep the current selection[+], or type selection number: 1

* если в системе установлено несколько версий java, выбираем актуальную.

Готово. Смотрим версию установленной java:

java -version

Мы должны увидеть что-то на подобие:

openjdk version «11.0.9» 2020-10-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.9+11-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.9+11-LTS, mixed mode, sharing)

2. Установка Jenkins

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

wget -P /etc/yum.repos.d/ https://pkg.jenkins.io/redhat-stable/jenkins.repo

Импортируем публичный ключ для подключения к репозиторию:

rpm —import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

Устанавливаем jenkins:

yum install jenkins

Разрешаем автозапуск и стартуем сервис:

systemctl enable jenkins

systemctl start jenkins

3. Завершение установки

Открываем браузер и переходим по адресу http://<IP-адреса сервера Jenkins>:8080 — откроется окно «Unlock Jenkins». В нем будет путь до файла, в котором нужно взять парольную фразу для разблокировки портала:

Стартовая страница установки Jenkins

И так, на сервере вводим команду:

cat /var/lib/jenkins/secrets/initialAdminPassword

* где /var/lib/jenkins/secrets/initialAdminPassword — полный путь до файла, который отображен на стартовой странице установки.

Мы должны увидеть что-то на подобие:

# cat /var/lib/jenkins/secrets/initialAdminPassword
35635dce8b014707a2ec90937763cfe3

Используем данный пароль и вставляем его в поле Administrator password:

Вводим парольную фразу для установки портала

В следующем окне выбираем вариант установки плагинов — рекомендованные или по выбору:

Устанавливаем плагины для портала

* если мы не слишком хорошо знакомы с продуктом, выбираем рекомендованные плагины.

Начнется процесс развертывания Jenkins:

Начинается установка портала

После создаем учетную запись для администратора:

Создаем пользователя после установки

На последней странице мы можем задать URL-адрес для нашего портала (или оставить IP-адрес):

Задаем адрес URL для Jenkins

Установка завершена.

Другие способы установки

Кратко, рассмотрим другие методы установки Jenkins.

1. Docker

Если Docker не установлен в системе, выполняем инсталляцию.

После загружаем контейнеры для Jenkins: 

docker pull jenkins/jenkins

Запускаем контейнер:

docker run -p 8080:8080 —name=jenkins-master jenkins/jenkins:latest

На экране мы должны увидеть код для разблокировки Jenkins. Копируем его, открываем в браузере страницу http://<IP-адреса сервера Jenkins>:8080 и выполняем установку в веб, как это делали выше.

После выполнения установки прерываем работу контейнера в интерактивном режиме комбинацией Ctrl + С и запускаем его в бэкграунде:

docker start jenkins-master

2. Установка из файла WAR

Загружаем последнюю версию war-файла:

wget -P /usr/local/bin/ http://mirrors.jenkins-ci.org/war/latest/jenkins.war

* на странице загрузки jenkins можно найти ссылку для скачивания LTS-версии файла war. Обратите внимание, что мы сразу размещаем файл в каталоге /usr/local/bin.

Запускаем war с помощью java:

java -jar /usr/local/bin/jenkins.war

На экране мы должны увидеть код для разблокировки Jenkins. Копируем его, открываем в браузере страницу http://<IP-адреса сервера Jenkins>:8080 и выполняем установку в веб, как это делали выше.

После выполнения установки прерываем работу war в интерактивном режиме комбинацией Ctrl + С.

Создаем юнит в systemd:

vi /usr/lib/systemd/system/jenkins.service

[Unit]
Description=Jenkins Service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/bin/java -jar /usr/local/bin/jenkins.war
Restart=on-abort
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

Перечитываем юниты в systemcd:

systemctl daemon-reload

Разрешаем автозапуск сервиса jenkins и стартуем его:

systemctl enable jenkins —now

Можно проверить состояние запущенной службы командой:

systemctl status jenkins

Работа с Jenkins в CLI

По умолчанию, необходимый для работы с Jenkins из командной строки файл jenkins-cli.jar не копируется в систему.

Его нужно скачать. Выполняем:

wget http://127.0.0.1:8080/jnlpJars/jenkins-cli.jar -P /usr/local/bin/

* таким образом, мы скачаем файл с собственного сервера и разместим его в папке /usr/local/bin/.

Теперь можно выполнять команды с синтаксисом:

java -jar /usr/local/bin/jenkins-cli.jar -auth <имя пользователя>:<пароль> -s http://127.0.0.1:8080/ <выполняемые команды и опции>

Например, получить список команд можно так:

java -jar /usr/local/bin/jenkins-cli.jar -auth admin:admin -s http://127.0.0.1:8080/ -webSocket help

* где admin:admin — логин и пароль от административной учетной записи.

Установка плагинов

Список плагинов мы можем найти на официальном сайте. Мы рассмотрим 2 способа их установки — из веб-интерфейса и командной строки.

Веб-интерфейс

Переходим в раздел Настроить Jenkins:

Переход к настройкам Jenkins

Затем в Управление плагинами:

Переход к управлению плагинами в Дженкинс

Переходим к вкладке Доступные, по фильтру находим нужный нам плагин, отмечаем галочкой его установку:

Находим и выбираем для установки нужный нам плагин

Кликаем по кнопке Загрузить и установить после перезагрузки:

Устанавливаем плагин

Будет выполнена установке плагина, после чего, портал перезапустит сервис.

CLI

В командной строке для установки плагина выполняем:

java -jar /usr/local/bin/jenkins-cli.jar -auth admin:admin -s http://127.0.0.1:8080/ install-plugin docker-workflow

* в данном примере мы установим плагин Docker Pipeline. Обратите внимание, что его идентификатор для установки docker-workflow — посмотреть данный идентификатор можно на сайте с плагинами.

После перезапускаем сервис jenkins:

systemctl restart jenkins

Плагин установлен.

Возможные ошибки

Public key for jenkins is not installed

В процессе установки мы можем получить сообщение на подобие:

warning: /var/cache/dnf/jenkins-0919f06c02b07800/packages/jenkins-2.249.3-1.1.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 45f2c3d5: NOKEY
Public key for jenkins-2.249.3-1.1.noarch.rpm is not installed
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing ‘yum clean packages’.

Причина: не импортирован публичный ключ. По умолчанию, репозиторий требует проверку gpg.

Решение: проблема может быть решена 2-я способами.

1. Импортировать публичный ключ для репозитория jenkins. Для этого выполняем команду:

rpm —import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

2. Отключаем проверку gpg. Для этого откроем настройки для репозитория:

vi /etc/yum.repos.d/jenkins.repo

Редактируем строку:

gpgcheck=0

Error: Unable to access jarfile jenkins-cli.jar

Ошибка появляется при попытке выполнить команду в jenkins-cli.

Причина: для работы команды необходим файл jenkins-cli.jar, который не устанавливается в системе.

Решение: выполняем действия по настройке системы для работы с jenkins-cli.

failed to start lsb: start jenkins at boot time

Ошибка возникаем при попытке запустить сервис jenkins.

Причина: как правило, отсутствие в системе установленного java.

Решение: устанавливаем java по инструкции выше.

1 answer to this question.

Hello@akhtar,

Whenever we try to connect windows system as a node in Jenkins, we use JNLP protocol. This JNLP will try to find one agent.jar file in windows system to connect with Jenkins master node

So to avoid any error, make sure your windows system has agent.jar file. 






answered

May 29, 2020


by
MD


• 95,420 points



Related Questions In Jenkins

  • All categories

  • ChatGPT
    (4)

  • Apache Kafka
    (84)

  • Apache Spark
    (596)

  • Azure
    (131)

  • Big Data Hadoop
    (1,907)

  • Blockchain
    (1,673)

  • C#
    (141)

  • C++
    (271)

  • Career Counselling
    (1,060)

  • Cloud Computing
    (3,446)

  • Cyber Security & Ethical Hacking
    (147)

  • Data Analytics
    (1,266)

  • Database
    (855)

  • Data Science
    (75)

  • DevOps & Agile
    (3,575)

  • Digital Marketing
    (111)

  • Events & Trending Topics
    (28)

  • IoT (Internet of Things)
    (387)

  • Java
    (1,247)

  • Kotlin
    (8)

  • Linux Administration
    (389)

  • Machine Learning
    (337)

  • MicroStrategy
    (6)

  • PMP
    (423)

  • Power BI
    (516)

  • Python
    (3,188)

  • RPA
    (650)

  • SalesForce
    (92)

  • Selenium
    (1,569)

  • Software Testing
    (56)

  • Tableau
    (608)

  • Talend
    (73)

  • TypeSript
    (124)

  • Web Development
    (3,002)

  • Ask us Anything!
    (66)

  • Others
    (1,929)

  • Mobile Development
    (263)

Join the world’s most active Tech Community!

Welcome back to the World’s most active Tech Community!

Subscribe to our Newsletter, and get personalized recommendations.

Already have an account? Sign in.

Jenkins бес­плат­ная про­грам­ма, поз­во­ля­ю­щая орга­ни­зо­вать про­цесс непре­рыв­ной инте­гра­ции (CI или Continuous Integration) и достав­ки (CD или Continuous Delivery) про­грамм­но­го про­дук­та (посто­ян­ное объ­еди­не­ние рабо­чих копий в основ­ную вет­ку раз­ра­бот­ки). Раз­ра­бо­та­на на Java и явля­ет­ся веб-при­ло­же­ни­ем. Для сво­ей рабо­ты тре­бу­ет веб-сер­вер Tomcat.

Ска­чать про­грам­му мож­но на офи­ци­аль­ном сай­те. Jenkins мож­но уста­но­вить на все попу­ляр­ные опе­ра­ци­он­ные систе­мы — Windows, Linux, Mac OS и дру­гие. Под­дер­жи­ва­ет­ся уста­нов­ка на саму систе­му или в виде кон­тей­не­ра Docker. В Linux так­же мож­но уста­но­вить из репо­зи­то­рия. Систем­ные тре­бо­ва­ния не высокие:

  1. JDK 1,5 или выше.
  2. От 256 Мб ОЗУ (реко­мен­ду­ет­ся от 2 Гб).
  3. Дис­ко­вое про­стран­ство, доста­точ­ное для хра­не­ние проектов.

Сре­ди ана­ло­гов мож­но отметить:

  • Bamboo.
  • GitLab CI/CD.
  • TeamCity
  • circleci.

Подготовка системы

Для кор­рект­ной рабо­ты Jenkins, мы выпол­ним настрой­ку бранд­мау­э­ра и отклю­чим SELinux.

Настройка firewalld

Под­клю­че­ние к пор­та­лу выпол­ня­ет­ся по пор­ту 8080 — необ­хо­ди­мо его открыть командой:

firewall-cmd —permanent —add-port=8080/tcp

И после пере­чи­тать правила:

firewall-cmd —reload

Отключение SELinux

Выпол­ня­ем 2 команды:

setenforce 0

sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config

Как было ска­за­но выше, мы уста­но­вим openjava, сер­вис Jenkins и завер­шим раз­вер­ты­ва­ния на пор­та­ле. Ито­го, 3 этапа.

1. Установка openjdk

Выпол­ня­ем команду:

yum install java-11-openjdk-devel

Выби­ра­ем дирек­то­рию для java по умол­ча­нию с помо­щью ути­ли­ты update-alternatives:

update-alternatives —config java

И на запрос:

  Selection    Command
————————————————
*+ 1           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.9.11-0.el8_2.x86_64/bin/java)

… выби­ра­ем един­ствен­но пред­ло­жен­ный вариант:

Enter to keep the current selection[+], or type selection number: 1

* если в систе­ме уста­нов­ле­но несколь­ко вер­сий java, выби­ра­ем актуальную.

Гото­во. Смот­рим вер­сию уста­нов­лен­ной java:

java -version

Мы долж­ны уви­деть что-то на подобие:

openjdk version «11.0.9» 2020-10-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.9+11-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.9+11-LTS, mixed mode, sharing)

2. Установка Jenkins

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

wget -P /etc/yum.repos.d/ https://pkg.jenkins.io/redhat-stable/jenkins.repo

Импор­ти­ру­ем пуб­лич­ный ключ для под­клю­че­ния к репозиторию:

rpm —import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

Уста­нав­ли­ва­ем jenkins:

yum install jenkins

Раз­ре­ша­ем авто­за­пуск и стар­ту­ем сервис:

systemctl enable jenkins

systemctl start jenkins

3. Завершение установки

Откры­ва­ем бра­у­зер и пере­хо­дим по адре­су http://<IP-адреса сер­ве­ра Jenkins>:8080 — откро­ет­ся окно «Unlock Jenkins». В нем будет путь до фай­ла, в кото­ром нуж­но взять пароль­ную фра­зу для раз­бло­ки­ров­ки портала:

И так, на сер­ве­ре вво­дим команду:

cat /var/lib/jenkins/secrets/initialAdminPassword

* где /var/lib/jenkins/secrets/initialAdminPassword — пол­ный путь до фай­ла, кото­рый отоб­ра­жен на стар­то­вой стра­ни­це установки.

Мы долж­ны уви­деть что-то на подобие:

# cat /var/lib/jenkins/secrets/initialAdminPassword
35635dce8b014707a2ec90937763cfe3

Исполь­зу­ем дан­ный пароль и встав­ля­ем его в поле Administrator password:

В сле­ду­ю­щем окне выби­ра­ем вари­ант уста­нов­ки пла­ги­нов — реко­мен­до­ван­ные или по выбору:

* если мы не слиш­ком хоро­шо зна­ко­мы с про­дук­том, выби­ра­ем реко­мен­до­ван­ные плагины.

Нач­нет­ся про­цесс раз­вер­ты­ва­ния Jenkins:

После созда­ем учет­ную запись для администратора:

На послед­ней стра­ни­це мы можем задать URL-адрес для наше­го пор­та­ла (или оста­вить IP-адрес):

Уста­нов­ка завершена.

Другие способы установки

Крат­ко, рас­смот­рим дру­гие мето­ды уста­нов­ки Jenkins.

1. Docker

агру­жа­ем кон­тей­не­ры для Jenkins:

docker pull jenkins/jenkins

Запус­ка­ем контейнер:

docker run -p 8080:8080 —name=jenkins-master jenkins/jenkins:latest

На экране мы долж­ны уви­деть код для раз­бло­ки­ров­ки Jenkins. Копи­ру­ем его, откры­ва­ем в бра­у­зе­ре стра­ни­цу http://<IP-адреса сер­ве­ра Jenkins>:8080 и выпол­ня­ем уста­нов­ку в веб, как это дела­ли выше.

После выпол­не­ния уста­нов­ки пре­ры­ва­ем рабо­ту кон­тей­не­ра в интер­ак­тив­ном режи­ме ком­би­на­ци­ей Ctrl + С и запус­ка­ем его в бэкграунде:

docker start jenkins-master

2. Установка из файла WAR

Загру­жа­ем послед­нюю вер­сию war-файла:

wget -P /usr/local/bin/ http://mirrors.jenkins-ci.org/war/latest/jenkins.war

* на стра­ни­це загруз­ки jenkins мож­но най­ти ссыл­ку для ска­чи­ва­ния LTS-вер­сии фай­ла war. Обра­ти­те вни­ма­ние, что мы сра­зу раз­ме­ща­ем файл в ката­ло­ге /usr/local/bin.

Запус­ка­ем war с помо­щью java:

java -jar /usr/local/bin/jenkins.war

На экране мы долж­ны уви­деть код для раз­бло­ки­ров­ки Jenkins. Копи­ру­ем его, откры­ва­ем в бра­у­зе­ре стра­ни­цу http://<IP-адреса сер­ве­ра Jenkins>:8080 и выпол­ня­ем уста­нов­ку в веб, как это дела­ли выше.

После выпол­не­ния уста­нов­ки пре­ры­ва­ем рабо­ту war в интер­ак­тив­ном режи­ме ком­би­на­ци­ей Ctrl + С.

Созда­ем юнит в systemd:

vi /usr/lib/systemd/system/jenkins.service

[codesyntax lang=»php»]

[Unit]

Description=Jenkins Service

After=network.target

[Service]

Type=simple

User=root

ExecStart=/usr/bin/java -jar /usr/local/bin/jenkins.war

Restart=on-abort

ExecReload=/bin/kill -HUP $MAINPID

[Install]

WantedBy=multi-user.target

[/codesyntax]

Пере­чи­ты­ва­ем юни­ты в systemcd:

systemctl daemon-reload

Раз­ре­ша­ем авто­за­пуск сер­ви­са jenkins и стар­ту­ем его:

systemctl enable jenkins —now

Мож­но про­ве­рить состо­я­ние запу­щен­ной служ­бы командой:

systemctl status jenkins

Работа с Jenkins в CLI

По умол­ча­нию, необ­хо­ди­мый для рабо­ты с Jenkins из команд­ной стро­ки файл jenkins-cli.jar не копи­ру­ет­ся в систему.

Его нуж­но ска­чать. Выполняем:

wget http://127.0.0.1:8080/jnlpJars/jenkins-cli.jar -P /usr/local/bin/

* таким обра­зом, мы ска­ча­ем файл с соб­ствен­но­го сер­ве­ра и раз­ме­стим его в пап­ке /usr/local/bin/.

Теперь мож­но выпол­нять коман­ды с синтаксисом:

java -jar /usr/local/bin/jenkins-cli.jar -auth <имя пользователя>:<пароль> -s http://127.0.0.1:8080/ <выпол­ня­е­мые коман­ды и опции>

Напри­мер, полу­чить спи­сок команд мож­но так:

java -jar /usr/local/bin/jenkins-cli.jar -auth admin:admin -s http://127.0.0.1:8080/ -webSocket help

* где admin:admin — логин и пароль от адми­ни­стра­тив­ной учет­ной записи.

Установка плагинов

Спи­сок пла­ги­нов мы можем най­ти на офи­ци­аль­ном сай­те. Мы рас­смот­рим 2 спо­со­ба их уста­нов­ки — из веб-интер­фей­са и команд­ной строки.

Веб-интерфейс

Пере­хо­дим в раз­дел Настро­ить Jenkins:

Затем в Управ­ле­ние пла­ги­на­ми:

Пере­хо­дим к вклад­ке Доступ­ные, по филь­тру нахо­дим нуж­ный нам пла­гин, отме­ча­ем галоч­кой его установку:

Кли­ка­ем по кноп­ке Загру­зить и уста­но­вить после пере­за­груз­ки:

Будет выпол­не­на уста­нов­ке пла­ги­на, после чего, пор­тал пере­за­пу­стит сервис.

CLI

В команд­ной стро­ке для уста­нов­ки пла­ги­на выполняем:

java -jar /usr/local/bin/jenkins-cli.jar -auth admin:admin -s http://127.0.0.1:8080/ install-plugin docker-workflow

* в дан­ном при­ме­ре мы уста­но­вим пла­гин Docker Pipeline. Обра­ти­те вни­ма­ние, что его иден­ти­фи­ка­тор для уста­нов­ки docker-workflow — посмот­реть дан­ный иден­ти­фи­ка­тор мож­но на сай­те с пла­ги­на­ми.

После пере­за­пус­ка­ем сер­вис jenkins:

systemctl restart jenkins

Пла­гин установлен.

Возможные ошибки

Public key for jenkins is not installed

В про­цес­се уста­нов­ки мы можем полу­чить сооб­ще­ние на подобие:

warning: /var/cache/dnf/jenkins-0919f06c02b07800/packages/jenkins-2.249.3-1.1.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 45f2c3d5: NOKEY
Public key for jenkins-2.249.3-1.1.noarch.rpm is not installed
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing ‘yum clean packages’.

При­чи­на: не импор­ти­ро­ван пуб­лич­ный ключ. По умол­ча­нию, репо­зи­то­рий тре­бу­ет про­вер­ку gpg.

Реше­ние: про­бле­ма может быть реше­на 2-я способами.

1. Импор­ти­ро­вать пуб­лич­ный ключ для репо­зи­то­рия jenkins. Для это­го выпол­ня­ем команду:

rpm —import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

2. Отклю­ча­ем про­вер­ку gpg. Для это­го откро­ем настрой­ки для репозитория:

vi /etc/yum.repos.d/jenkins.repo

Редак­ти­ру­ем строку:

gpgcheck=0

Error: Unable to access jarfile jenkins-cli.jar

Ошиб­ка появ­ля­ет­ся при попыт­ке выпол­нить коман­ду в jenkins-cli.

При­чи­на: для рабо­ты коман­ды необ­хо­дим файл jenkins-cli.jar, кото­рый не уста­нав­ли­ва­ет­ся в системе.

Реше­ние: выпол­ня­ем дей­ствия по настрой­ке систе­мы для рабо­ты с jenkins-cli.

failed to start lsb: start jenkins at boot time

Ошиб­ка воз­ни­ка­ем при попыт­ке запу­стить сер­вис jenkins.

При­чи­на: как пра­ви­ло, отсут­ствие в систе­ме уста­нов­лен­но­го java.

Реше­ние: уста­нав­ли­ва­ем java по инструк­ции выше.

Понравилась статья? Поделить с друзьями:
  • Error unable to access jarfile c windows syswow64 mlp upnphostconfig jar
  • Error unable to access jarfile c java lib javaw jar как исправить
  • Error unable to access jarfile bungeecord jar
  • Error un taring imgdb tar esxi
  • Error uke x ink seme