Jenkins 使用
一. 系统要求
最低要求
RAM > 256M,DISK > 1G
最小化团队
RAM > 1G,DISK > 50G+
二. 安装
1. 安装Jenkins
快捷安装
1
docker run --name jenkins -itd -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts
使用
docker-compose
安装1
2
3
4
5
6
7
8
9
10
11
12
13
14
15version: '3'
services:
jenkins:
container_name: 'jenkins'
image: jenkins/jenkins:lts
restart: always
user: jenkins:994 # 这里的 jenkins 要对应当前系统登录用户
ports:
- "8080:8080"
- "50000:50000"
- "10051:10051"
volumes:
- /home/jenkins/data:/var/jenkins_home
- /usr/bin/docker:/usr/bin/docker
- /var/run/docker.sock:/var/run/docker.sock
安装完成后,需要获取jenkins管理员
的初始密码
使用
docker logs -f jenkins
打印日志找到日志中输出的
hash密码
2. 进入Jenkins界面
- 在文本框中,输入刚刚获取到的 管理员密码,解锁
Jenkins
- 安装
Jenkins
插件- 插件安装方式有两种:
- 离线
- 在线
- 在线安装插件时,有部分插件需要用到
谷歌的服务
,这时候,需要配置代理。或者使用离线安装
- 常用插件
- GitHub
- Git client
- GitLab
- Gitlab Authentication
- PAM Authentication
- Matrix Authorization Strategy
- Role-based Authorization Strategy
- LDAP
- SSH Slaves
- WMI Windows Agents
- Build Timeout
- Dashboard View
- Folders
- ThinBackup
- AnsiColor
- Build With Parameters
- 插件安装方式有两种:
- 创建管理员
- 配置全局的
Jenkins
的回调地址(也是Jenkins
的登录地址)
三. 备份Jenkins
容器内部数据
使用
docker commit
进行备份1
2
3
4
5
6
7
8
9
10
11
12
13
14# ① 查找到当前运行的容器
docker ps | grep jenkins
# ② commit 当前容器
docker commit <当前容器的ID> <镜像名称>
# ③ 查看镜像
docker images | grep <镜像名称>
# ④ 重启镜像
docker run -itd -v /tmp:/tmp <镜像名称>
# ⑤ 查看容器名称
docker ps | grep <镜像名称>
# ⑥ 使用交互式终端,连接到容器,使用容器内部的cp命令,把容器内部的/var/jenkins_home目录,拷贝到容器的/tmp目录下
docker exec -it <容器名称> cp -r /var/jenkins_home /tmp
# ⑦ 停止并删除容器
docker stop <容器名称> && docker rm <容器名称>使用官方文档方式,进行备份
1
docker run --rm --volumes-from <需要备份的容器名称> -v /tmp/backup:/backup ubuntu tar cvf /backup/backup.tar /var/jenkins_home
使用
docker cp
命令,快速备份1
2
3
4# ① 查看容器ID
docker ps | grep <容器名称>
# ② 复制容器内部的 /var/jenkins_home 目录 到当前的 /tmp/目录下
docker cp <容器ID>:/var/jenkins_home /tmp/
四. Jenkins
使用 Gitlab
登录
进入
系统控制 > 全局安全配置
在
授权策略
中,选中Gitlab Commiter Authorization Strategy
配置
Gitlab Authorization Settings
注意:
1.
Admin User Names
必须和 Gitlab 超级管理员的UserName
对应,否则会丢失超级管理员权限在安全域中,选中
Gitlab Authentication Plugin
注意:
1.
Client ID
和Client Secret
要在Gitlab中获取 2.
GitLab Web URI
和GitLab API URI
为GitLab链接
进入
Gitlab
,选择管理中心
,进入应用
,并新增应用注意:
1. 重定向URI 为:`<jenkins地址>/securityRealm/finishLogin` 2. 必须要选中api
这时,我们会获取到
Client ID
和Client Secret
将得到的
Client ID
和Client Secret
填充到Jenkins
的安全域配置中
注意:
1.此时,如果还是无法登陆,需要在Gitlab
的 管理中心 > 网络 > 外发请求
中,把<允许Webhook和服务对本地网络的请求>
勾选上。