跳至主要內容

Jenkins

微信公众号:储凡About 8 min

Jenkins

安装

Jenkins支持多种安装方式,不限于Mac系统、Linux系统,由于Docker容器技术的普及,这里更加推荐使用容器安装。 具体可以参考官网安装说明open in new window

Mac系统

在Mac系统中,Jenkins的安装可以借助brew工具,例如:

## 安装
brew install jenkins-lts
## M1芯片添加arch -arm64 安装
arch -arm64 brew install jenkins-lts

## 启动
brew services start jenkins-lts
## 重启 
brew services restart jenkins-lts
## 手动更新 
brew upgrade jenkins-lts

Linux系统

基于apt-get进行安装,LTS(长期支持)版本 每 12 周从常规版本流中选择一次作为该时间的稳定版本时期

sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
  https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
  https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
  /etc/apt/sources.list.d/jenkins.list > /dev/null
  
## 软件更新
sudo apt-get update
## 安装jenkins
sudo apt-get install jenkins

基于yum进行安装,安装LTS(长期支持)版本 ,每 12 周从常规版本流中选择一次作为该时间的稳定版本时期

sudo wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key

## 软件更新
sudo yum upgrade
## 安装jenkins需要的jdk
sudo yum install fontconfig java-17-openjdk
## 安装jenkins
sudo yum install jenkins
## 重新加载配置
sudo systemctl daemon-reload

在Linux系统中安装完成后,可以对jenkins服务进行管理,设置开机提供、维护服务状态等,例如:

## 设置开机重启
sudo systemctl enable jenkins
## 启动
sudo systemctl start jenkins
## 暂停
sudo systemctl stop jenkins
## 重启
sudo systemctl restart jenkins
## 查看服务状态
sudo systemctl status jenkins

容器安装

使用Docker安装,注意文件映射,执行命令:

## docker安装jenkins
docker run \
  --name jenkins-blueocean \
  --restart=on-failure \
  -d \
  --env DOCKER_HOST=tcp://docker:2376 \
  --env DOCKER_CERT_PATH=/certs/client \
  --env DOCKER_TLS_VERIFY=1 \
  --publish 8080:8080 \
  --publish 50000:50000 \
  --volume jenkins-data:/var/jenkins_home \
  --volume jenkins-docker-certs:/certs/client:ro \
  jenkins/jenkins

使用Docker-Compose安装,配置如下:

##
## 支持服务:
##    - Jenkins 端口映射  8080(连接端口)  50000(管理端口)
##
##
## 运行指令:
##    - 统一刷新启动   docker-compose up -d
##    - 挂掉          docker-compose down
##    - 重启          docker-compose restart
##
version: '3'
services:
  jenkins:
    image: jenkins/jenkins
    container_name: jenkins
    ## 权限问题 使用root用户
    user: root
    privileged: true
    hostname: jenkins_dev
    restart: unless-stopped
    ports:
      - "6080:8080"
      - "6081:50000"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - $(pwd)/jenkins:/var/jenkins_home
      ## 支持容器内使用Mac本机docker服务
      ## - /usr/bin/docker:/usr/bin/docker
      ## - /var/run/docker.sock:/var/run/docker.sock
    environment:
      JENKINS_OPTS: "--prefix=/jenkins"
      JENKINS_ARGS: "--prefix=/jenkins"

不论使用Docker还是Docker-Compose安装Jenkins服务,都会启动Jenkins容器服务,对于容器可以使用一些常用的命令进行管理,例如:

## 启动
docker start jenkins
## 停止
docker stop jenkins
## 重启
docker restart jenkins
## 查看容器信息
docker inspect jenkins
## 查看容器日志
docker logs jenkins

## 集群管理
docker-compose up -d
docker-compose down
docker-compose start jenkins

除了使用官方提供的jenkins镜像,还可以自定义镜像,这个在jenkins官网有详细说明, 这里基于jenkins镜像构建的核心功能提供对应的Dockerfile配置。 自定义jenkins镜像可以基于此来拓展,参考:

FROM jenkins/jenkins:2.426.2-jdk17

## 设置管理用户
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 docker-workflow"

配置完成后,可以使用docker build命令构建,例如:

## 构建自定义jenkins镜像
docker build -t jenkins .

使用

当Jenkins服务正常启动后,Jenkins默认暴露808050000两个端口,在浏览器中访问http://127.0.0.1:8080即可Jenkins网站open in new window

这里需要明白,Jenkins的端口也可以自定义或者进行端口映射

浏览器访问Jenkins
浏览器访问Jenkins

按照提示到目标路径下,找对对应的初始化密码,粘贴到输入框中就可以顺利使用Jenkins啦

打印初始化密码
打印初始化密码

如果是本机部署,在终端中执行命令,打印密码

## 对应
sudo cat /var/lib/jenkins/secrets/initialAdminPassword

如果是Docker容器部署,需要进入容器找到对应文件,打印密码。例如:

## 进入容器
docker exec -it jenkins sh
## 打印密码
cat /var/jenkins_home/secrets/initialAdminPassword
## 退出容器
exit

上面的命令也可以精简为:

sudo docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword