Jenkins学习笔记-安装和持续集成环境配置 – 记忆角落

Jenkins学习笔记-安装和持续集成环境配置

/ 0评 / 0

Jenkins学习笔记-安装和持续集成环境配置

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

2.1 持续集成流程说明

image-20210517153457256

2.2 Gitlab代码托管服务器安装

Gitlab简介

image-20210517153917005

官网: https://about.gitlab.com/

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的 web服务。

GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源(基于MIT协议),与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,你总不可能把团队内部的智慧总放在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。

详细请参考文档:Linux-Gitllab安装

2.3持续集成环境(1)-Jenkins安装和插件管理

详细请参考文档:Linux-Jenkins安装

2.4持续集成环境(2)-Jenkins用户权限管理

安装Role-based Authorization Strategy插件

Role-based Authorization Strategy

image-20210518145057483

开启权限全局安全配置

image-20210518145102631

授权策略切换为"Role-Based Strategy",保存

image-20210518145136916

创建角色

在系统管理页面进入Manage and Assign Roles

image-20210518145200630

点击"Manage Roles"

image-20210518145210203

Global roles(全局角色):管理员等高级用户可以创建基于全局的角色

Item roles(项目角色):针对某个或者某些项目的角色

Node roles(节点角色):节点相关的权限

添加以下角色:

image-20211219225956056

保存。

创建用户

在系统管理页面进入 Manage Users

image-20210518145434714

image-20210518145440967

image-20211219230406318

image-20211219230549017

分别创建两个用户:guoliangjun和hcxt

给用户分配角色

系统管理页面进入Manage and Assign Roles,点击Assign Roles

绑定规则如下:

image-20211219231228310

保存。

创建项目测试权限

以管理员账户创建两个项目,分别为glj01和hcxt01

image-20211219231426227

结果为:

2.5持续集成环境(3)-Jenkins凭证管理

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

安装Credentials Binding插件

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

安装插件后,系统管理多了"凭据和凭据配置"菜单,在这里管理所有凭证

image-20211219232045132

image-20210518150202753

可以添加的凭证有5种:

常用的凭证类型有:Username with password(用户密码)SSH Username with private key(SSH密钥)

安装Git插件和Git工具

接下来以使用Git工具到Gitlab拉取项目源码为例,演示Jenkins的如何管理Gitlab的凭证。为了让Jenkins支持从Gitlab拉取源码,需要安装Git插件以及在CentOS7上安装Git工具。

Git插件安装:

image-20210518150324503

登录到服务器上后安装Git工具:yum -y install git

用户密码类型

1.创建凭证

Jenkins->凭证->系统->全局凭证->添加凭证

选择"Username with password",输入Gitlab的用户名和密码,点击"确定"。

image-20211219232918740

2.测试凭证是否可用

创建一个FreeStyle项目:新建Item->FreeStyle Project->确定

image-20211219233143533

image-20211219233235683

保存配置后,点击构建”Build Now“ 开始构建项目

image-20210518162613757

image-20211219233527114

查看/data/jenkens_data/jenkins_home/workspace目录,发现已经从Gitlab成功拉取了代码到Jenkins中。

image-20211219233607149

SSH密钥类型

image-20210518162856553

1.jenkins服务器使用root用户生成公钥和私钥

ssh-keygen -t rsa

/root/.ssh/目录保存了公钥和使用

2.把生成的公钥放在Gitlab中

以glj账户登录->点击头像->preferences->SSH Keys

复制刚才id_rsa.pub文件的内容到这里,点击"Add Key"

3.在Jenkins中添加凭证

配置私钥 在Jenkins添加一个新的凭证,类型为"SSH Username with private key",把刚才生成私有文件内容复制

image-20211219234248536

4.测试凭证是否可用

新建"test02"项目->源码管理->Git,这次要使用Gitlab的SSH连接,并且选择SSH凭证

image-20211219234459026

image-20211219234553561

2.6持续集成环境(4)-Maven安装和配置

在Jenkins集成服务器上,我们需要安装Maven来编译和打包项目。

安装Maven

详细请参考文档:Linux-Maven环境安装

全局工具配置关联JDK和Maven

jdk

Jenkins->Global Tool Configuration->JDK->新增JDK,配置如下:

image-20210519164200178

这里的jdk是docker run时候已经提前做好了一个映射,详情看看docker方式安装jenkins

maven

Jenkins->Global Tool Configuration->Maven->新增Maven,配置如下:

image-20211220000638375

添加Jenkins全局变量

Manage Jenkins->Configure System->Global Properties ,添加三个全局变量 JAVA_HOME、M2_HOME、PATH+EXTRA

image-20211220001152555

修改jenkens-Maven的settings.xml

# 设置本地仓库 忽略,测试过不行.
<!--<localRepository>/var/maven_repo</localRepository>-->
# 设置远程拉取仓库
    <mirror>
      <id>aliyunmaven</id>
      <mirrorOf>*</mirrorOf>
      <name>阿里云公共仓库</name>
      <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
    <!--
    <mirror>
        <id>aliyunmaven</id>
        <mirrorOf>central</mirrorOf>
        <name>aliyun maven</name>
        <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
    -->
    <mirror>
        <id>alimaven</id>
        <mirrorOf>central</mirrorOf>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
    </mirror>
    <mirror>
        <id>central</id>
        <name>Maven Repository Switchboard</name>
        <url>http://repo1.maven.org/maven2/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
        <id>repo2</id>
        <mirrorOf>central</mirrorOf>
        <name>Human Readable Name for this Mirror.</name>
        <url>http://repo2.maven.org/maven2/</url>
    </mirror>
    <mirror>
        <id>ibiblio</id>
        <mirrorOf>central</mirrorOf>
        <name>Human Readable Name for this Mirror.</name>
        <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
    </mirror>
    <mirror>
        <id>jboss-public-repository-group</id>
        <mirrorOf>central</mirrorOf>
        <name>JBoss Public Repository Group</name>
        <url>http://repository.jboss.org/nexus/content/groups/public</url>
    </mirror>
    <mirror>
        <id>google-maven-central</id>
        <name>Google Maven Central</name>
        <url>https://maven-central.storage.googleapis.com
        </url>
        <mirrorOf>central</mirrorOf>
    </mirror>
    <!-- 中央仓库在中国的镜像 -->
    <mirror>
        <id>maven.net.cn</id>
        <name>oneof the central mirrors in china</name>
        <url>http://maven.net.cn/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>

测试Maven是否配置成功

使用之前的gitlab密码测试项目,修改配置

image-20210519170032989

构建->增加构建步骤->Execute Shell

image-20210519170039435

输入:mvn clean package

再次构建,如果可以把项目打成jar包,代表maven环境配置成功

image-20211220102254494

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注