CentOS6.X、7.X下Jenkins的安装及使用

一、相关概念

1.1 Jenkins概念:

Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允许持续集成。

1.2 Jenkins目的:

1、持续、自动地构建/测试软件项目。
2、监控软件开放流程,快速问题定位及处理,提示开放效率。

1.3 特性:

开源的java语言开发持续集成工具,支持CI,CD。
易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。
消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。
分布式构建:支持Jenkins能够让多台计算机一起构建/测试。
文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。

1.4 产品发布流程:

产品设计成型 —> 开发人员开发代码 —> 测试人员测试功能 —> 运维人员发布上线
持续集成 (Continuous integration,简称CI)
持续交付(Continuous delivery)
持续部署(continuous deployment)

前置条件

  1. 安装jdk1.7或以上版本
  2. 安装Git
  3. 安装Maven

安装

添加 Jenkins 库到yum库,Jenkins将从这里下载安装。

1. 添加 Jenkins 源

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

 

yum clean all

yum makecache

2. yum下载 Jenkins

yum install -y jenkins

 

3. 设置访问 Jenkins 的端口

vim /etc/sysconfig/jenkins  (56行)

 

 

4. 添加防火墙,允许9000端口访问

CentOS7.X下 firewall 防火墙的配置

firewall-cmd --state   # 查看防火墙状态,启动状态才能添加规则,centos7中默认防火墙就是firewalld,一般不需要额外设置。

firewall-cmd --add-service=jenkins --permanent       # 添加 Jenkins 服务到 firewalld 防火墙中。

firewall-cmd --reload     # 让配置的防火墙策略立即生效

firewall-cmd --list-services       # 列举区域中启用的服务

 

CentOS6.X下 iptables 防火墙的配置

iptables -I INPUT –p tcp –dport 9000 –j ACCEPT

service iptables save

service iptables restart

 

5. 修改用户权限 (可选)
Jenkins安装的时候,默认添加了一个jenkins用户,这个在后续持续集成过程中,会出现权限问题。因此需要进行修改。

进入 /etc/sysconfig/jenkins

修改jenkins用户为root  (29行)

#JENKINS_USER="jenkins"

JENKINS_USER="root"

 

修改对应目录权限

sudo chown -R root /var/log/jenkins

sudo chgrp -R root /var/log/jenkins

sudo chown -R root /var/lib/jenkins

sudo chgrp -R root /var/lib/jenkins

6. 启动Jenkins

systemctl start jenkins  (如果启动报错,一般是java路径配置问题)

备注:如果启动的时候出现下图,CentOS 6.5应该会出现这个错误提示:Starting Jenkins -bash: /usr/bin/java: No such file or directory

对 Jenkins 配置文件进行修改

添加自己的 jdk 路径

查询 jdk 路径:

which java

 进入 Jenkins 配置文件:vim /etc/init.d/jenkins

 把 jdk 安装路径添加进去,格式如下图,保存退出,再次重启 Jenkins 就好啦!

如果重启时出现下图:

就运行以下命令后,再次重启

systemctl daemon-reload

安装成功后Jenkins将作为一个守护进程随系统启动,系统会创建一个 "jenkins" 用户来允许这个服务,如果改变服务所有者,同时需要修改/var/log/jenkins, /var/lib/jenkins, 和/var/cache/jenkins的所有者

启动的时候将从 /etc/sysconfig/jenkins 获取配置参数,默认情况下,Jenkins运行在8080端口,在浏览器中直接访问该端口进行服务配置

Jenkins的RPM仓库配置被加到 /etc/yum.repos.d/jenkins.repo 文件里

7. 通过IP地址加端口,就可以成功访问到 Jenkins 了

http://your ip address:9000

8. 密码默认在 /var/lib/jenkins/secrets/下的 initialAdminPassword 文件中

vim /var/lib/jenkins/secrets/initialAdminPassword 

把这行密码复制,粘贴到上面的 Jenkins 输入框就可以正常使用了

 

选择 "Install suggested plugins" 安装默认的插件,下面 Jenkins 就会自己去下载相关的插件进行安装。 

 创建超级管理员账号 

配置

1、Java配置

在服务器上执行 echo $JAVA_HOME 便可看到 JAVA_HOME 的路径

在系统管理 —> 全局工具配置(Global Tool Configuration)下配置JDK,Name可以自定义,取消自动安装

JAVA_HOME:填写 JDK 的具体安装路径

2、Git安装

源码安装

检测当前 Git 版本是否是2.7.4以上

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc-c++ perl-ExtUtils-MakeMaker wget autoconf –y

mkdir /tmp/git && cd /tmp/git

wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz

tar xf git-2.9.5.tar.gz

cd git-2.9.5

make configure

./configure --prefix=/usr/local/git

make profix=/usr/local/git

make install

echo "export PATH=$PATH:/usr/local/git/bin" > /etc/profile.d/git.sh

source /etc/profile.d/git.sh

查看git安装到什么地方

which git

可以看到 Git 安装在如下目录

 

Git配置

在系统管理 —> 全局工具配置(Global Tool Configuration)下配置Git,Name可以自定义,取消自动安装

Path to Git executable:填写 Git 的具体安装路径

3、Maven安装

cd /usr/local/ && wget -c http://mirror.bit.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

tar -zxf apache-maven-3.3.9-bin.tar.gz

echo "export PATH=$PATH:/usr/local/apache-maven-3.3.9/bin" > /etc/profile.d/maven.sh

source /etc/profile.d/maven.sh

 

mvn -v    # 查看Maven版本

在系统管理 —> 全局工具配置(Global Tool Configuration)下配置Maven,Name可以自定义,取消自动安装

MAVEN_HOME:填写 Maven 的具体安装路径

 

4、Email配置

配置邮箱,在构建失败的时候会向指定邮箱发送告知邮件

系统管理 —> 系统设置下配置邮件功能

 5、配置GitHub,和Jenkins连接

sercret text

注:此处需要一个对项目有写权限的账户

进入GitHub —> Settings —> Developer settings —> Personal access tokens —> Generate new token

注意:自己先复制保存下这个token,下面会用到,如果丢失,之后再也无法找到这个token,只能再新建一个。

进到Jenkins页面,选择,系统管理 —> 系统设置 —> GitHub

 

 

 

 

 GitHub的连接信息

配置Jenkins在Hook URL中监听Github的Post请求,然后进行自动构建,所以接下来配置Hook URL,点击 "添加GitHub服务器" 处的 Advanced按钮,启用Hook URL,并将Hook URL复制出来,并保存刚才的设置

配置Github项目仓库

还需要配置GitHub项目仓库,因为GitHub经常有代码处理动作,需要配置Github项目仓库在处理这些动作的同时会发送信号至Jenkins,才使用Jenkins自动构建。

在GitHub上新建一个项目,点击Settings

在"Webhooks"选项卡中,点击"Add webhook"

 将在Jenkins生成的Hook URL填入至Payload URL中,另外,选择自主事件

以Push为例,并保存,即当GitHub收到了客户端有Push动作时,会触发一个Hook

保存webhook之后

使用 Jenkins 构建部署Web项目 

新建一个名为xiong-cxxt的项目,这里选择自由风格 

 

源码管理

Repository URL 填写具体GitHub上的仓库的url,如果为私有,需要继续添加Credentials,如果为公有直接填写url即可,Credentials为none

构建触发器

Poll SCM:可以配置定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。

构建环境

构建

构建方式选择调用顶层 Maven 目标

Goals是 Maven 命令,Setting file 是 Maven 的配置路径 

clean install 的意思是删除以前编译过的target,然后重新编译生成war

构建后操作


这里需要Jenkins安装 "Deploy to container" 和 "Publish Over SSH" 两个插件,

系统管理 —> 管理插件 —> Available(可选插件),找到它并安装

安装好两个插件后,点击 “系统管理” –> “系统设置”

在key内填写Jenkins服务器的私钥,如果没有需要先在 Jenkins 服务器生成私钥与公钥。ssh-keygen -t rsa 回车后会在登录用户的家目录下生成一个.ssh 的目录,此目录下存在 id_rsa 私钥与 id_rsa.pub 公钥。用下面的命令将公钥发布至代码发布的目标服务器上

ssh-copy-id -i /root/.ssh/id_rsa.pub root@目标服务器IP地址

SSH配置
Name:需要将Web程序发布到目标服务器的名称,可自定义
Hostname:填写目录服务器的IP地址
Username:使用那个用户进行发布,此处为进行密钥互信的用户
Remote Directory:此处为发布到目标服务器的相对根路径,建议填写/,防止后续填写路径异常。

注:如果为多台目标服务器,可以继续添加,如果目标服务器存在代理,也可设置proxy

构建后操作

1、选择 Send build artifacts over SSH

Name:目标服务器的名称
Source files:从GitHub上拉去下来的原始文件
Remote directory:发布到目标服务器的制定目录
Exec command:制定后续的操作

2、配置邮件服务 (每次构建完后会往指定的邮箱发一份邮件)

3、Tomcat配置

vim /usr/local/apache-tomcat-7.0.91/conf/tomcat-users.xml

在 /tomcat-users.xml 配置文件<tomcat-users>......</tomcat-users>中添加tomcat的manager访问用户,用于发布war包。

<role rolename="manager-script"/>
<user username="test" password="123456" roles="manager-script"/>


webapps下只保留manager,删除其他文件夹。 
cd /usr/local/apache-tomcat-7.0.91/conf/Catalina/localhost

新建manager.xml文件,配置如下。 

<Context privileged="true" antiResourceLocking="false" 
docBase="${catalina.home}/webapps/manager"> 
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" /> 
</Context>

保存退出

发布到Tomcat
选择 Deploy war/ear to a container
配置 tomcat 服务 

 tomcat的连接信息,用户名和密码(来自tomcat-users.xml)。 

到这里就可以进行构建了,左边菜单有个立刻构建按钮,点击便可以构建,还可以点击 console output 查看日志 。

第一次构建会有点慢,Maven会去下很多插件和jar包。

在构建的时候,构建成功同时会把构建的war包部署到对应tomcat下,同时可以指定多个tomcat,集群化部署的时候很方便。

中间部分省略

此时到目标服务器上查看程序是否已经部署,也可以查看邮件是否收到。

 

原文地址:https://www.cnblogs.com/opsprobe/p/9912245.html