前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jenkins安装和持续集成环境配置

Jenkins安装和持续集成环境配置

作者头像
大忽悠爱学习
发布2022-09-27 16:00:11
8580
发布2022-09-27 16:00:11
举报
文章被收录于专栏:c++与qt学习c++与qt学习

Jenkins安装和持续集成环境配置


持续集成说明

在这里插入图片描述
在这里插入图片描述

● 首先,开发人员每天进行代码提交,提交到Git仓库。 ● Jenkins作为持续集成工具,使用Git工具到Git仓库拉取代码到持续集成服务器,再配合JDK,Maven等软件完成代码的编译、测试、审核、打包等工作,在这个过程中每一步出错,都重新再执行一次整个流程。 ● 最后,Jenkins把生成的jar包分发到测试服务器或者生产服务器,测试人员或用户就可以访问应用了。


Jenkins安装

  • Jenkins由Java编写,因此首先确保服务器上的jdk环境已经配置正确
卸载默认的JDK:
- 查询系统已安装的JDK:
yum list installed | grep -i java
- 卸载默认的JDK:
yum remove xxx
- 安装JDK11
yum -y install java-11-openjdk-devel
rpm -ivh jenkins-2.263-1.1.noarch.rpm
  • 修改Jenkins的配置
#低版本配置文件路径
vim /etc/sysconfig/jenkins
#高版本配置文件路径
vim /usr/lib/systemd/system/jenkins.service

#低版本配置文件修改:
#Jenkins安装完成后默认会创建一个jenkins的用户,并以jenkins用户运行,在我们通过jenkins编写一些命令的时候容易出现权限不足的
#因此我们将jenkins以root用户运行
JENKINS_USER="root"
#更改jks默认启动端口--默认为8080
JENKINS_PORT="8888"

高版本配置文件修改过程类似。

#修改配置后,重新加载配置
systemctl daemon-reload
#如果jks已经启动了,那么还需要重启jks
service jenkins restart

  • 启动Jenkins
systemctl start jenkins
  • 开机自启动
systemctl enable jenkins
  • 访问测试
http://服务器ip:8888。
在这里插入图片描述
在这里插入图片描述
  • 获取并输入密码
cat /var/lib/jenkins/secrets/initialAdminPassword
在这里插入图片描述
在这里插入图片描述
  • 跳过插件安装

因为Jenkins插件需要默认连接官网下载,速度巨慢,而且经常会失败,所以可以暂时跳过插件安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 添加一个管理员账户,并进入Jenkins后台
在这里插入图片描述
在这里插入图片描述

Jenkins插件管理

Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用。比如从Gitee拉取代码,使用Maven构建项目等功能都需要依靠插件完成。

  • 修改Jenkins插件的下载地址

● Jenkins国外官方插件地址下载速度非常慢,所以我们需要手动修改为国内插件地址。

● Jenkins–>Manage Jenkins–>Manage Plugins,点击Available。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这么做的目的是为了将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
在这里插入图片描述
在这里插入图片描述
  • 点击submit后,在浏览器输入http://xxx:8888/restart,重启Jenkins。

下载中文汉化插件

  • Jenkins–>Manage Jenkins–>Manage Plugins,点击Available,搜索“Chinese”。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 重启Jenkins后,就看到Jenkins汉化了(但是,可能部分菜单汉化会失败)。
在这里插入图片描述
在这里插入图片描述

Jenkins用户权限管理

  • Jenkins本身的授权管理是很粗糙的,我们可以使用“Role-based Authorization Strategy”插件来管理Jenkins的用户权限。

安装Role-based Authorization Strategy插件

在这里插入图片描述
在这里插入图片描述

开启全局安全策略

在这里插入图片描述
在这里插入图片描述
  • 授权策略切换为“Role-Based Stragegy”,保存。
在这里插入图片描述
在这里插入图片描述
  • 还需要允许用户的创建和注册
在这里插入图片描述
在这里插入图片描述

创建角色

  • Manage Jenkins–>Manage and Assign Roles:
在这里插入图片描述
在这里插入图片描述
  • 点击“Manage Roles”:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  • Global roles:全局角色,管理员等高级用户可以创建基于全局的角色。
在这里插入图片描述
在这里插入图片描述
  • Item roles:项目角色,针对某个或某些项目的角色。
在这里插入图片描述
在这里插入图片描述
  • Node roles:节点角色,节点相关权限的角色。

● 添加下面三个角色:

○ baseRole:该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑定最基本的Jenkins的访问权限。注意:如果不给后续的用户绑定这个角色,会报错:用户名 is missing the Overall/Read Permission。

在这里插入图片描述
在这里插入图片描述

○ role1:该角色为项目角色。使用正则表达式绑定“spring.*”,意思是只能操作spring开头的项目。

○ role2:该角色为项目角色。使用正则表达式绑定“springboot.*”,意思是只能操作springboot开头的项目。

在这里插入图片描述
在这里插入图片描述

【Jenkins】登录失败的问题


创建用户

  • Manage Jenkins–>Manage Users–>新建用户:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  • 分别创建两个用户:xpy和cjdhy
在这里插入图片描述
在这里插入图片描述

给用户分配权限

  • Manage Jenkins–>Manage and Assign Roles–>Assign Roles:
在这里插入图片描述
在这里插入图片描述

● 绑定规则如下:

○ xpy用户分别绑定baseRole和role1角色。

○ cjdhy用户分别绑定baseRole和role2角色。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Jenkins的凭证管理

凭证可以用来存储需要密文保护的数据库密码、GitHub密码信息、Docker私有仓库密码等,以便Jenkins可以和这些第三方应用进行交互。


安装Credentials Binding插件

要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件。

在这里插入图片描述
在这里插入图片描述
  • 安装插件后,多了“管理凭证”的菜单,在这里管理所有的凭证信息:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  • 可以添加的凭证有5种:
在这里插入图片描述
在这里插入图片描述

● 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密钥)。


安装Git插件和Git工具

● 为了让Jenkins支持从Gitee上拉取源码,需要安装Git插件以及在Centos7上安装Git工具。

● Git插件的安装:

在这里插入图片描述
在这里插入图片描述
  • 在CentOS7上安装Git:
yum install -y git
git --version

用户密码类型

创建凭证

● Jenkins–>凭证–>系统–>全局凭证–>添加凭证:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试凭证是否可用

创建自由项目:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  • 复制对应项目的url
在这里插入图片描述
在这里插入图片描述
  • 找到“源码管理”–>“Git”,将要构建项目的仓库地址复制进去
在这里插入图片描述
在这里插入图片描述
  • 此时,会报错说无法连接到仓库,那是因为没有选择刚才添加的凭证
在这里插入图片描述
在这里插入图片描述
  • 点击构建“Build Now”开始构建项目:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  • 查看/var/lib/jenkins/workspace/目录,可用发现已经从Gitee中成功拉取代码到Jenkins中。
在这里插入图片描述
在这里插入图片描述

SSH密钥类型

SSH免登录示意图

在这里插入图片描述
在这里插入图片描述

使用root用户生成公钥和私钥

● 使用root用户生成公钥和私钥:

ssh-keygen -t rsa
在这里插入图片描述
在这里插入图片描述
  • 默认生成的公钥和私钥在/root/.ssh目录中,其中id_rsa是私钥文件,id_rsa.pub是公钥文件:
ll /root/.ssh
在这里插入图片描述
在这里插入图片描述

把生成的公钥放到Gitlab中

● 以root账户登录–>点击头像–>Settings–>SSH Keys。

● 复制刚才生成的id_rsa.pub文件的内容,点击“Add Key”:

在这里插入图片描述
在这里插入图片描述

在Jenkins中添加凭证,配置私钥

  • 在Jenkins中添加凭证,类型为“SSH Username with private key”,把刚才生成的私钥文件的内容复制进去。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试凭证是否可用

  • 新建“test02”项目–>源码管理–>Git,这里要使用Gitlab的SSH连接,并且选择SSH凭证:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

同样尝试构建项目,如果代码可以正常拉取,则代表凭证配置成功。


Maven的安装和配置

  • 下载、安装和配置Maven
#下载
wget https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zip --no-check-certificate
#解压
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>
在这里插入图片描述
在这里插入图片描述
<mirrors>
    <!-- 修改内容 -->
    <mirror>
        <id>aliyunmaven</id>
        <mirrorOf>*</mirrorOf>
        <name>阿里云公共仓库</name>
        <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
</mirrors>
在这里插入图片描述
在这里插入图片描述

全局工具关联JDK和Maven

  • Jenkins–>Manage Jenkins–>Global Tool Configuration–>JDK–>新增JDK:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
JDK11
/usr/lib/jvm/java-11-openjdk-11.0.9.11-2.el7_9.x86_64

  • Jenkins–>Manage Jenkins–>Global Tool Configuration–>Maven->新增Maven:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
apache-maven-3.6.3
/usr/local/apache-maven-3.6.3

添加Jenkins全局变量

  • Jenkins–>Manage Jenkins–>Configure System–>Global Properties,添加三个全局变量:JAVA_HOME、M2_HOME和PATH+EXTRA。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
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

测试Maven是否配置成功

  • 对之前构建的测试项目,增加新的构建步骤
在这里插入图片描述
在这里插入图片描述

输入如下的构建命令:

mvn clean install
在这里插入图片描述
在这里插入图片描述
  • 再次构建,如果将项目打成jar包,代表Maven环境配置成功。
在这里插入图片描述
在这里插入图片描述

扩展

对于Maven项目部署来说,推荐安装下面这个插件,从而直接根据项目的pom文件进行项目的部署。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Jenkins安装和持续集成环境配置
  • 持续集成说明
  • Jenkins安装
  • Jenkins插件管理
    • 下载中文汉化插件
    • Jenkins用户权限管理
      • 安装Role-based Authorization Strategy插件
        • 开启全局安全策略
          • 创建角色
            • 创建用户
              • 给用户分配权限
              • Jenkins的凭证管理
                • 安装Credentials Binding插件
                • 安装Git插件和Git工具
                • 用户密码类型
                  • 创建凭证
                    • 测试凭证是否可用
                    • SSH密钥类型
                      • SSH免登录示意图
                        • 使用root用户生成公钥和私钥
                          • 把生成的公钥放到Gitlab中
                            • 在Jenkins中添加凭证,配置私钥
                              • 测试凭证是否可用
                              • Maven的安装和配置
                              • 全局工具关联JDK和Maven
                              • 添加Jenkins全局变量
                                • 测试Maven是否配置成功
                                • 扩展
                                相关产品与服务
                                持续集成
                                CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档