Jenkins 的安装与使用
介绍
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
快速安装
Jenkins中文官网:https://www.jenkins.io/zh/
使用 Docker Compose 部署
环境搭建
创建容器
- 在系统任意位置创建一个文件夹,此文档以
~/opt/docker/jenkins
为例
mkdir -p ~/opt/docker/jenkins && cd ~/opt/docker/jenkins
创建一些必要的文件或文件夹,保持目录结构如下示例:
mkdir -p ./{config,data,logs}
.
├── docker
│ └── jenkins
│ ├── docker-compose.yml
│ ├── data
│ └── config
│ └── logs
这个仅为参照,大家可按照自己的喜好即可。
注意:后续操作中,jenkins 产生的所有数据都会保存在这个目录,请妥善保存。
- 创建
docker-compose.yaml
version: '3'
services: # 集合
docker_jenkins:
user: root # 为了避免一些权限问题 在这我使用了root
privileged: true
restart: always # 重启方式
image: jenkins/jenkins:lts # 指定服务所使用的镜像 在这里我选择了 LTS (长期支持)
container_name: jenkins # 容器名称
ports: # 对外暴露的端口定义
- 8082:8080 # 访问Jenkins服务端口
- 50000:50000
environment:
TZ: Asia/Shanghai
volumes: # 卷挂载路径
- ./data:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker # 这是为了我们可以在容器内使用docker命令
- /usr/local/bin/docker-compose:/usr/local/bin/docker-compose
/usr/share/jenkins
包含了一些 Jenkins 的配置,比如:插件之类的,有需要也可以映射到宿主机中
- 启动服务
docker-compose up -d
实时查看日志:
docker-compose logs -f
- 访问地址
安装完成后访问地址:http://{部署Jenkins所在服务IP}:8080
此处会有几分钟的等待时间
使用 Docker 部署
环境搭建
创建容器
- 在系统任意位置创建一个文件夹,此文档以
~/opt/docker/jenkins
为例
mkdir -p ~/opt/docker/jenkins && cd ~/opt/docker/jenkins
创建一些必要的文件或文件夹,保持目录结构如下示例:
.
├── docker
│ └── jenkins
│ ├── data
│ └── config
│ └── logs
- 启动服务
docker run \
-u root \
--rm \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v /opt/docker/jenkins/data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
--name jenkins \
jenkins/jenkins:lts
查看运行日志:
docker ps # 查看containerId
docker logs [ID | NAME]
查看实时日志:
docker logs -f [ID | NAME]
注意检查 8080 是否已经占用!如果占用修改端口
- 访问地址
安装完成后访问地址:http://{部署Jenkins所在服务IP}:8080
此处会有几分钟的等待时间
操作指南
初始化
详情见官网教程:https://www.jenkins.io
解锁 Jenkins
- 方式一
进入Jenkins容器:docker exec -it {Jenkins容器名} bash
例如: docker exec -it jenkins bash
查看密码:cat /var/jenkins_home/secrets/initialAdminPassword
复制密码到输入框里面
- 方式二
查看日志获取密码
docker logs -f [ID|NAME]
# 或
docker-compose logs -f
正确输入密码后,按照推荐的指示引导操作,等到引导安装结束后进入Jenkins主页。
默认插件
无特别要求就选择推荐插件安装即可
创建管理员用户
重要配置
配置地址与邮箱
插件管理
安装 git paremeters
- 搜索插件
- 进入
首页
–系统管理
–插件管理
–可选插件
界面 - 搜索
git paremeters
插件,点击安装即可
- 配置插件
- 在项目常规项中勾选
This project is parameterized
,并选择Git Parameter
安装 nodejs
- 搜索插件
- 进入
首页
–系统管理
–插件管理
–可选插件
界面 - 搜索
nodejs
插件,点击安装即可
- 配置插件
- 进入
首页
–系统管理
–全局工具配置
界面 - 找到
NodeJS
配置栏
安装 Publish Over SSH
- 搜索插件
- 进入
首页
–系统管理
–插件管理
–可选插件
界面 - 搜索
ssh
插件,点击安装即可
- 配置插件
- 进入
首页
–系统管理
–全局工具配置
界面 - 找到
SSH Servers
配置栏
安装 Maven
- 搜索插件
- 进入
首页
–系统管理
–插件管理
–可选插件
界面 - 搜索
Maven Integration
插件,点击安装即可
- 配置插件
- 进入
首页
–系统管理
–全局工具配置
界面 - 找到
maven–maven
配置栏
安装中文语言
- 搜索插件
- 进入
首页
–系统管理
–插件管理
–可选插件
界面 - 搜索
Locale
插件,点击安装即可
安装完成后,在地址栏路径后输入 /restart
,将重启 Jenkins
- 配置插件
- 进入
首页
–系统管理
–系统配置
界面 - 找到
Default language
配置栏,输入zh_CN
或zh_TW
若以上方式无法生效,可尝试搜索 Localization: Chinese (Simplified)
插件
最新版的 Jenkins 可能存在翻译不全或不生效情况
FAQ
安装完成却出现 Jenkins 实例已离线情况
原因是 jenkins 在下载插件之前会先检查网络连接,其会读取 default.json
文件中的网址,该文件位于 /var/jenkins_home/updates
下,connectionCheckUrl
默认是访问谷歌地址,如果没翻墙可能就会出错,所以将 connectionCheckUrl
的值改为www.baidu.com
即可,更改完重启服务。
当安装完成后访问地址出现 HTTP ERROR 503
出现该画面,很有可能是防火墙问题,比如:未开放当前访问的端口等
Jenkins初始化安装插件异常,无法进行下一步
- 方式一
可尝试换一下网络或者检查是否开启代理之类的
- 方式二
该方式是以 Jenkins 安装在宿主机中,至于 Docker 可参照该方式的处理流程
- 停止 Jenkins 服务
sudo systemctl stop jenkins
- 修改
config.xml
文件
sudo vim /var/lib/jenkins/config.xml
Modify line 10 <useSecurity>true</useSecurity> to: <useSecurity>false</useSecurity>
Delete lines <authorizationStrategy …/> and <securityRealm …> to</securityRealm>