一、安装JDK
Open jdk 下载:https://jdk.java.net/java-se-ri/11
![](https://img.haomeiwen.com/i13587608/a9af356f4637dfe5.png)
Oracle官网下载:https://www.oracle.com/java/technologies/downloads/
1、上传下载的压缩包
#在服务器上新建Java目录
mkdir /usr/local/java
2、解压JDK压缩包
tar -zxvf jdk-8u333-linux-x64.tar.gz
3、配置环境变量
#编辑配置文件
vim /etc/profile
#添加JDK配置
# jdk配置
export JAVA_HOME=/usr/local/java/jdk1.8.0_333
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JRE_HOME/lib
#按esc退出按wq!保存退出
#刷新配置
source /etc/profile
4、检查JDK是否安装成功
#查看JDK版本
java -version
二、Jenkins安装
下载地址:https://www.jenkins.io/zh/download/
2.1 下载Jenkins
wget http://mirrors.jenkins-ci.org/redhat/jenkins-2.263-1.1.noarch.rpm
2.2 安装Jenkins
rpm -ivh jenkins-2.263-1.1.noarch.rpm
2.3 修改Jenkins的配置
- 修改Jenkins的配置:
vim /etc/sysconfig/jenkins
JENKINS_USER="root"
JENKINS_PORT="8888"
2.4 启动Jenkins
- 启动Jenkins:
systemctl start jenkins
- 开机自启动:
systemctl enable jenkins
-
打开浏览器访问 http://192.168.18.101:8888
2.5 获取并输入密码
- 获取并输入密码:
cat /var/lib/jenkins/secrets/initialAdminPassword
![](https://img.haomeiwen.com/i13587608/124bd26da14e3ebe.png)
2.6 跳过插件安装
-
因为Jenkins插件需要默认连接官网下载,速度巨慢,而且经常会失败,所以可以暂时跳过插件安装。
![](https://img.haomeiwen.com/i13587608/d5d79853cae52289.png)
2.7 添加一个管理员账户,并进入Jenkins后台
![](https://img.haomeiwen.com/i13587608/ec888d692bcd75e3.png)
![](https://img.haomeiwen.com/i13587608/464f86d5da7b09fe.png)
![](https://img.haomeiwen.com/i13587608/d2abe8ef2f6952eb.png)
![](https://img.haomeiwen.com/i13587608/56a229835e8e4a08.png)
三、Jenkins插件管理
3.1 概述
- Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用。比如从Gitlab拉取代码,使用Maven构建项目等功能都需要依靠插件完成。
3.2 修改Jenkins插件的下载地址
● Jenkins国外官方插件地址下载速度非常慢,所以我们需要手动修改为国内插件地址。
● Jenkins–>Manage Jenkins–>Manage Plugins,点击Available。
![](https://img.haomeiwen.com/i13587608/f463b4c4abae68b9.png)
![](https://img.haomeiwen.com/i13587608/6cbc021e74a497f5.png)
![](https://img.haomeiwen.com/i13587608/fa5daa62190c729e.png)
这么做的目的是为了将Jenkins官方的插件列表下载到本地。
● 修改地址文件,替换为国内插件地址:
cd /var/lib/jenkins/updates
sed -i 's#http:\/\/updates.jekins-ci.org\/download#https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins#g' default.json && sed -i '#/http:\/\/www.google.com#https:\/\/www.baidu.com#g' default.json
● 点击Manage Plugins中的Advanced,将Update SIte改为国内插件下载地址:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
![](https://img.haomeiwen.com/i13587608/9889079fbd79eaec.png)
● 点击submit后,在浏览器输入http://192.168.18.101:8888/restart,重启Jenkins。
3.3 下载中文汉化插件
● Jenkins–>Manage Jenkins–>Manage Plugins,点击Available,搜索“Chinese”。
![](https://img.haomeiwen.com/i13587608/3a20023d53844237.png)
![](https://img.haomeiwen.com/i13587608/43a62a05c5ecfaa8.png)
● 重启Jenkins后,就看到Jenkins汉化了(但是,可能部分菜单汉化会失败)。
![](https://img.haomeiwen.com/i13587608/d69d3d87cdbe4987.png)
四、Jenkins用户权限管理
4.1 概述
● Jenkins本身的授权管理是很粗糙的,我们可以使用“Role-based Authorization Strategy”插件来管理Jenkins的用户权限。
4.2 安装Role-based Authorization Strategy插件
![](https://img.haomeiwen.com/i13587608/5d3f444f6648b56a.png)
4.3 开启全局安全策略
● 开启全局安全策略:
![](https://img.haomeiwen.com/i13587608/0fff94e4f93e542b.png)
● 授权策略切换为“Role-Based Stragegy”,保存。
![](https://img.haomeiwen.com/i13587608/da1d746df1c9bb23.png)
4.4 创建角色
● Manage Jenkins–>Manage and Assign Roles:
![](https://img.haomeiwen.com/i13587608/58c98c3e8c621539.png)
点击“Manage Roles”:
![](https://img.haomeiwen.com/i13587608/7a1a2a4e759b04e5.png)
![](https://img.haomeiwen.com/i13587608/a46e9aa7c6f8b44d.png)
● Global roles:全局角色,管理员等高级用户可以创建基于全局的角色。
● Item roles:项目角色,针对某个或某些项目的角色。
● Node roles:节点角色,节点相关权限的角色。
添加下面三个角色
- baseRole:该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑定最基本的Jenkins的访问权限。注意:如果不给后续的用户绑定这个角色,会报错:用户名 is missing the Overall/Read Permission。
- role1:该角色为项目角色。使用正则表达式绑定“spring.*”,意思是只能操作spring开头的项目。
- role2:该角色为项目角色。使用正则表达式绑定“springboot.*”,意思是只能操作springboot开头的项目。
![](https://img.haomeiwen.com/i13587608/409e088843741f52.png)
4.5 创建用户
● Manage Jenkins–>Manage Users–>新建用户:
![](https://img.haomeiwen.com/i13587608/3a9be5a0958c7daf.png)
![](https://img.haomeiwen.com/i13587608/92c8f784abd95261.png)
分别创建两个用户:jack和eric:
![](https://img.haomeiwen.com/i13587608/a008ec18c76a0081.png)
4.6 给用户分配权限
● Manage Jenkins–>Manage and Assign Roles–>Assign Roles:
![](https://img.haomeiwen.com/i13587608/d559bc587f33a03c.png)
![](https://img.haomeiwen.com/i13587608/f4a2dddcfecbdfc3.png)
绑定规则如下
- jack用户分别绑定baseRole和role2角色。
- eric用户分别绑定baseRole和role1角色。
![](https://img.haomeiwen.com/i13587608/541992065643caf6.png)
五、Jenkins的凭证管理
5.1 概述
- 凭证可以用来存储需要密文保护的数据库密码、GitHub密码信息、Docker私有仓库密码等,以便Jenkins可以和这些第三方应用进行交互。
5.2 安装Credentials Binding插件
-
要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件。
-
安装插件后,多了“管理凭证”的菜单,在这里管理所有的凭证信息:
![](https://img.haomeiwen.com/i13587608/a3cfe1536e80136e.png)
可以添加的凭证有5种:
![](https://img.haomeiwen.com/i13587608/ab41a98e7f7100a9.png)
- Username with password:用户名和密码。
- SSH Username with private key:使用SSH用户和密钥。
- Secret file:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径设置到一个变量中,等构建结束后,所复制的Secret file就会被删除。
- Secret text:需要保密的一个加密的文本串,比如钉钉或GitHub的api token。
- Certificate:通过上传证书文件的方式。
常用的凭证类型有:Username with password(用户名密码)和SSH Username with private key(SSH密钥)。
5.3 安装Git插件和Git工具
-
为了让Jenkins支持从Gitlab上拉取源码,需要安装Git插件以及在CentOS7上安装Git工具。
-
Git插件的安装:
-
在CentOS7上安装Git:
yum install -y git
git --version
5.4 用户密码类型
5.4.1 创建凭证
-
Jenkins–>凭证–>系统–>全局凭证–>添加凭证:
![](https://img.haomeiwen.com/i13587608/b0c1cb8ac9217bb4.png)
这里的用户名密码,并非乱填,填的是前面在gitlab上创建的用户zhangsan。
5.4.2 测试凭证是否可用
-
创建自由项目:
![](https://img.haomeiwen.com/i13587608/a712faf85d3847d5.png)
-
找到“源码管理”–>“Git”,在Repository URL复制Gitlab中的项目URL:
![](https://img.haomeiwen.com/i13587608/8e8e92a3936a8fd0.png)
-
此时,会报错说无法连接到仓库,那是因为没有选择刚才添加的凭证。
-
点击构建“Build Now”开始构建项目:
![](https://img.haomeiwen.com/i13587608/8cd656803c899a74.png)
![](https://img.haomeiwen.com/i13587608/35e19ec3f36be56f.png)
查看/var/lib/jenkins/workspace/目录,可用发现已经从Gitlab中成功拉取代码到Jenkins中。
![](https://img.haomeiwen.com/i13587608/75c425d984d1ed1d.png)
5.5 SSH密钥类型
5.5.1 SSH免登录示意图
![](https://img.haomeiwen.com/i13587608/21088e320546330d.png)
5.5.2 使用root用户生成公钥和私钥
- 使用root用户生成公钥和私钥(在gitlabel服务器上执行):
ssh-keygen -t rsa
![](https://img.haomeiwen.com/i13587608/29b01577be0c7847.png)
默认生成的公钥和私钥在/root/.ssh目录中,其中id_rsa是私钥文件,id_rsa.pub是公钥文件:
ll /root/.ssh
![](https://img.haomeiwen.com/i13587608/3a9dca9935102169.png)
5.5.3 把生成的公钥放到Gitlab中
- 以root账户登录–>点击头像–>Settings–>SSH Keys。
- 复制刚才生成的id_rsa.pub文件的内容,点击“Add Key”:
![](https://img.haomeiwen.com/i13587608/ce3cad78a7aac9bd.png)
5.5.4 在Jenkins中添加凭证,配置私钥
- 在Jenkins中添加凭证,类型为“SSH Username with private key”,把刚才生成的私钥文件的内容复制进去。
![](https://img.haomeiwen.com/i13587608/56d39e6197981450.png)
![](https://img.haomeiwen.com/i13587608/409f7fb9e5d26c66.png)
5.5.5 测试凭证是否可用
- 新建“test02”项目–>源码管理–>Git,这里要使用Gitlab的SSH连接,并且选择SSH凭证:
![](https://img.haomeiwen.com/i13587608/c5663b76f29e0516.png)
![](https://img.haomeiwen.com/i13587608/17e6ea0deb694141.png)
- 同样尝试构建项目,如果代码可以正常拉取,则代表凭证配置成功。
六、Maven的安装和配置
- 前提说明
服务器的IP是192.168.18.101。
防火墙已经关闭。
6.2 下载、安装和配置Maven
- 下载Maven:
wget https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zip
- 解压Maven:
unzip -d /usr/local apache-maven-3.6.3-bin.zip
- 配置环境变量:
vim /etc/profile
# 增加到文件的末尾
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.9.11-2.el7_9.x86_64
export MAVEN_HOME=/usr/local/apache-maven-3.6.3
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
source /etc/profile
- 查看是否安装成功:
mvn -v
修改Maven的本地仓库,并配置阿里云镜像:
cd /usr/local/apache-maven-3.6.3
mkdir repository
vim conf/settings.xml
<!-- 修改内容 -->
<localRepository>/usr/local/apache-maven-3.6.3/repository</localRepository>
![](https://img.haomeiwen.com/i13587608/85ceae6e0796add4.png)
<mirrors>
<!-- 修改内容 -->
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
![](https://img.haomeiwen.com/i13587608/79e1b31d52d48ea6.png)
6.3 全局工具关联JDK和Maven
-
Jenkins–>Manage Jenkins–>Global Tool Configuration–>JDK–>新增JDK:
![](https://img.haomeiwen.com/i13587608/f29e24759c35626b.png)
![](https://img.haomeiwen.com/i13587608/c8442f14c14f86a0.png)
JDK11
/usr/lib/jvm/java-11-openjdk-11.0.9.11-2.el7_9.x86_64
-
Jenkins–>Manage Jenkins–>Global Tool Configuration–>Maven->新增Maven:
![](https://img.haomeiwen.com/i13587608/16061ced1ae4cdd6.png)
apache-maven-3.6.3
/usr/local/apache-maven-3.6.3
6.4 添加Jenkins全局变量
-
Jenkins–>Manage Jenkins–>Configure System–>Global Properties,添加三个全局变量:JAVA_HOME、M2_HOME和PATH+EXTRA。
![](https://img.haomeiwen.com/i13587608/1037d7dde4669612.png)
JAVA_HOME
/usr/lib/jvm/java-11-openjdk-11.0.9.11-2.el7_9.x86_64
M2_HOME
/usr/local/apache-maven-3.6.3
PATH+EXTRA
$M2_HOME/bin
6.5 测试Maven是否配置成功
-
使用之前的gitlab密码测试项目,修改配置:
-
构建–>增加构建步骤–>Execute Shell。
-
输入如下的构建命令:
mvn clean install
![](https://img.haomeiwen.com/i13587608/6047e2efa88dea3f.png)
-
再次构建,如果将项目打成jar包,代表Maven环境配置成功。
七、Tomcat安装和配置
7.1 安装tomcat8.5
yum install java-1.8.0-openjdk* -y #安装JDK(已完成)
tar -xzf apache-tomcat-8.5.47.tar.gz #解压
mkdir -p /opt/tomcat #创建目录
mv /root/apache-tomcat-8.5.47/* /opt/tomcat #移动文件
/opt/tomcat/bin/startup.sh #启动tomcat
![](https://img.haomeiwen.com/i13587608/192de8996b53430a.png)
7.2 使用浏览器访问 tomcat
http://192.168.8.18:8080/
![](https://img.haomeiwen.com/i13587608/49563806f24c09c2.png)
7.3 配置Tomcat用户角色权限
默认情况下 Tomcat 是没有配置用户角色权限的
![](https://img.haomeiwen.com/i13587608/84cfda6b77c57a65.png)
![](https://img.haomeiwen.com/i13587608/829ba615e87d73df.png)
后续Jenkins部署项目到Tomcat服务器,需要用到Tomcat的用户,所以修改tomcat以下配置,添加用户及权限
vim /opt/tomcat/conf/tomcat-users.xml
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script"/>
![](https://img.haomeiwen.com/i13587608/80d6841116ab3305.png)
用户和密码都是:tomcat
注意:为了能够刚才配置的用户登录到 Tomcat,还需要修改以下配置,默认不许允许远程访问,现在需要注释掉
#开启远程访问
vim /opt/tomcat/webapps/manager/META-INF/context.xml
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
![](https://img.haomeiwen.com/i13587608/9b0a90b495fc418e.png)
如果不进行注释的话,构建的时候会出现如下报错:
![](https://img.haomeiwen.com/i13587608/3ef4e7764a5f2a53.png)
7.4 重启Tomcat,访问测试
/opt/tomcat/bin/shutdown.sh 停止
/opt/tomcat/bin/startup.sh 启动
![](https://img.haomeiwen.com/i13587608/4a2c5047204267bd.png)
![](https://img.haomeiwen.com/i13587608/78456857124772e5.png)
参考:
https://blog.csdn.net/qq_50660509/article/details/129007756
https://blog.csdn.net/weixin_41979002/article/details/121686628
网友评论