jenkins安装+创建管理用户+安装汉化插件+创建视图
文章目录一:jenkins概述1.1 git四个区域1.2 jenkins的功能1.3 CICD概述二:实操演示2.1 安装jenkins前配置基本环境2.1.1 修改主机名,查看java版本,清空iptables规则2.1.2 添加java环境变量2.1.3 接下来构建maven项目2.1.4 maven是免安装的2.1.5 设置maven环境变量2.2 开始安装jenkins2.2.1 官方找
文章目录
前言:
jenkins用到的插件比较多,对jenkins的资源管理会用到各种插件
先构建,自动测试,然后自动发布;这种称之为敏捷开发
一:jenkins概述
Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。
1.1 git四个区域
git工作流程
1.代码编写
2.将代码添加至暂存区
3.将代码提交至本地仓库
4.将代码提交至远程仓库
5.从远程仓库拉取代码
1.2 jenkins的功能
自动编译
自动打包
远程发布
代码拉取
邮件通知
测试统计
定时任务
现在java用的构建都是maven
1.3 CICD概述
CI(Continuous integration,中文意思是持续集成)是一种软件开发时间。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。借用网络图片对CI加以理解。
ci相当于configure到make过程
项目构建之后才能发布
测试就是make是否会出现error
CD(Continuous Delivery, 中文意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。下图反应的是CI/CD 的大概工作模式。
二:实操演示
2.1 安装jenkins前配置基本环境
2.1.1 修改主机名,查看java版本,清空iptables规则
[root@gsy ~]# hostnamectl set-hostname jenkins
[root@gsy ~]# su
[root@jenkins ~]# java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
[root@jenkins ~]# iptables -F
- 安装javajdk
卸载原有的
循环卸载openJdk
[root@jenkins ~]# rpm -e --nodeps $(rpm -qa | grep openjdk)
[root@jenkins ~]# java -version
bash: /usr/bin/java: No such file or directory
安装jdk
[root@jenkins ~]# tar xf /abc/jdk-8u91-linux-x64.tar.gz -C /usr/local/
[root@jenkins ~]# cd /usr/local/
[root@jenkins local]# ls
bin etc games include jdk1.8.0_91 lib lib64 libexec redis sbin share src
[root@jenkins local]# mv jdk1.8.0_91/ java
[root@jenkins local]# ls
bin etc games include java lib lib64 libexec redis sbin share src
2.1.2 添加java环境变量
[root@jenkins local]# vim /etc/profile
#在末尾追加四行
JAVA_HOME=/usr/local/java
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
[root@jenkins local]# source /etc/profile
[root@jenkins local]# echo $PATH
/root/perl5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/java/bin
[root@jenkins local]# java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
jre 虚拟机jvm
2.1.3 接下来构建maven项目
maven是用来构建项目的,构建完之后,交给git
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs
2.1.4 maven是免安装的
[root@jenkins local]# tar xf /abc/apache-maven-3.6.3-bin.tar.gz -C /usr/local/
[root@jenkins local]# ls
apache-maven-3.6.3 bin etc games include java lib lib64 libexec redis sbin share src
[root@jenkins local]# mv apache-maven-3.6.3/ maven
[root@jenkins local]# ls
bin etc games include java lib lib64 libexec maven redis sbin share src
2.1.5 设置maven环境变量
[root@jenkins local]# vim /etc/profile
#追加下面三行
MAVEN_HOME=/usr/local/maven
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
[root@jenkins local]# source /etc/profile
[root@jenkins local]# mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/maven
Java version: 1.8.0_91, vendor: Oracle Corporation, runtime: /usr/local/java/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"
2.2 开始安装jenkins
2.2.1 官方找包
点击下载,点击"Red Hat/Fedora/CentOS"
2.2.2 按照官网执行命令
[root@jenkins ~]# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
--2020-05-31 21:27:25-- https://pkg.jenkins.io/redhat-stable/jenkins.repo
Resolving pkg.jenkins.io (pkg.jenkins.io)... 151.101.78.133, 2a04:4e42:12::645
Connecting to pkg.jenkins.io (pkg.jenkins.io)|151.101.78.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 85
Saving to: ‘/etc/yum.repos.d/jenkins.repo’
100%[======================================================================>] 85 --.-K/s in 0s
2020-05-31 21:27:28 (481 KB/s) - ‘/etc/yum.repos.d/jenkins.repo’ saved [85/85]
[root@jenkins ~]# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
[root@jenkins ~]# yum install jenkins -y
#下载速度过慢,我有以前下载过的一个jenkinsrpm包,直接导进来
[root@jenkins ~]# cd /abc/
[root@jenkins abc]# ls
apache-maven-3.6.3-bin.tar.gz jdk-8u91-linux-x64.tar.gz jenkins-2.222.3-1.1.noarch.rpm
[root@jenkins abc]# rpm -ivh /abc/jenkins-2.222.3-1.1.noarch.rpm
Preparing... ################################# [100%]
Updating / installing...
1:jenkins-2.222.3-1.1 ################################# [100%]
2.2.3 查看是否安装成功
[root@jenkins abc]# rpm -ql jenkins
/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins
/var/log/jenkins
2.2.4 开启服务,出现报错,找问题
[root@jenkins abc]# systemctl start jenkins
Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
2.2.5 java执行脚本软连接放到/usr/bin/
再次开启,成功
[root@jenkins abc]# ln -s /usr/local/java/bin/java /usr/bin
[root@jenkins abc]# systemctl start jenkins
Warning: jenkins.service changed on disk. Run 'systemctl daemon-reload' to reload units.
[root@jenkins abc]# systemctl daemon-reload
[root@jenkins abc]# systemctl start jenkins
[root@jenkins abc]# ps aux | grep jenkins
jenkins 5676 24.3 6.9 3652792 129176 ? Ssl 22:02 0:05 /usr/bin/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
root 6235 0.0 0.0 112712 964 pts/0 R+ 22:02 0:00 grep --color=auto jenkins
2.2.6 输入本机IP:8080登录界面
因为实验原因中间搁置,IP为134或142
2.2.7 查看密码
[root@jenkins abc]# cat /var/lib/jenkins/secrets/initialAdminPassword
26085dc163d44ea7b59470b5217d19da
2.2.8 输入密码显示当前jenkins处于离线状态
出现离线报错,点击代理,然后返回
2.2.9 解决离线方法:
访问 http://192.168.247.134:8080/pluginManager/advanced
将 "https😕/updates.jenkins.io/update-center.json"修改为 “http😕/updates.jenkins.io/update-center.json”
然后应用保存
2.2.10 重启服务
[root@jenkins abc]# systemctl restart jenkins
刷新页面
2.2.11 重新登陆,验证
点击check now 测试
备注:
若是在插件管理的高级选项还是有报错
There were errors checking the update sites: SocketTimeoutException: connect timed out
那么重新修改,重新重启,或者等一会
刷新原始网页
2.2.12 选择插件来安装,不用修改,直接点击安装
先点击安装推荐插件
点击右边的选择插件执行默认安装也是出现报错
过了一会,再点击安装选择插件安装默认插件,出现安装过程,应该是网络的原因
重试,安装完毕
重启要等一会
2.2.13 先不创建用户,使用admin账户并继续
点击重启,然后登录
2.2.14 下面是推荐安装的插件
Ant Plugin
Apache HttpComponents Client 4.x API Plugin
bouncycastle API Plugin
Branch API Plugin
Build Timeout
Command Agent Launcher Plugin
Credentials Binding Plugin
Credentials Plugin
Display URL API
Durable Task Plugin
Email Extension Plugin
Folders Plugin
Git client plugin
Git plugin
GIT server Plugin
GitHub API Plugin
GitHub Branch Source Plugin
GitHub plugin
Gradle Plugin
Jackson 2 API Plugin
JavaScript GUI Lib: ACE Editor bundle plugin
JavaScript GUI Lib: Handlebars bundle plugin
JavaScript GUI Lib: jQuery bundles (jQuery and jQuery UI) plugin
JavaScript GUI Lib: Moment.js bundle plugin
JSch dependency plugin
JUnit Plugin
LDAP Plugin
Localization Support Plugin
Localization: Chinese (Simplified)
Lockable Resources plugin
Mailer Plugin
MapDB API Plugin
Matrix Authorization Strategy Plugin
Matrix Project Plugin
Oracle Java SE Development Kit Installer Plugin
OWASP Markup Formatter Plugin
PAM Authentication plugin
Pipeline
Pipeline Graph Analysis Plugin
Pipeline: API
Pipeline: Basic Steps
Pipeline: Build Step
Pipeline: Declarative
Pipeline: Declarative Extension Points API
Pipeline: GitHub Groovy Libraries
Pipeline: Groovy
Pipeline: Input Step
Pipeline: Job
Pipeline: Milestone Step
Pipeline: Model API
Pipeline: Multibranch
Pipeline: Nodes and Processes
Pipeline: REST API Plugin
Pipeline: SCM Step
Pipeline: Shared Groovy Libraries
Pipeline: Stage Step
Pipeline: Stage Tags Metadata
Pipeline: Stage View Plugin
Pipeline: Step API
Pipeline: Supporting APIs
Plain Credentials Plugin
Resource Disposer Plugin
SCM API Plugin
Script Security Plugin
SSH Build Agents plugin
SSH Credentials Plugin
Structs Plugin
Subversion Plug-in
Timestamper
Token Macro Plugin
Trilead API Plugin
Workspace Cleanup Plugin
2.2.15 部分插件解释:
pipeline 常用插件
在jenkins官方文档是这样介绍pipeline的:Jenkins Pipeline (or simply “Pipeline”) is a suite of plugins which supports implementing and integrating continuous delivery pipelinesinto Jenkins.它的意思就是pipeline是一套jenkins官方提供的插件,它可以用来在jenkins中实现和集成连续交付。
整个流程主要有以下几个模块组成:
1.agent
2.param
3.stage
首先介绍stage。pipeline实际上就是由很多个stage组成,每个stage完成一件事情。就像上图中第二个stage用来构建项目,第三个stage用来测试项目。所以定义pipeline实际上就是定义多个stage。而stage是由多个step组成,由step来定义这个stage是如何完成一个任务的。比如要执行test这个测试stage,通过step定义第一步拉取代码,第二步进行测试,第三步将测试结果发送邮件。
接着就是agent,agent是用来定义CI/CD流程环境的,比如你在构建gradle项目的时候需要gradle环境,这时候就由agent来定义。agent可以定义全局的,就是所有的stage都会在这个环境中进行,也可以放在stage中,意味这只有该stage会放在这个环境中执行。
然后就是param。param是为整个流程提供参数的。这一点是很好的,比如你使用git进行代码管理,你需要构建某个流程,这时候你只要在构建的时候指定分支参数就可以构建项目。
最后,还有其他部分,比如所有的stage都执行完成了,或者失败了,这时候你需要发送邮件,你可以在最后的部分定义发送邮件,不论构建成功与否。
完成ci阶段的插件
build timeout 构建超时
首先LDAP是一种通讯协议,LDAP支持TCP/IP。协议就是标准,并且是抽象的。在这套标准下,AD(Active Directory)是微软出的一套实现。
那AD是什么呢?暂且把它理解成是个数据库。也有很多人直接把LDAP说成数据库(可以把LDAP理解成存储数据的数据库)。像是其他数据库一样,LDAP也是有client端和server端。server端是用来存放资源,client端用来操作增删改查等操作。
而我们通常说的LDAP是指运行这个数据库的服务器。
可以简单理解AD =LDAP服务器+LDAP应用。
用树形结构存储数据,查询效率更高(具体为什么,可以看一下关系型数据库索引的实现原理——B树/B+树)。在某些特定的场景下,使用树形数据库更理想。比如:需要储存大量的数据,而且数据不是经常更改,需要很快速的查找。
LDAP是一个目录形式的数据库
Ant是Java的生成工具,是Apache的核心项目;
Ant类似于Unix中的Make工具,都是用来编译、生成;
Ant是跨平台的,而Make不能;
Ant的主要目的就是把你想做的事情自动化,不用你手动一步一步做,因为里面内置了javac、java、创建目录、复制文件等功能,所以可以直接点击Ant文件,即可编译生成你的项目。
三:对jenkins进行基本管理操作
若是使用别的浏览器,需要使用汉化包插件,使用谷歌可以自动翻译
3.1 配置全局环境变量
配置jdk全局环境 全局配置jenkins
maven项目管理
java项目编译器
#管理jenkins —> 全局工具配置 —>
- 点击管理插件
- 点击全局组件配置
别名要去指定路径
别名 | JAVA_HOME | ||
JAVA_HOME | /usr/local/java/ |
点击应用
配置maven
勾选install代表自行向官网下载,这里已经安装过了,取消勾选
然后再点应用,然后保存
四:安装汉化插件
安装推荐插件时已经安过了,这里做一个未安装时的演示
4.1 进入官网找汉化版插件
4.2 下载,点击Archives,选择最新版本
4.3 上传插件
4.4 重启,再次登录
备注:可以发现此时是无法自行创建注册新用户
五:开启允许自行创建用户
5.1 到Configure Global Security处开启允许用户注册
点击应用保存
5.2 再次注销查看
5.3 创建用户,以供验证
此时注册的用户是具有admin权限的
再创建一个,以作验证使用
六:配置权限管理需要安装管理插件Role-based Authorization Strategy
Role-based Authorization Strategy
切换管理员账户
6.1 管理jenkins —> 管理插件 —> 可选插件 —> 过滤"Role-based" —> 直接安装(安装完成可以返回工作台)
授权插件
这两个插件时一起使用的
选中,点击直接安装,默认从官网源上直接安装
6.2 管理jenkins —> 全局安全配置 —> 授权策略 —> 勾选"Role-Based Strategy" —> 保存
6.3 出现报错,翻译一下
6.4 需要安装一个授权项目插件Authorize Project
继续去安装
6.5 此时切换用户shl
刚才创建的gsy和shl此时无法管理
6.6 小结:谁安装这些插件,谁就有最高级权限
七:添加管理角色,角色分配
此时没有找到对应的插件
7.1 管理jenkins —> 管理和分配角色Manage and Assign Roles
备注:此时是管理员admin身份状态
7.2 点击进入管理角色
7.3 全局角色 —> 添加 gsy 角色,这个是role(类似于岗位),代表有什么权限
7.4 勾选添加允许权限,勾选读
7.5 项目角色Item roles,有的是project roles —> 添加 shl角色
不给权限
Pattern 是匹配任务的名字,也就是创建的任务名称
谷歌翻译如下
记得应用保存
八:管理分配用户到指定的角色(岗位)
8.1 管理jenkins —> 管理和分配角色 —> 进入分配角色(通过角色管理进行匹配)
8.2 全局角色配置
admin具有admin角色的权限
gsy具有gsy角色的权限
8.3 项目角色配置
点击应用,点击保存
8.3 测试
8.3.1 创建两个任务
然后默认应用保存
再新建一个
此时的项目时空的
8.4 创建视图
视图可以用于对项目更好的分类
确定
勾选任务列表
应用保存
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)