jenkins01-Jenkins安装和简单使用

1、Jenkins简介

  • Jenkins官网:https://www.jenkins.io/
  • Jenkins说明文档:https://www.jenkins.io/doc/
  • Jenkins是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。
  • Jenkins是一款使用Java语言开发的开源的自动化服务器。可以通过界面或Jenkinsfile告诉它执行什么任务,何时执行。理论上,可以让它执行任何任务,但是通常只应用于持续集成和持续交付。
  • Jenkins的特征:
    • 开源的Java语言开发持续集成工具,支持持续集成,持续部署。
    • 易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。
    • 消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。
    • 分布式构建:支持Jenkins能够让多台计算机一起构建/测试。
    • 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
    • 丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git、svn、maven、docker等。
  • 持续集成流程:
    • (1)首先,开发人员每天进行代码提交,提交到Git仓库
    • (2)然后,Jenkins作为持续集成工具,使用Git插件到Git仓库拉取代码到集成服务器,再配合JDK、Maven等软件完成代码编译、代码测试与审查、测试、打包等工作,在这个过程中每一步出错,都重新再执行一次整个流程。
    • (3)最后,Jenkins把生成的jar或war包分发到测试服务器或者生产服务器,测试人员或用户就可以访问应用。

2、安装Jenkins

2.1、安装前的准备

2.1.1、安装JDK

1、查看Jenkins需要的JDK版本

  • https://www.jenkins.io/doc/

2、安装JDK

  • 安装JDK见:https://www.cnblogs.com/maiblogs/p/17660099.html

2.1.2、安装Maven

  • 安装Maven见:https://www.cnblogs.com/maiblogs/p/17660117.html

2.1.3、安装Git

  • 安装Git见:https://www.cnblogs.com/maiblogs/p/17192395.html

2.2、安装Jenkins

1、下载jenkins

Jenkins官网镜像: https://mirrors.jenkins.io/

2、安装jenkins

]# yum install ./jenkins-2.277.1-1.1.noarch.rpm

3、配置jenkins

//(1)修改配置文件
]# vim /etc/sysconfig/jenkins
JENKINS_HOME="/data/jenkins"
JENKINS_PORT="18081"

//(2)创建目录
]# mkdir -p /data/jenkins
]# chown jenkins.jenkins /data/jenkins

//(3)添加java软链(或将java路径添加到/etc/init.d/jenkins文件)
]# ln -s /usr/local/jdk/bin/java /usr/bin/java


//注意,新版的jenkins有unit文件(如jenkins-2.346.3)
//修改unit文件
]# vim /usr/lib/systemd/system/jenkins.service
Environment="JENKINS_HOME=/data/jenkins"
WorkingDirectory=/data/jenkins
Environment="JENKINS_PORT=18081"
//使unit文件生效
]# systemctl daemon-reload

4、启动jenkins

//启动jenkins
]# systemctl start jenkins
  • 启动jenkins时报错:Job for jenkins.service failed because a timeout was exceeded.
    • 解决问题:修改/data/jenkins/hudson.model.UpdateCenter.xml文件(第一次启动jenkins时会自动生成该文件),再重启服务。
//修改前
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://updates.jenkins.io/update-center.json</url>
  </site>
</sites>
 
//修改后
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>
</sites>
View Code

5、访问jenkins

  • (1)、登录jenkins

  • (2)、首次登录时跳过插件安装

3、安装jenkins插件的方法

  • Jenkins自身提供的功能并不多,很多功能是通过插件实现的。

3.1、在线安装插件

  • jenkins默认的是拉取官方的插件仓库,但官方仓库在国外,因此要将官方的仓库换成国内的。

3.1.1、使用国内的插件源

1、在jenkins界面上修改仓库源

  • 将https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json复制到红框里,该信息会写到/data/jenkins/hudson.model.UpdateCenter.xml文件中
  • Jenkins --> Manage Jenkins --> Manage Plugins --> [Advanced]

2、修改插件文件

//这个文件有插件的信息
]# sed -i 's#https://www.google.com#https://www.baidu.com#g' /data/jenkins/updates/default.json
]# sed -i 's#https://updates.jenkins.io/download#https://mirrors.tuna.tsinghua.edu.cn/jenkins#g' /data/jenkins/updates/default.json

3、重启jenkins服务

3.1.2、安装插件

  • Jenkins --> Manage Jenkins --> Manage Plugins --> [Available]

3.2、离线安装

1、查找要安装的插件及其版本

  • 下载插件的地址:https://updates.jenkins-ci.org/download/plugins
  • 搜索插件的地址:https://plugins.jenkins.io/
  • 因为我安装的是jenkins-2.277.1,因此要选择1.0.24来适配jenkins。

2、安装插件

//(1)将插件安装包放到/data/jenkins/plugins目录中

//(2)重启jenkins服务

4、汉化插件

  • 可以使用"Localization: Chinese (Simplified)"插件来汉化Jenkins。

5、用户权限管理插件

  • 可以使用"Role-based Authorization Strategy"插件来管理Jenkins的用户权限。

5.1、创建用户

  • Jenkins --> Manage Jenkins --> Manage Users
    • 创建2个用户,分别是hh01、hh02。

5.2、基于项目矩阵授权策略

1、开启权限全局安全配置

  • Jenkins --> Manage Jenkins --> Configure Global Security
    • 选择"项目矩阵授权策略"的授权策略,并保存。

2、对用户授权

  • Jenkins --> Manage Jenkins --> Configure Global Security

5.3、基于角色的授权策略

1、开启权限全局安全配置

  • Jenkins --> Manage Jenkins --> Configure Global Security
    • 选择"Role-Based Strategy"的授权策略,并保存。

2、创建角色

  • Jenkins --> Manage Jenkins --> Manage and Assign Roles --> Manage Roles(管理角色)
    • Global roles(全局角色):管理员等高级用户可以创建基于全局的角色
    • Item roles(项目角色):针对某个或者某些项目的角色
    • Node roles(节点角色):节点相关的权限

  • 添加以下三个角色:
    • baseRole:该角色为全局角色。仅授予Overall的Read权限,是为了给所有用户授予最基本的Jenkins访问权限。
      • 注意:如果不给后续用户绑定这个角色,会报错误:用户名 is missing the Overall/Read permission。
    • role01:该角色为项目角色。使用正则表达式绑定"item-a.*"开头的项目,并授予对项目的所有权限。即该角色只能管理"item-a.*"开头的项目
    • role02:该角色为项目角色。使用正则表达式绑定"item-b.*"开头的项目,并授予对项目的所有权限。即该角色只能管理"item-b.*"开头的项目

3、给用户分配角色

  • Jenkins --> Manage Jenkins --> Manage and Assign Roles --> Assign Roles(分配角色)
  • 绑定规则如下:
    • hh01用户分别绑定baseRole和role01角色
    • hh02用户分别绑定baseRole和role02角色

4、创建项目测试权限

  • Jenkins --> New Item
    • 用管理员admin创建两个项目,分别为item-a-01和item-b-01。

  • 测试结果是:
    • hh01用户:只能看到item-a-01项目
    • hh02用户:只能看到item-b-01项目

6、凭据管理插件

6.2、使用凭据

  • 从GitLab上克隆代码有两种方法:http和ssh。
    • http:可以使用"Username with password"凭据。
    • ssh:可以使用"SSH Username with private key"凭据。
  • Jenkins从Gitlab拉取源代码,需要安装Git插件以及在Jenkins服务器上安装Git工具

6.2.1、使用http协议从gitlab上拉取代码

1、添加凭据

  • Jenkins --> Manage Jenkins --> Manage Credentials --> Stores scoped to Jenkins:[Jenkins] --> 全局凭据 (unrestricted) --> Add Credentials

2、使用凭据

  • 创建一个自由风格的新项目test-gitlab-http,然后使用git插件去GitLab上拉取源代码。

 

3、运行该项目

  • 可以看到Jenkins将源代码从GitLab上拉取到了Jenkins服务器上的/data/jenkins/workspace/test-gitlab-http。

6.2.1、使用ssh协议从gitlab上拉取代码

1、创建ssh密钥

]# ssh-keygen -t rsa

2、将ssh的公钥放到Gitlab中

  • 使用管理员用户root登录GitLab --> 点击头像 --> Edit Profile --> SSH Keys
    • 将id_rsa.pub文件中的内容复制到这里,点击"Add Key"。

3、将ssh的私钥放到Jenkins中

  • Jenkins --> Manage Jenkins --> Manage Credentials --> Stores scoped to Jenkins:[Jenkins] --> 全局凭据 (unrestricted) --> Add Credentials
    • 将id_rsa文件中的内容复制到这里。

4、使用凭据

  • 创建一个自由风格的新项目test-gitlab-ssh,然后使用git插件去GitLab上拉取源代码。

5、运行该项目

  • 可以看到Jenkins将源代码从GitLab上拉取到了Jenkins服务器上的/data/jenkins/workspace/test-gitlab-ssh。

7、配置全局工具

7.1、添加全局工具

  • Jenkins --> Manage Jenkins --> Global Tool Configuration
    • Name:任意字符串
    • HOME/Path:工具在Jenkins服务器上的位置。

1、添加jdk工具

2、添加git工具

3、添加maven工具

7.2、为工具配置全局变量

  • Jenkins --> Manage Jenkins --> Configure System
    • 添加三个全局变量JAVA_HOME、M2_HOME、PATH+EXTRA
      • JAVA_HOME:工具在Jenkins服务器上的位置
      • M2_HOME:工具在Jenkins服务器上的位置
      • PATH+EXTRA:$M2_HOME/bin

#                                                                                                                        #
posted @ 2023-08-26 23:54  麦恒  阅读(78)  评论(0编辑  收藏  举报