Jenkins部署

服务规划

部署服务 程序路径/数据目录 访问地址 帐号口令
jdk /usr/local/java/jdk1.8.0_251
maven /usr/local/apache-maven-3.6.3
jenkins /data/jenkins 3.1.101.36:8080

Docker镜像

1
docker pull jenkinsci/blueocean:1.24.4

镜像导出命令

1
docker save jenkinsci/blueocean:1.24.4 -o docker-jenkins-2.26.3.tar

镜像导入命令

1
docker load -i docker-jenkins-2.26.3.tar

JDK环境部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
## 解压到指定位置
mkdir -pv /usr/java/java1.8
tar -zxf jdk-8u271-linux-x64.tar.gz -C /usr/java/java1.8/

## 配置环境变量
cat > /etc/profile.d/java.sh << 'EOF'
#JAVA
JAVA_HOME=/usr/java/java1.8/jdk1.8.0_271
JRE_HOME=/usr/java/java1.8/jdk1.8.0_271/jre
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export JAVA_HOME JRE_HOME CLASSPATH PATH
EOF
chmod 777 /etc/profile.d/java.sh

## 生效环境
source /etc/profile

验证

1
2
3
4
java -version
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b08, mixed mode)

MAVEN环境部署

1
2
tar -zxf apache-maven-3.6.3-bin.tar.gz
mv apache-maven-3.6.3 /usr/local/

配置JAVA环境变量

1
2
3
4
5
6
7
8
9
cat > /etc/profile.d/M3.sh << 'EOF'
#MAVEN
MAVEN_HOME=/usr/local/apache-maven-3.6.3
PATH=$MAVEN_HOME/bin:$PATH
export MAVEN_HOME PATH
EOF
chmod 777 /etc/profile.d/M3.sh

source /etc/profile

验证

1
2
3
4
5
6
7
mvn -version
输出如下,maven环境生效
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/apache-maven-3.6.3
Java version: 1.8.0_251, vendor: Oracle Corporation, runtime: /usr/local/java/jdk1.8.0_251/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1127.el7.x86_64", arch: "amd64", family: "unix"

创建数据目录

1
2
mkdir -pv /data/jenkins/jenkins_home
mkdir -pv /data/docker-compose/jenkins

Docker-compose编排

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
cat > /data/docker-compose/jenkins/docker-compose.yml << EOF
version: "3"
services:
jenkins:
container_name: jenkins
image: jenkinsci/blueocean:1.25.0
hostname: jenkins
restart: always
user: root
ports:
- 8080:8080
- 50000:50000
volumes:
- /data/jenkins/jenkins_home:/var/jenkins_home
- /etc/localtime:/etc/localtime
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /usr/local/apache-maven-3.6.3:/usr/local/apache-maven3
- /usr/java/java1.8/jdk1.8.0_271:/usr/java/java1.8/jdk1.8.0_271
deploy:
resources:
limits:
memory: 4G
reservations:
memory: 4G
EOF

替换jenkins数据

将jenkins-data.tar.gz解压内容放到jenkins_home目录下,重启jenkins

注意事项

  1. 如果需要docker命令,如docker构建,就需要把宿主机的/var/run/docker.sock和/usr/bin/docker映射到容器中去
  2. 如果外网模式下下载插件,执行如下步骤能加快速度

更换jenkins插件源: 插件管理->高级设置

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

更换下载地址

1
2
cd /data/jenkins/jenkins_home/updates
sed -i 's#https://updates.jenkins.io/download#https://mirrors.tuna.tsinghua.edu.cn/jenkins#g' default.json && sed -i 's#http://www.google.com#https://www.baidu.com#g' default.json

重启jenkins

1
docker-compose restart jenkins

jenkins常用插件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
插件源地址
https://updates.jenkins.io/update-center.json
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json


## 基础插件
//中文插件
Chinese (Simplified)

// pipeline阶段视图
Pipeline Stage View

//LDAP集中用户管理
LDAP Plugin

//工作区清理
Workspace Cleanup

//角色权限管理
Role-based Authorization
Authorize Project

//凭证管理
Credentials Binding

//配置文件管理
Config File Provider

//右键发送
Email Extension

//通过SSH方式管理节点
SSH Build Agents
SSH Agent


## 任务相关插件
//扩展参数插件
Extended Choice
Active Choice Parameter
Dynamic Extended Choice ParameterVersion


//流水线插件管理
Pipeline

//git插件
Git Plugin
GitLab

//Git Parameter插件(构建时可选分支和tag)
Git Parameter

//获取harbor镜像标签
Image Tag Parameter

//Maven插件
Maven Integration
Pipeline Maven Integration

//SonarQube插件
SonarQube Scanner

//K8S相关插件
Kubernetes
Kubernetes Continuous Deploy

//部署推送插件
Deploy WebLogic
Deploy to container

//远程部署
Publish Over SSH