jenkins介绍及rpm包方式安装

摘要
Jenkins只是一个平台,真正运作的都是插件。这就是jenkins流行的原因,因为jenkins什么插件都有。Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,Hudson后来被收购,成为商业版。后来创始人又写了一个jenkins,jenkins在功能上远远超过hudson
首先需要理解的是,Jenkins是帮我们将代码进行统一的编译打包、还可以放到tomcat容器中进行发布。
意思是我们通过配置,将以前:编译、打包、上传、部署到Tomcat中的过程交由Jenkins,Jenkins通过给定的代码地址URL,将代码拉取到其“宿主服务器”,既Jenkins的安装位置。生产中利用Jenkins进行编译、打包和发布到远程服务器或者远端服务器。
因此我们可以注意到的是,在Jenkins的宿主服务器中必须要有可以进行:代码clone(Git)、代码编译(Maven)、代码运行(Tomcat)的基本环境。
jenkins相关概念:
Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允许持续集成。
Jenkins目的:
1、持续、自动地构建/测试软件项目。
2、监控软件开放流程,快速问题定位及处理,提示开放效率。
Jenkins特性:
开源的java语言开发持续集成工具,支持CI,CD。
易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。
消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。
分布式构建:支持Jenkins能够让多台计算机一起构建/测试。
文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。
产品发布流程:
产品设计成型 -> 开发人员开发代码 -> 测试人员测试功能 -> 运维人员发布上线
持续集成 (Continuous integration,CI)
持续交付(Continuous Delivery,CD)
持续部署(continuous Deployment,CD)
持续集成概念
持续集成(Continuous Integration,CI):代码合并、构建、部署、测试都在一起,不断地执行这个过程,并对结果进行反馈
持续交付(Continuous Delivery,CD):部署到测试环境、预发环境、生产环境
持续部署(Continuous Deployment,CD):将最终的产品发布到生产环境,给用户使用
什么是持续集成:CI
持续集成是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并进程自动化测试

什么是持续交付:CD,Delivery
持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境

什么是持续部署:CD,Deployment
在持续交付的基础上,把部署到生产环境的过程自动化,持续部署和持续交付的区别就是最终部署到生产环境是自动化的。

部署代码上线流程
1.代码获取(直接了拉取)
2.编译 (可选)
3.配置文件放进去
4.打包
5.scp到目标服务器
6.将目标服务器移除集群
7.解压并放置到Webroot
8.Scp 差异文件
9.重启 (可选)
10.测试
11.加入集群

安装部署:
环境说明:

[root@localhost local]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
[root@localhost local]# uname -r
3.10.0-327.el7.x86_64
[root@localhost local]# uname -m
x86_64
关闭防火墙,如果用iptables请先安装iptables 关闭并禁止firewalld开机自启

systemctl stop firewalld
systemctl disable firewalld

yum -y install iptables-services iptables-devel 
systemctl stop iptables.service 
systemctl disable iptables.service
安装阿里云yum源、epel源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all && yum makecache
Jenkins依赖Java环境,我们需要安装Java环境以及相关的环境准备
java官方下载地址:

这里我已经提前下载好jdk的tar包,所致直接上传jdk包到服务器,解压拷贝jdk,并设置环境变量

tar xf jdk-8u181-linux-x64.tar.gz -C /usr/local/
mv /usr/local/jdk1.8.0_181/ /usr/local/java
ln -s /usr/local/java/bin/java /usr/bin/java

vim /etc/profile
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
source /etc/profile
安装Jenkins

wget  -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
yum clean all && yum makecache
yum -y install jenkins
systemctl start jenkins
如果启动Jenkins出现错误可以直接使用systemctl status jenkins查看错误

查看安装后有目录

[root@localhost ~]# 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
jenkins相关目录释义:
(1)/usr/lib/jenkins/:jenkins安装目录,war包会放在这里。
(2)/etc/sysconfig/jenkins:jenkins配置文件,“端口”,“JENKINS_HOME”等都可以在这里配置。
(3)/var/lib/jenkins/:默认的JENKINS_HOME。
(4)/var/log/jenkins/jenkins.log:jenkins日志文件。
rpm安装后更改JENKINS_HOME(主)目录:https://www.58jb.com/html/159.html

查看端口监听情况

jenkins默认监听端口为8080,可通过修改配置文件更改端口
配置文件为:/etc/sysconfig/jenkins
以下这个文件是jenkins的站点升级文件,也就是jenkins获取插件的地址,国内的是清华大学镜像站比较好

/root/.jenkins/hudson.model.UpdateCenter.xml
配置Jenkins
浏览器输入:http://ip:8080

Jenkins有安全策略,我们按照提示拷贝验证码即可 可以去服务器上cat一下这个文件,然后粘贴进去

遇到问题:

是https证书搞得鬼。怎么做呢?
安装插件那个页面,就是提示你offline的那个页面,不要动。然后打开一个新的tab(新打开一个网页页面),输入网址http://ip:8080/pluginManager/advanced。 这里面最底下有个【升级站点】,把其中的链接改成http的就好了,http://updates.jenkins.io/update-center.json。 然后在服务列表中关闭jenkins,再启动,这样就能正常联网了。**
但是我在这里设置了疑惑,重启jenkins还是不行。有可能是我的运营商电信那边把我jenkins连接插件的网站给屏蔽掉了。因为我问了几个朋友,他们那边是可以的。然后点跳过插件安装
进去Jenkins以后还有一个办法,就是更换成国内的Jenkins源。推荐使用清华大学开源镜像站的jenkins插件:https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/
然后去jenkins的web页面,找到对应的插件,先点安装,弹出错误需要先安装插件的依赖,那么我们到清华大学镜像站上下载对应的依赖 如:我们点击失败后面的详细,他会告诉我们这个插件的依赖名字,ssh-credentials.hpi 然后去清华大学镜像站上搜索对应这个插件依赖的版本的hpi文件,然后到jenkins上上传插件

1、点详细,找到插件依赖的名字:

2、在清华镜像站找对应插件依赖的包,点他下载

3、下载完后到jenkins的系统管理---管理插件---高级---上传插件 把刚下载的插件上传

4、上传完后,就会看到刚才失败界面会有完成的提示

如果真出现这种情况,比如公司的网络访问这个插件网站都被封掉,那只能这样操作了
我们这里可以创建一个管理员,或者直接使用admin。我们最好不要直接使用admin

或者点了一下配置代理,又点了一下后退 就弹出装插件的界面了,正常来说会直接到这个界面,到这个界面可以选择安装推荐插件,因为后期可以再安装需要的插件。安装插件中,有的插件会因为网络问题无法安装成功

如果这个没解决,没关系,后面我们可以手动安装插件 比如常用的gitlab maven ansible等。

如果没有这个欢迎界面,可以点击右上角的注销,然后重新登录。熟悉的小老头啊。我可是忠实的Jenkins小老头粉丝。

先安装几个常用的插件 git maven,安装完在进行配置
安装git (这一步小心操作,操作前请确认是否安装了git)
CentOS自带的git版本为1.7.1有些功能不支持。所以需要更新
首先卸载自带git并安装依赖

yum -y remove git

yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
2、下载Git。yum安装的git可能版本比较低

cd /usr/local/src
wget https://www.kernel.org/pub/software/scm/git/git-2.7.6.tar.gz
tar xf git-2.7.6.tar.gz
cd git-2.7.6
./configure  prefix=/usr/local/git
make -j 2 && make install

#查看git版本
/usr/local/git/bin/git --version
git version 2.7.6                        #版本2.7.6
添加环境变量:

echo 'export PATH=$PATH:/usr/local/git/bin' >>/etc/profile
source  /etc/profile
服务器上安装maven并添加环境变量:

cd /usr/local/src
wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
tar xf apache-maven-3.5.4-bin.tar.gz -C /usr/local/
mv /usr/local/apache-maven-3.5.4/ /usr/local/maven

echo 'export M2_HOME='/usr/local/maven''>>/etc/profile
echo 'export PATH=$PATH:$M2_HOME/bin' >>/etc/profile
source  /etc/profile
看到上面这个maven截图表示maven安装成功
jenkins上配置JDK maven等环境
系统管理 ---->全局工具配置
在centos7上可能出现插件没有安装上的问题 但是可以先continue进去jenkins界面,然后点击系统管理 管理插件 然后根据前面的提示 去安装插件 如有多个插件没安装,那就一个个安装吧。但是要找到对应我们jenkins版本的插件
怎么手动安装?
去jenkins官网,找到Plugins 点进去 然后输入对应的插件名字 最好找和我们安装的jenkins版本相对应的插件版本 在github上
进入Jenkins官网,点击plugins

出现如下,然后搜索ansible:
再点搜索进去github下

下载下来以后,放到服务器的jenkins插件目录 ,然后解压 重启jenkins
yum装的jenkins插件目录为:/var/lib/jenkins/plugins
很多东西如果在jenkins的web界面安装,可能会出现被墙的问题,因为他是去国外的网站拉数据的。可能提示Google连不上。那么还有一个办法,就是在安装jenkins的机器上,安装shadowsocks的客户端,连到shadowsocks国外的机器进行翻墙。
这里给两个Jenkins重启的方法:
服务器上操作,rpm包安装的方法:systemctl restart jenkins
web浏览器上的重启方法:https://ci.jenkins.com:8080/restart

注意:如果是tomcat里面放jenkins.war包的形式,则需要进入tomcat的bin目录,利用shutdown.sh和startup.sh进行关闭和启动Jenkins操作。

版权声明:
作者:allenjol
链接:https://www.ayunw.cn/archives/247
来源:爱生活,爱运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>