- Не удается запустить службу Jenkins в Windows после обновлений
- 6 ответов
- Запуск / остановка и перезапуск службы Jenkins в Windows
- 6 ответов:
- Дженкинс не удалось запустить в Linux
- 6 ответов
- Как перезапустить Jenkins вручную
- 30 ответов
- На Windows
- Для Mac
- Остановить Дженкинс
- Запустить Дженкинс
- Непрерывная интеграция и развертывание (Deployment) с помощью Jenkins
- Прежде всего, что такое Jenkins?
- Почему именно Jenkins?
- Необходимые условия
- Шаг 1 — Создайте репозиторий GitHub для приложения node
- Шаг 2 — Создайте простое приложение node и разместите его на GitHub
- Шаг 3 — Создание приложения Heroku для развертывания
- Шаг 4 — Установите Jenkins
- Шаг 5 — Добавьте веб-хук GitHub для внесения изменений в Jenkins
- Шаг 6 — Сконфигурируйте приложение с помощью Jenkins
- Шаг 7 — Добавьте плагины GitHub в Jenkins
Не удается запустить службу Jenkins в Windows после обновлений
У меня есть Jenkins, работающий на Windows как служба. Обычно он запускается при запуске машины.
После обновления Windows, рекомендованного сегодня днем, и перезагрузки компьютера мой Jenkins просто перестал работать.
Я запускаю службу, но она останавливается и показывает следующее предупреждение:
Нет файла «jenkins.err.log», и если я запустил Jenkins с «java jenkins.war», он будет работать нормально.
Любой совет, что происходит? Как это исправить? Пожалуйста помоги.
6 ответов
У меня такая же проблема. Похоже, что среда выполнения Java была обновлена. В папке установки jenkins есть как jenkins.wrapper.log. Он содержит ведение журнала из служебной оболочки jenkins.exe. В моем случае он пытался запустить Java из c: \ Program Files \ Java \ jre1.8.0_144 \ bin. Эта папка не существует, вместо этого java был установлен в c: \ Program Files \ Java \ jre1.8.0_161 \ bin.
В папке установки jenkins также находится файл jenkins.xml. Это содержит ссылку на установку Java в теге. Измените его на вашу текущую установку Java, и она начнется снова.
У меня также была эта проблема после каждого обновления Java. Но существует независимый от версии абсолютный путь, который можно использовать для запуска среды выполнения Java: C: \ ProgramData \ Oracle \ Java \ javapath \ java.exe.
Я изменил jenkins-slave.xml, чтобы использовать этот путь:
Если ваш путь Java правильный, отключите RunawayProcessKiller в jenkins.xml
Если путь java.exe правильно настроен в файле jenkins.xml / jenkins-slave.xml и проблема не устранена, попробуйте удалить файл jenkins_agent.pid и перезапустить службу.
В моем случае это произошло после того, как я установил некоторые обновления на мою машину. После некоторых исследований (jenkins.err.log) выяснилось, что какое-то другое приложение захватило порт 8080, который использовался Jenkins до этого момента.
Мне удалось определить приложение (с помощью TcpView) и отключить его.
Служба Jenkins может быть остановлена. Найдите службу Jenkins в оконных службах и нажмите «Пуск». Я пробовал это много раз. Это сработало
Источник
Запуск / остановка и перезапуск службы Jenkins в Windows
Я извлек zip-файл и успешно установил Jenkins на Windows 7. Дженкинс работает на http://localhost:8080/ хорошо. Я хочу остановить службу Дженкинса от консоли. Как я могу это сделать? Как запустить и перезапустить через консоль / командную строку?
6 ответов:
Откройте консоль / командную строку — > перейдите в каталог установки Jenkins. Выполните следующие команды соответственно:
Чтобы остановиться:
jenkins.exe stop
Для начала:
jenkins.exe start
Для перезапуска:
jenkins.exe restart
Чтобы остановить Дженкинса Пожалуйста, избегайте завершения работы java-процесса или службы windows. Это не обычные команды. Используйте их только в том случае, если ваш Дженкинс вызывает проблемы.
Используйте способ Дженкина, чтобы остановить, что позволяет защитить потерю данных.
Где [команда] может быть любой из следующих
Пример: если мой локальный компьютер работает под управлением jenkins на порту 8080, он будет
Чтобы запустить Дженкинса из командной строки
- Открыть командную строку
Перейдите в каталог, в котором находится ваш файл war, и выполните следующую команду:
Чтобы остановить
Эти команды будут работать из cmd только в том случае, если вы запускаете CMD с правами администратора
Поэтому по умолчанию вы можете открыть CMD и написать
Но если ваш порт 8080 уже используется, поэтому вам нужно изменить номер порта Дженкинса, поэтому для этого откройте папку Дженкинса в файле программы и откройте Дженкинса.XML-файл и измените номер порта, например 8088
Теперь откройте CMD и напишите
Источник
Дженкинс не удалось запустить в Linux
перейдите к запуску jenkins после выполнения обновления и получите следующее:
вот и все. ничего не появляется в журнале Дженкина. поэтому трудно отлаживать, мягко говоря. (и он еще не работает или что-то в этом роде).
есть ли еще один журнал, на который я должен смотреть, что было бы полезно? (Я предполагаю, что ответ на эту проблему будет несколько итеративным, поэтому, надеюсь, кто-то может начать меня на пути чтобы отладить это)
6 ответов
Итак, зная, что это была ошибка перед запуском, я позволил мне исследовать более глубоко.
дальнейшие раскопки позволили мне выяснить, что точная линия в /etc/init/jenkins.conf файл был одним, указывающим на /usr/share/jenkins/bin/maintain-plugins.sh
глядя на это место, я обнаружил, что его нет (т. е. не папку bin). Это значит, что jenkins-common не был установлен по какой-то причине. действительно странно. входим в apt-get и выполнение установки этого компонента снова привело к ошибка:
увидев эту ошибку раньше и обновив мою память через google, дал следующее решение:
это позволило продолжить установку common как обычно. После этого все, что мне нужно было сделать, это заменить /usr/share/jenkins/jenkins.war С моей резервной копией (потому что ubuntu намного отстает от последней версии), и я смог снова запустить сервер.
Я не совсем уверен, что вызвало проблему с самого начала, но это было вероятно во время процесс обновления/очистки apt-get. и из-за странности с Дженкинсом, конфликтующей с Дженкинсом-общим, он не заселил правильно.
несмотря на это, я рад, что он снова работает. 🙂
вместо этого вы можете запустить следующее Перед установкой, чтобы правильно очистить все conffiles, оставленные версией дистрибутива:
Источник
Как перезапустить Jenkins вручную
Я только начал работать с Дженкинсом и столкнулся с проблемой. После установки нескольких плагинов он сказал, что его нужно перезапустить и перешел в режим «выключения», но никогда не перезапускается.
Как сделать ручной перезапуск?
30 ответов
чтобы перезапустить Jenkins вручную, вы можете использовать любую из следующих команд (введя их URL в браузере):
(jenkins_url)/safeRestart — позволяет выполнять все выполняемые задания. Новые задания останутся в очереди для запуска после завершения перезапуска.
(jenkins_url)/restart — принудительный перезапуск без ожидания завершения сборки.
Если вы установили как об / мин или деб, потом service jenkins restart будет работать также.
на Ubuntu или Debian, при установке через apt-get / dpkg :
на Плагин SafeRestart необходимо упомянуть. Это довольно полезно (Безопасно Перезапустить). Он добавляет ссылку, чтобы иметь возможность перезагрузки из главного меню:
приведенные ниже команды работали для меня в Red Hat Linux и также должен работать для Ubuntu.
чтобы узнать статус Дженкинса:
чтобы начать Дженкинс:
чтобы остановить Дженкинса:
чтобы перезапустить Jenkins:
демо в командной строке:
в Windows, Если вы установили его как службу, перейдите в службы (старт → выполнить: services.msc ), найти Дженкинса, щелкните правой кнопкой мыши → перезагрузка.
Если это не помогает (пользовательский интерфейс не отвечает) откройте Диспетчер задач Windows → процессы убейте java.exe process и перезапустите службу еще раз.
Если вы используете Jenkins в Mac OS X, вы можете вручную остановить службу, выполнив эту команду:
Это также можно сделать с помощью Дженкинс командной строки:
на вместе с полным списком команд можно ознакомиться по адресу:!—2—>.
это зависит от того, как Дженкинс был запущен.
как сервиса: sudo service jenkins restart , sudo /etc/init.d/jenkins restart , etc.
как веб-приложение в установке Tomcat: перезапустите Tomcat или просто перезапустите приложение в Tomcat. Перейти к http:// :8080/manager/list или после аутентификации хит http:// :8080/manager/stop?path=/myapp + http:// :8080/manager/start?path=/myapp .
запущен с помощью just java -jar : убить его ( kill -9
), и возобновить его.
запустил с java -jar , но от надзирателя: supervisorctl restart jenkins
Если вы хотите просто обновить файл конфигурации, можно сделать
это быстрее, если вы сделали некоторые небольшие изменения в конфигурационный файл, как config.xml непосредственно в файловой системе, или копии задания через файловую систему (не через браузер).
иногда будут некоторые устаревшие процессы Дженкинса, поэтому ps -ef | grep jenkins убить их всех. Перезапустите, как описано в предыдущих ответах, и он будет чистым.
Если вы запустите FreeBSD:
На Windows
перейдите к установке Jenkins, откройте cmd и запустите:
Если вы можете получить доступ к нему в веб-браузере, просто добавьте /restart , например, localhost:8080/restart .
Если вы используете его как службу, войдите на свой сервер и выполните команду:
Для Mac
Остановить Дженкинс
Запустить Дженкинс
для перезапуска Дженкинса вручную с помощью браузера:
введите www.jenkins-ip/restart (например, http://localhost:8080/restart ) в браузере. Дженкинс перезапустится и загрузит страницу входа автоматически после перезагрузки.
несколько человек упомянули о необходимости перезапуска контейнера сервлета, если Jenkins не работает как автономный. Но Tomcat (или то, что используется) не нужно перезапускать. Tomcat может принудительно перезапустить контекст Дженкинса, если ваш перезапуск Дженкинса зависает.
но чтобы обратиться к другому комментарию, когда вы поместите Дженкинса в режим» выключения», он фактически не выключится. Он останавливает выполнение новых заданий и размещает гигантский красный баннер на системных страницах, чтобы все знает, что администратор хочет в конце концов снять его. Существуют плагины для запуска перезапуска контейнера сервлета для этого контекста после завершения всех сборок.
альтернативой является дождаться завершения последнего выполняемого задания, а затем вручную перебросить Дженкинса из контейнера (или через параметры командной строки, которые другие упоминали для автономной установки Дженкинса).
если он развернут как файл войны, перезапустите сервер приложений, например Tomcat.
Источник
Непрерывная интеграция и развертывание (Deployment) с помощью Jenkins
Сначала мне было трудно работать с Jenkins, потому что большинство статей по его установке и настройке устарели. Поэтому я пишу об этом, чтобы облегчить кому-то работу и сделать так, чтобы им не пришлось проходить через то, что пришлось пройти мне, устанавливая его.
Прежде всего, что такое Jenkins?
Jenkins — это средство автоматизации с открытым исходным кодом, которое используется для автоматизированного создания, тестирования и развертывания программного обеспечения, упрощая непрерывную интеграцию и непрерывное развертывание для пользователей.
По сути, это означает, что Jenkins (и многие другие инструменты) позволяют автоматизировать процесс развертывания или предоставления изменений в вашем программном обеспечении пользователям сразу после того, как эти изменения готовы. Представим насколько удобно пользователям видеть обновленные сайты сразу после объединения PR с master (или main).
Почему именно Jenkins?
У него сильное сообщество, поэтому найти поддержку не проблема.
Jenkins можно легко настроить, и я надеюсь доказать это в данной статье, так что читайте дальше.
В этом руководстве мы узнаем, как выполнить CI/CD для приложения Node с помощью Jenkins. Давайте начнем с определения всех шагов, которые мы предпримем, а затем подробно объясним их ниже:
Создайте репозиторий GitHub для приложения node
Создайте простое приложение node и поместите его на GitHub
Создайте приложение Heroku для развертывания
Добавьте веб-хук GitHub для внесения изменений в Jenkins
Сконфигурируйте приложение с помощью Jenkins
Добавьте плагины GitHub в Jenkins
Сконфигурируйте Jenkins для развертывания на Heroku после успешного тестирования
Необходимые условия
Учетная запись на GitHub. Можно зарегистрироваться здесь.
Сервер Ubuntu. Если вы студент и будете использовать Digital Ocean, то можете получить бонус размере $100, используя студенческий пакет разработчика GitHub. Создайте сервер Ubuntu с помощью этого руководства. Настройте сервер, следуя этому руководству по начальной настройке сервера Ubuntu 20.04, включая пользователя без права sudo-доступа, файрвол и доступ по SSH с вашей локальной машины.
Учетная запись Heroku. Можно зарегистрироваться здесь.
Учетная запись на GitHub. Можно зарегистрироваться здесь.
Сервер Ubuntu. Если вы студент и будете использовать Digital Ocean, то можете получить бонус размере $100, используя студенческий пакет разработчика GitHub. Создайте сервер Ubuntu с помощью этого руководства. Настройте сервер, следуя этому руководству по начальной настройке сервера Ubuntu 20.04, включая пользователя без права sudo-доступа, файрвол и доступ по SSH с вашей локальной машины.
Учетная запись Heroku. Можно зарегистрироваться здесь.
Итак, давайте начнем!
Шаг 1 — Создайте репозиторий GitHub для приложения node
Войдите в свою учетную запись GitHub и создайте новый репозиторий. Дайте ему имя по своему усмотрению, я назову свой jenkins-test . Для инициализации можно использовать README и .gitignore для Node. Также убедитесь, что ваш репозиторий установлен на public.
Шаг 2 — Создайте простое приложение node и разместите его на GitHub
После создания репозитория, клонируйте его на локальную машину с помощью следующей команды:
Не забудьте изменить repository_url на свой.
Чтобы создать файл package.json , откройте терминал и cd в папке проекта, затем запустите npm init и следуйте подсказкам. Я добавил скриншот, чтобы увидеть взаимодействие с CLI ниже.
Вы можете удалить или изменить то, что находится в блоке скриптов вашего файла package.json, и добавить start и test для запуска и тестирования приложения:
Мы будем использовать express для нашего примера приложения node, поэтому инсталлируйте его, запустив эту команду в терминале:
Далее создайте файл index.js, который будет служить точкой входа в наше приложение node, и добавьте в него следующие строки:
Запустите npm start и зайдите на http://localhost:4000/ через браузер для просмотра приложения Node, на экране появится Hello world.
Далее мы добавим пару тестов в наше приложение, впоследствии, с помощью CI, мы должны убедиться, что тесты доступны и выполняются перед тем как объединить изменения.
Итак, вернитесь в терминал, убедитесь, что вы находитесь в корневом каталоге вашего проекта, и установите пакеты jest и supertest с помощью следующей команды:
Далее в корневом каталоге проекта создайте папку и назовите ее __test__ (два знака подчеркивания, предшествующий и завершающий). Внутри этой папки __test__ создайте файл index.test.js и добавьте в него по крайней мере следующий код (вы всегда можете сделать свои тесты более полными).
Запустите npm test или npm run test в терминале, и вы убедитесь, что тест(ы) прошел(и):
Теперь, когда наш код запущен и тесты пройдены, можно закоммитить изменения и отправить их на GitHub.
Шаг 3 — Создание приложения Heroku для развертывания
Войдите в свою панель управления Heroku.
Посмотрите в правый верхний угол и нажмите на New.
Выберите Create new app (Создать новое приложение).
Добавьте App name (название приложения) по своему выбору и выберите регион (Choose a region), в котором вы находитесь.
Нажмите Создать приложение (Create app).
Вернитесь в терминал вашего проекта и login (войдите) в Heroku с помощью Heroku CLI. Если вы еще не установили Heroku CLI, вы можете прочесть эту статью.
После этого добавьте remote в ваш локальный репозиторий с помощью:
Затем введите код с помощью:
Это делается для того, чтобы убедиться, что все работает правильно, прежде чем автоматизировать его. Вы можете нажать open app (открыть приложение) на приборной панели приложения Heroku, чтобы проверить, правильно ли оно работает.
Шаг 4 — Установите Jenkins
Откройте новый терминал и войдите на свой сервер под учетной записью пользователя non-root.
После этого мы можем обновить ядро с помощью следующей команды:
Выполните следующую команду для установки java runtime:
Выполните следующие команды одну за другой для установки Jenkins.
Теперь, когда Jenkins и все зависимости инсталлированы мы можем запустить его с помощью:
Вы можете проверить успешность запуска Jenkins, используя:
Он должен показать active:
Поскольку Jenkins выполняется на порту 8080, давайте откроем его с помощью ufw:
Вы можете проверить состояние ufw с помощью:
Теперь посетите сайт http://ip_address:8080 для настройки Jenkins, на котором вы должны увидеть экран Unlock Jenkins.
Чтобы разблокировать Jenkins, вернитесь к терминалу и введите следующую команду для отображения пароля. Скопируйте пароль и вставьте его в поле Administrator password (Пароль администратора).
На следующем экране отображается Customize Jenkins (Настроить Jenkins), нажмите на Install suggested plugins (Установите предложенные плагины).
После завершения установки мы перейдем к экрану Create First Admin User (Создание первого пользователя-администратора). Введите Username (имя пользователя), Password (пароль), Full name (полное имя) и E-mail address (адрес электронной почты) для вашего пользователя, затем Save and Continue (Сохранить и продолжить).
После этого введите IP-адрес сервера, т.е. http://ip_address:8080, затем Save and Finish (Сохранить и Завершить).
Ура, Jenkins готов! Нажмите на Start using Jenkins (Начать использование Jenkins).
Шаг 5 — Добавьте веб-хук GitHub для внесения изменений в Jenkins
В репозитории GitHub приложения перейдите в Settings (Настройки), затем на боковой панели нажмите на Webhooks. Нажмите на Add webhooks (Добавить веб-хуки) и введите url Jenkins с приставкой /github-webhook/ в поле Payload URL.
Выберите application/json для Content-type.
Выберите Just the push event для события, запускающего веб-хук.
Установите флажок Active и нажмите Add webhook. Теперь GitHub может успешно отправлять события в Jenkins.
Шаг 6 — Сконфигурируйте приложение с помощью Jenkins
Откройте новую вкладку или окно терминала и войдите на свой сервер с той же учетной записью пользователя non-root.
В том же терминале включите привилегии root, используя:
После переключения пользователя с правами root и инсталляции npm, Jenkins автоматически создает нового пользователя после завершения установки. Переключитесь на него с помощью этой команды.
Сгенерируйте новый ключ SSH с помощью следующей команды:
Нажмите клавишу Enter для ввода местоположения и не указывайте пароль при запросе, просто нажмите клавишу Enter.
После завершения процесса распечатайте информацию об открытом ключе с помощью:
Скопируйте открытый ключ.
Теперь войдите обратно как пользователь non-root в новом терминале.
Откройте папку authorized_keys следующей командой:
Вставьте открытый ключ id_rsa и выйдите.
Чтобы убедиться, что ключи настроены правильно, переключитесь на терминал сервера jenkins и попробуйте войти в систему как пользователь non-root, используя ssh. Вы успешно войдете в систему, если будете следовать всем вышеописанным действиям.
Шаг 7 — Добавьте плагины GitHub в Jenkins
На приборной панели Jenkins перейдите в раздел Manage jenkins (Управление jenkins), а затем нажмите на Manage plugins (Управление плагинами).
На вкладке Available найдите github и выберите Github Integration plugin (Интеграционный плагин Github).
Нажмите на Install without restart (Установить без перезагрузки), и плагин будет установлен через несколько секунд.
Шаг 8 — Сконфигурируйте Jenkins для развертывания на Heroku после успешного тестирования
Теперь, когда GitHub подключен к Jenkins, мы можем создать новый проект.
На боковой панели нажмите на New Item (Новая тема), выберите Freestyle project из предложенных вариантов и нажмите OK.
Далее вы должны попасть на страницу конфигурации, но если этого не произошло, можно открыть ее, нажав Configure на левой боковой панели.
На странице конфигурации, во вкладке general (общие), отметьте Github project option (опцию проект Github) и добавьте Github project link (ссылку проекта Github) (url для репозитория вашего проекта, без расширения .git).
Далее прокрутите вниз до раздела Source Code Management (Управление исходным кодом), выберите Git и добавьте Repository URL с расширением .git (тот же url, который вы использовали для клонирования репозитория).
Вы можете изменить master ветвь на main или любые другие ветви, которые вам нужны для процесса развертывания.
Нажмите на кнопку Add repository (Добавить репозиторий), чтобы добавить второй репозиторий, указывающий на ваше приложение Heroku.
Чтобы получить ссылку на репозиторий приложения Heroku, перейдите в App settings (настройки приложения) на панели управления Heroku и скопируйте ссылку.
Вернитесь на приборную панель Jenkins и вставьте эту ссылку в Repository URL.
Нам понадобятся новые учетные данные, поэтому нажмите на Add, чтобы создать их для нашего приложения Heroku.
Выберите Jenkins из списка, и у вас должно появиться всплывающее окно.
Убедитесь, что Kind (Тип) — Username with password (Имя пользователя с паролем), а Scope (Область) — global (глобальная).
Введите username (имя пользователя) по своему выбору, но лучше всего, чтобы оно было каким-нибудь описательным. Я буду использовать heroku в качестве имени пользователя.
Далее нам нужно будет добавить Heroku Api key (Api-ключ) в поле Password
(Пароль) и Save (Сохранить). Чтобы получить Heroku Api key, перейдите на приборную панель Heroku, нажмите на Account Settings (Настройки аккаунта) и прокрутите вниз, чтобы увидеть Api key. Скопируйте его и вставьте в поле Password (Пароль).
Вы можете добавить Description (Описание) для этой учетной записи, если хотите.
Нажмите Add (Добавить), чтобы завершить создание учетной записи.
Теперь убедитесь, что в выпадающем списке выбраны новые учетные данные, которые мы только что создали. Если нет, нажмите на выпадающий список и выберите их.
Далее нажмите на advanced и добавьте Name, чтобы идентифицировать это хранилище среди других удаленных хранилищ. Это имя понадобится нам позже. Я назвал свое хранилище jenkinsTest, потому что это легко и понятно.
Далее прокрутите вниз до раздела Build Triggers и отметьте опцию GitHub hook trigger for GITScm polling (Триггер хука GitHub для опроса GITScm).
В разделе Build нажмите на кнопку Add build step (Добавить шаг сборки) и затем нажмите на Execute shell (Выполнить командную оболочку). Введите в оболочку следующий код:
Нажмите на Add post-build action (Добавить действие после сборки), выберите Git Publisher и укажите опцию Push Only If Build Succeeds (Запускать только в случае успеха сборки).
Нажмите на Add Branch (Добавить ветвь), введите имя ветви для развертывания в поле Branch to Push и добавьте Name, используемое для идентификации репозитория приложения Heroku, в поле Target remote name (мое имя было jenkinsTest, если вы помните, поэтому добавьте сюда свое).
Затем Save (сохраните).
Перейдите на приборную панель проекта, нажмите Build now (Построить сейчас) на левой боковой панели и с удовольствием наблюдайте за успешной сборкой вашего кода!
Внесите изменения в свой код и опубликуйте его на GitHub. Затем посмотрите, как ваш код будет автоматически развернут на Heroku.
Приглашаем всех желающих ознакомиться с онлайн-курсами, которые помогут прокачаться в JavaScript-разработке:
Источник