Привет, я Вуконг.
Каталог этой статьи выглядит следующим образом:
Ранее я познакомил вас с тем, как развертывать Jenkins онлайн в системах Windows, как развертывать интерфейсные и внутренние проекты через Jenkins и как управлять разрешениями Jenkins.
В реальном проекте, благодаря этим практикам, он работает стабильно в течение двух месяцев. Теперь есть новый проект, который также должен использовать Jenkins для реализации автоматического развертывания. Однако среда развертывания нового проекта представляет собой автономную среду Linux. поэтому мне нужно снова развернуть среду в автономном режиме.
из-за развертывания Jenkins На машине нет сети, поэтому в процессе развертывания мы столкнулись со многими подводными камнями.,В этой статье также описываются подводные камни, с которыми пришлось столкнуться в период,И решение.
При развертывании серверных проектов вам необходимо полагаться на Java, Maven и Git. Соответствующие версии автономного пакета показаны в таблице ниже.
серийный номер | Зависимости | Версия |
---|---|---|
1 | Linux-сервер | Рекомендую Ubuntu 20 или выше |
2 | Пакет офлайн-войны Дженкинса | 2.426.1(текущийдо настоящего времени Версия) |
3 | Автономный пакет Java, необходимый для развертывания серверной части. | Java 11, Java 17 or Java 21 |
4 | Автономная установка Maven, необходимая для внутреннего развертывания. | Maven 3.8.8 |
5 | Автономный пакет Git, получение кода | 2.9.5(текущийдо настоящего времени Версия) |
Что касается фронтенд-проекта «Автономное развертывание», я оставлю это на следующей лекции.
Путь к установочному пакету:
https://get.jenkins.io/war-stable/
выбирать Версия:2.426.1
После загрузки это военный пакет. Затем вы можете использовать Java для запуска военного пакета.
Создать целевой каталог
sudo mkdir -p /usr/local/java
Скопируйте установочный пакет в целевой каталог.
sudo cp /path/to/jdk-17_linux-x64_bin.tar.gz /usr/local/java
Разархивируйте установочный пакет
cd /usr/local/java
sudo tar -xvzf jdk-17_linux-x64_bin.tar.gz
Удалить сжатый пакет
sudo rm jdk-17_linux-x64_bin.tar.gz
Настройка переменных среды
sudo vim /etc/profile
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
Загрузить переменные среды
source /etc/profile
исследовать Java Версия
java -version
java Версия
Существует два метода запуска:
Выполните команду запуска:
java -jar jenkins.war --httpPort=8082
Выполните команду запуска:
nohup java -jar jenkins.war --httpPort=8082 >nohup.out 2>&1 &
Откройте сайт Дженкинса http://<тыизсерверip>:8082。
Если возникает исключение, подсказка выглядит следующим образом:
java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration
решение:
Воля Установить java8 из fontconfig.bfc документ Копировать в jenkins Этот серверначальствоиз java lib в каталоге
fontconfig.bfc Пример пути: C:\Program Files\Java\jre1.8.0_191\lib\fontconfig.bfc
скопировать в /usr/local/java/lib/ Оглавление
Начните снова и запустите успешно. Также возникает ошибка, указывающая на невозможность доступа к веб-сайту обновления Jenkins, которую можно игнорировать, поскольку сервер не подключен к Интернету и к нему невозможно получить доступ.
Кроме того, вам необходимо найти из распечатанного журнала запущенный каталог jenkins, который будет использоваться позже.
Как показано на рисунке ниже, в каталоге /home/xxx/.jenkins.
Дженкинс работает в каталоге
В этом каталоге есть очень важный каталог: плагины. Мы можем скопировать в этот каталог некоторые плагины, чтобы Дженкинс мог запускать эти плагины.
Адрес загрузки:
https://maven.apache.org/download.cgi
Разархивируйте папку:
cd /usr/local
tar -zvxf /usr/local/maven/apache-maven-3.8.8-bin.tar.gz
mv apache-maven-3.8.8/* maven
sudo rm -rf apache-maven-3.8.8
sudo rm -rf /usr/local/maven/apache-maven-3.8.8-bin.tar.gz
Добавьте переменные среды:
sudo vim /etc/profile
Информация о конфигурации:
export M2_HOME=/usr/local/maven
export MAVEN_HOME=/usr/local/maven
export PATH=${M2_HOME}/bin:${PATH}
Загрузить конфигурацию
source /etc/profile
Проверьте, вступила ли в силу конфигурация maven:
mvn -version
Путь к веб-сайту: https://mirrors.edge.kernel.org/pub/software/scm/git/
Скопируйте в этот каталог /usr/local/git/, если каталога git нет, создайте новый.
sudo mkdir -p /usr/local/git
sudo tar -xvzf /usr/local/git/git-2.9.5.tar.gz -C /usr/local/git
cd /usr/local/git
./configure --prefix=/usr/local/git
make && make install
Подскажите, что нет компилятора gcc
решение:Оффлайн Установитьполагаться Сумка。
Адрес загрузки:https://pkgs.org/search/?q=libnl-genl
dpkg -i xxx.deb
Скомпилируйте еще раз, и появится сообщение об успешной компиляции.
Добавьте переменные среды git
export PATH=$PATH:/usr/local/git/bin
source /etc/profile
Проверять git Версия
git --version
В автономной среде вы не можете напрямую выбрать метод установки плагина, поэтому вам необходимо импортировать автономный пакет плагина в каталог плагинов.
Оба следующих сайта могут существовать в режиме загрузки плагина.
https://plugins.jenkins.io/
http://updates.jenkins-ci.org/download/plugins/
Вам может быть предложено указать, что зависимый плагин не существует, как показано ниже:
- Plugin is missing: structs (308.v852b473a2b8c)
- Plugin is missing: workflow-scm-step (2.13)
- Plugin is missing: scm-api (595.vd5a_df5eb_0e39)
- Plugin is missing: mailer (408.vd726a_1130320)
- Plugin is missing: credentials (2.6.1)
- Plugin is missing: git-client (3.11.0)
- Plugin is missing: script-security (1131.v8b_b_5eda_c328e)
- Plugin is missing: workflow-step-api (622.vb_8e7c15b_c95a_)
- Plugin is missing: credentials-binding (1.27.1)
- Plugin is missing: ssh-credentials (1.19)
Поскольку некоторые плагины зависят от других плагинов, сначала необходимо установить другие плагины. Если в процессе установки другие плагины отсутствуют, они будут обработаны таким же образом.
Первыйсуществовать Есть сетьизна машинеразвертыватьтакой жеиз Версияиз Jenkins, затем установите необходимые плагины онлайн и, наконец, скопируйте их в автономном режиме. Jenkins в каталоге плагина.
Каталог, в котором находится плагин, обычно находится здесь:
/home/<user>/.jenkins/plugins/
После копирования перезапустите Jenkins, и эти плагины будут установлены автоматически.
существовать Jenkins Управление серверной системой->глобальные инструменты Конфигурациясерединадобавить в Maven settings Конфигурация, как показано на рисунке ниже.
Путь — это путь к файлу настроек Maven: /usr/local/maven/conf/settings.xml.
существовать Jenkins Управление серверной системой->глобальные инструменты Конфигурациясерединадобавить в Maven Установить Конфигурация, как показано на рисунке ниже.
Путь — это путь установки Maven: /usr/local/maven/.
существовать Jenkins Управление серверной системой->глобальные инструменты Конфигурациясерединадобавить в Java Конфигурация, как показано ниже.
Путь — это путь установки Java: /usr/local/java/.
Конфигурация пути JDK
существовать Jenkins Управление серверной системой->глобальные инструменты Конфигурациясерединадобавить в Git Конфигурация, как показано ниже:
Путь — это путь установки Java: /usr/bin/git.
Средство отладки F12 может сообщать следующую информацию об ошибках:
jenkins workflow-editor.js Ajax is not defined ReferenceError: Ajax is not defined
Есть проблема с плагином.
Заменить всеплагиндокумент。Установитьто же самое Версияиз jenkins, and live line скачать плагин и удалить оригинал jenkins каталог плагина, а затем замените все файлы плагина.
java.io.IOException: Batch scripts can only be run on Windows nodes
текущий Jenkins развертыватьсуществовать Linux система, поэтому ее нельзя распознать bat Заказ. потому что bat Команда windows команды, используемые системой, в то время как sh Команда linux Команда, используемая системой.
Измените биту на sh.
SSH: EXEC: STDOUT/STDERR from command [sudo docker service update --force job-executor] ...
SSH: EXEC: connected
sudo: no tty present and no askpass program specified
Это вызвано тем, что учетная запись Jenkins не защищена паролем.
Даватьjenkinsдобавить в Использовать без пароляsudo
из Разрешения。
sudo vi /etc/sudoers
существоватьsudoersдокументсерединадобавить строку:
jenkins ALL=(ALL) NOPASSWD:ALL
Сообщение об ошибке
SEVERE jenkins.InitReactorRunner$1#onTaskFailed: Failed Loading global config
com.thoughtworks.xstream.mapper.CannotResolveClassException: com.michelin.cio.hudson.plugins.rolestrategy.RoleBasedAuthorizationStrategy
Возникла проблема с установкой плагина jenkins, которая не позволяет запустить jenkins.
Измените файл /home/xxx/.jenkins/config.
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
<denyAnonymousReadAccess>true</denyAnonymousReadAccess>
</authorizationStrategy>
частьплагинпотому что Недостатокполагаться Не удалось загрузить。Чтобы восстановить этиплагинпоставлятьиз Функция,Этот вопрос необходимо исправить и перезапустить Дженкинса.
Отсутствует плагин или неверная версия.
Воляпереписыватьсяиз Версияизплагин xxx.jpi После скачивания существование загружается в фоновом режиме, а после завершения развертывания плагина установите флажок для перезагрузки. jenkins Служить.
Сообщение об ошибке:
server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile:
Сертификат отсутствует.
Пропустить проверку сертификата для Git.
git config --global http.sslVerify false
Сообщение об ошибке:
Command 'sudo' is available in '/usr/bin/sudo'
Возникла проблема с конфигурацией переменной среды, и ее невозможно найти.
Используйте следующее Заказснова Открыть /etc/profile документ
/usr/bin/sudo /usr/bin/vim /etc/profile
Настройте следующие переменные среды перед другими переменными среды в профиле.
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Войдите на страницу управления системой Jenkins.
Нажмите «Командная строка сценария».
Выполните следующую команду, чтобы установить часовой пояс по пекинскому времени:
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
Убедитесь, что часовой пояс установлен правильно, чтобы сборки задач и запланированные сборки запускались по пекинскому времени.
Эта статья объясняетсуществовать Оффлайн Как насчет окружающей средыразвертывать Jenkins、Jenkins Плагины, Maven, Java, Git инструмент.
существоватьразвертыватьизпроцесссерединамного встречалсяяма,Решите каждую проблему, с которой вы столкнулись,Я надеюсь, что каждый столкнется с подобными проблемами в будущем.,Устранение неполадок можно сократить на основе этого документа.вопросизвремя。