Установка Jenkins

Содержание
Установка через Docker в Ubuntu
Jenkins в Docker Compose
Jenkins в Windows
Статьи про Jenkins

Установка через Docker в Ubuntu

Предварительно нужно установить Docker

sudo apt -y update
docker pull jenkins/jenkins:lts

lts: Pulling from jenkins/jenkins 67e8aa6c8bbc: Pull complete d4b310eb3fdf: Pull complete 79f2f383117e: Pull complete 8b0534c7187a: Pull complete e4ebc026722c: Pull complete b8b2b1a015c7: Pull complete 1308663db51f: Pull complete a9980750ebb2: Pull complete 771a2a8f3665: Pull complete 8767b747a3d4: Pull complete 68fbb5fc468d: Pull complete 76dd80acf4f6: Pull complete bb3b9e0921fc: Pull complete f469501b9a46: Pull complete c35c92bf7d6e: Pull complete e4260d58d0c6: Pull complete 62d1b6acbca2: Pull complete Digest: sha256:9893bfe43a850a0c80a4dc6e40d212e345ce8ad5537a4cf1d3f2033787a43695 Status: Downloaded newer image for jenkins/jenkins:lts docker.io/jenkins/jenkins:lts

Проверить скачался ли образ можно выполнив

docker images

REPOSITORY TAG IMAGE ID CREATED SIZE jenkins/jenkins lts cb535f2a7054 17 hours ago 464MB

https://github.com/jenkinsci/docker

docker run -p 8080:8080 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts

Running from: /usr/share/jenkins/jenkins.war webroot: EnvVars.masterEnvVars.get("JENKINS_HOME") 2024-04-20 00:01:07.521+0000 [id=1] INFO org.eclipse.jetty.util.log.Log#initialized: Logging initialized @1893ms to org.eclipse.jetty.util.log.JavaUtilLog 2024-04-20 00:01:07.888+0000 [id=1] INFO winstone.Logger#logInternal: Beginning extraction from war file 2024-04-20 00:01:11.243+0000 [id=1] WARNING o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath 2024-04-20 00:01:11.483+0000 [id=1] INFO org.eclipse.jetty.server.Server#doStart: jetty-9.4.43.v20210629; built: 2021-06-30T11:07:22.254Z; git: 526006ecfa3af7f1a27ef3a288e2bef7ea9dd7e8; jvm 11.0.15+10 2024-04-20 00:01:12.436+0000 [id=1] INFO o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet 2024-04-20 00:01:12.611+0000 [id=1] INFO o.e.j.s.s.DefaultSessionIdManager#doStart: DefaultSessionIdManager workerName=node0 2024-04-20 00:01:12.614+0000 [id=1] INFO o.e.j.s.s.DefaultSessionIdManager#doStart: No SessionScavenger set, using defaults 2024-04-20 00:01:12.618+0000 [id=1] INFO o.e.j.server.session.HouseKeeper#startScavenging: node0 Scavenging every 600000ms 2024-04-20 00:01:14.142+0000 [id=1] INFO hudson.WebAppMain#contextInitialized: Jenkins home directory: /var/jenkins_home found at: EnvVars.masterEnvVars.get("JENKINS_HOME") 2024-04-20 00:01:14.837+0000 [id=1] INFO o.e.j.s.handler.ContextHandler#doStart: Started w.@3efedc6f{Jenkins v2.332.3,/,file:///var/jenkins_home/war/,AVAILABLE}{/var/jenkins_home/war} 2024-04-20 00:01:14.926+0000 [id=1] INFO o.e.j.server.AbstractConnector#doStart: Started ServerConnector@3e7634b9{HTTP/1.1, (http/1.1)}{0.0.0.0:8080} 2024-04-20 00:01:14.929+0000 [id=1] INFO org.eclipse.jetty.server.Server#doStart: Started @9305ms 2024-04-20 00:01:14.957+0000 [id=23] INFO winstone.Logger#logInternal: Winstone Servlet Engine running: controlPort=disabled 2024-04-20 00:01:15.694+0000 [id=28] INFO jenkins.InitReactorRunner$1#onAttained: Started initialization 2024-04-20 00:01:15.780+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: Listed all plugins 2024-04-20 00:01:18.789+0000 [id=28] INFO jenkins.InitReactorRunner$1#onAttained: Prepared all plugins 2024-04-20 00:01:18.799+0000 [id=28] INFO jenkins.InitReactorRunner$1#onAttained: Started all plugins 2024-04-20 00:01:18.855+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: Augmented all extensions 2024-04-20 00:01:20.773+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: System config loaded 2024-04-20 00:01:20.776+0000 [id=28] INFO jenkins.InitReactorRunner$1#onAttained: System config adapted 2024-04-20 00:01:20.779+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: Loaded all jobs 2024-04-20 00:01:20.783+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/var/jenkins_home/war/WEB-INF/lib/groovy-all-2.4.21.jar) to method java.lang.Object.finalize() WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release 2024-04-20 00:01:21.988+0000 [id=42] INFO hudson.model.AsyncPeriodicWork#lambda$doRun$1: Started Download metadata 2024-04-20 00:01:22.051+0000 [id=42] INFO hudson.util.Retrier#start: Attempt #1 to do the action check updates server 2024-04-20 00:01:22.630+0000 [id=28] INFO jenkins.install.SetupWizard#init: ************************************************************* ************************************************************* ************************************************************* Jenkins initial setup is required. An admin user has been created and a password generated. Please use the following password to proceed to installation: 321f104e70794cf4b718144333217a3a This may also be found at: /var/jenkins_home/secrets/initialAdminPassword ************************************************************* ************************************************************* ************************************************************* 2024-04-20 00:02:13.751+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: Completed initialization 2024-04-20 00:02:13.836+0000 [id=22] INFO hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running 2024-04-20 00:02:15.552+0000 [id=42] INFO h.m.DownloadService$Downloadable#load: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller 2024-04-20 00:02:15.554+0000 [id=42] INFO hudson.util.Retrier#start: Performed the action check updates server successfully at the attempt #1 2024-04-20 00:02:15.569+0000 [id=42] INFO hudson.model.AsyncPeriodicWork#lambda$doRun$1: Finished Download metadata. 53,575 ms

Примерно в этот момент нужно открыть в браузере url вида ip_jenkins:8080 и скопировать туда пароль

localhost:8080

В данном примере установка идёт в VirtualBox на машине с ip 192.168.56.206, поэтому я ввёл

http://192.168.56.206:8080

Unlock Jenkins изображение с сайта www.eth1.ru
Разблокировать Jenkins
www.eth1.ru

В случае успеха Вам будет предложено настроить плагины

Customize Jenkins изображение с сайта www.eth1.ru
Кастомизировать Jenkins
www.eth1.ru

Выберем рекомендованные плагины

Getting Started Jenkins изображение с сайта www.eth1.ru
Установка плагинов Jenkins
www.eth1.ru

После установки плагинов нужно создать администратора

Create First Admin User Jenkins изображение с сайта www.eth1.ru
Создать админа Jenkins
www.eth1.ru
Create First Admin User Jenkins изображение с сайта www.eth1.ru
Создать админа Jenkins
www.eth1.ru

Далее будет предложено внести настройки. Меня пока устраивает то что по умолчанию

Instance Configuration Jenkins изображение с сайта www.eth1.ru
Instance Configuration Jenkins
www.eth1.ru

Теперь Jenkins готов к работе.

Jenkins is Ready изображение с сайта www.eth1.ru
Jenkins готов к работе
www.eth1.ru

Где-то в процессе настройки я получил следующее сообщение

client_loop: send disconnect: Broken pipe

И меня выкинуло и из запуска контейнера и из виртуалки. Поэтому я перезашёл туда и проверил обстановку

root@ubuntuserver:/home/andrei# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE jenkins/jenkins lts cb535f2a7054 18 hours ago 464MB

root@ubuntuserver:/home/andrei# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f6f4521cd9a3 jenkins/jenkins:lts "/sbin/tini -- /usr/…" 53 minutes ago Up 53 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 50000/tcp tender_ardinghelli

Изображение баннера

Jenkins в Docker Compose

Предварительно нужно установить Docker Compose

Структура

qa-demo-project ├── docker-compose.yml ├── dockerfiles │ ├── Dockerfile.jenkins └── GNUmakefile

# docker-compose.yml version: '3.8' services: jenkins: # image specified in Dockerfile # image: jenkins/jenkins:lts restart: always privileged: true user: root build: context: ./dockerfiles dockerfile: Dockerfile.jenkins args: buildversion: 1 ports: - "8080:8080" - "50000:50000" container_name: jenkins networks: net1: ipv4_address: 10.5.0.6 jenkins: ipv4_address: 10.7.0.6 volumes: - /var/run/docker.sock:/var/run/docker.sock networks: net1: driver: bridge ipam: config: - subnet: 10.5.0.0/16 gateway: 10.5.0.1 jenkins: driver: bridge ipam: config: - subnet: 10.7.0.0/16 gateway: 10.7.0.1

Dockerfile.jenkins

FROM jenkins/jenkins:2.375.1 USER root RUN apt-get update && apt-get install -y lsb-release RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ https://download.docker.com/linux/debian/gpg RUN echo "deb [arch=$(dpkg --print-architecture) \ signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins RUN jenkins-plugin-cli --plugins "blueocean:1.26.0 docker-workflow:563.vd5d2e5c4007f"

GNUmakefile

PHONY: jenkins-docker jenkins-docker: # docker compose build jenkins docker compose up -d jenkins docker exec -it jenkins bash

Windows

Про установку Jenkins в Windows вы можете прочитать здесь

Статьи про Jenkins
Jenkins
Установка Jenkins
Установка Jenkins в Docker
Установка Jenkins в Docker Compose
Установка Jenkins в Windows
Make
Изображение баннера

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: