从0开始搭建自动部署环境(续)永利集团登录网
Jenkins安装及配置
从0开始搭建自动部署环境(续)
目录
前言
上一篇从0开始搭建自动部署环境虽然环境搭建起来了,但是配置少了一部分步骤。本来应该写到上一篇中,但是这样做篇幅过长了。另外,此篇会使用自动部署一个同步在Github上的Spring Boot项目为例,介绍如何使用该自动部署环境。
1、安装java. 2
配置Global Tool Configuration
继上一篇,登录jenkins,完成上一篇没有完成的后续配置。Jenkins——》系统管理——》Global Tool Configuration,在其中配置JDK、git、Maven。
<html>
<table>
<tr>
<td>Tool</td>
<td>Configuration</td>
</tr>
<tr>
<td rowspan="2">JDK</td>
<td>别名=openjdk1.8.0</td>
</tr>
<tr>
<td>JAVA_HOME=/usr/lib/jvm/java</td>
</tr>
<tr>
<td rowspan="2">git</td>
<td>Name=git</td>
</tr>
<tr>
<td>Path to Git executable=/usr/bin/git</td>
</tr>
<tr>
<td rowspan="2">Maven</td>
<td>Name=maven3.5.2</td>
</tr>
<tr>
<td>MAVEN_HOME=/opt/apache-maven-3.5.2</td>
</tr>
</table>
</html>
1.1安装说明... 2
安装插件并重启
- Maven Integration plugin (Maven集成,否则新建的时候没有Maven Project)
- Deploy to container Plugin (部署到Java容器中的插件)
- Publish Over SSH (远程Shell)
- Monitoring (监控Jenkins所消耗的系统资源,如内存使用等)
插件安装完成后需要重启jenkins。http://ip:8080/restart
就能重启jenkins。
1.2创建java目录... 2
创建Docker本地仓库
参考Docker Registry 2.0
docker run -d -p 5000:5000 --restart always --name registry registry:2
1.3下载并解压... 2
新建项目
hello项目是我写的一个用来测试环境的Spring Boot项目,代码托管在github上。我想实现的是:jenkins每隔15分钟自动检查github上的hello项目源码,如果项目有更新,就自动获取更新打包部署。
新建——》构建一个Maven项目。名称就叫hello,点击“OK”跳转到项目配置页面。具体配置如下:
- 源码管理——》Git,Repository URL值为
https://github.com/jeesun/hello
- 构建触发器——》Poll
SCM——》日程表,值为
H/15 * * * *
(设置每隔15分钟做一次检查) - Build——》Goals and options,值为
clean package docker:build
- Post Steps——》Add post-build step——》Execute shell,内容为
API_NAME="hello"
API_VERSION="0.0.1"
API_PORT=8761
IMAGE_NAME="127.0.0.1:5000/com.jeesun/$API_NAME:$BUILD_NUMBER"
CONTAINER_NAME=$API_NAME-$API_VERSION
cd $WORKSPACE/target
cp classes/Dockerfile .
docker tag 127.0.0.1:5000/com.jeesun/$API_NAME $IMAGE_NAME
docker push $IMAGE_NAME
cid=$(docker ps | grep "$CONTAINER_NAME" | awk '{print $1}')
if [ "$cid" != "" ]; then
docker rm -f $cid
fi
docker run -d -p $API_PORT:8080 --name $CONTAINER_NAME $IMAGE_NAME
配置完成后,点击“Save”。选择页面左侧的“立即构建”,如果顺利,访问http://ip:8761
,页面出现hello, new world
,说明成功。
1.4设置环境变量... 2
注意事项
如果无法访问http://ip:8761
,需要确认防火墙是否关闭,或者选择开放8761端口。
1.5验证JDK有效性... 3
参考
- jenkins new job 没有maven项目选项
- 使用Jenkins实现自动构建Maven项目
- Docker Registry 2.0
2、安装Git. 3
2.1安装GCC软件套件... 3
2.2下载安装Git. 4
3、安装jenkins. 5
3.1下载安装... 5
3.2启动Jenkins. 5
3.3设置防火墙... 6
3.4错误解决方法... 7
4、快速配置Jenkins. 8
4.1基本设置... 8
4.2安装插件... 10
4.3设置插件... 11
4.4配置邮件... 12
5、创建并配置项目... 16
5.1新建项目,配置Git库... 16
5.2设置构建触发器... 18
5.3构建步骤设置... 20
5.4添加构建后操作... 21
1、安装java
1.1安装说明
本说明基于服务器版本:虚拟机CentOs 6.9 内存4G
Java版本: 1.8
Jenkins版本:2.103
GItlab版本:10.1
自己注意java版本(建议用1.8以上)
建议安装vim: yum -y install vim-enhanced
Jenkins是一款持续集成CI(Continuous integration)系统,主要目标是监控软件开发流程,快速显示问题。减少重复过程,提高工作效率。
1.2创建java目录
[root@localhost ~]# mkdir /usr/java
[root@localhost ~]# cd /usr/java
1.3下载并解压
可以本地先下载好再传服务器去,下载地址
--使用WinSCP工具传到/usr/java里,然后解压
[root@localhost java]# tar -zxvf jdk-8u162-linux-x64.tar.gz
1.4设置环境变量
[root@localhost java]# vim /etc/profile
在profile中添加如下内容:
#set java environment
JAVA_从0开始搭建自动部署环境(续)永利集团登录网址。HOME=/usr/java/jdk1.8.0_162
JRE_HOME=/usr/java/jdk1.8.0_162/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
让修改生效:
[root@localhost java]# source /etc/profile
1.5验证JDK有效性
[root@localhost java]# java -version
2、安装Git
2.1安装GCC软件套件
用来编译git。如果安装过则忽略。
yum install gcc
2.2下载安装Git
确认当前没有装过git的rpm包(如有则卸载)
yum remove git
安装所需依赖
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib zlib-devel gcc perl-ExtUtils-MakeMaker wget
下载并编译git
cd /usr/local/src/
wget
tar zxf git-2.15.1.tar.gz
cd git-2.15.1
./configure
make prefix=/usr/local/git all
make prefix=/usr/local/git install
按顺序执行即可。
添加git变量
echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
使设置生效
source /etc/bashrc
查看git版本
git --version
查看git位置
which git
3、安装jenkins
3.1下载安装
wget -O /etc/yum.repos.d/jenkins.repo
rpm --import
yum install jenkins
或
wget -O /etc/yum.repos.d/jenkins.repo
rpm --import
yum install jenkins
建议用第一种即可。
3.2启动Jenkins
修改Jenkins启动配置文件,指定java安装路径。
vim /etc/init.d/jenkins
在candidates中第一行添加java路径,如下:
candidates="
/usr/java/jdk1.8.0_162/bin/java
/etc/alternatives/java
/usr/lib/jvm/java-1.6.0/bin/java
/usr/lib/jvm/jre-1.6.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/bin/java
"
修改Jenkins端口
vim /etc/sysconfig/jenkins
service jenkins start/stop/restart
chkconfig jenkins on
chkconfig --list |grep jenkins
jenkins 0:off 1:off 2:on 3:on 4:on 5:on 6:off
3.3设置防火墙
修改防火墙允许8080端口访问
vim /etc/sysconfig/iptables
加入
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9090 -j ACCEPT
按i 即可编辑 按Esc再输入:wq回车即可保存并退出。
重启防火墙生效:sudo service iptables restart
保存防火墙设置:sudo service iptables save
永久关闭防火墙:chkconfig iptables off
永久开启防火墙: chkconfig iptables on
打开防火墙:service iptables start
关闭防火墙:service iptables stop
查看防火墙状态:service iptables status
输入ip地址+8080即可访问jenkins
3.4错误解决方法
1:丢失密码
jenkins登录密码在这个文件里
vi /var/lib/jenkins/secrets/initialAdminPassword
cat /var/lib/jenkins/secrets/initialAdminPassword
2:执行shell脚本提示没有权限
修改所有者即可
1) vim /etc/sysconfig/jenkins
2) 找到$JENKINS_USER改为 “root”:
$JENKINS_USER="root"
3)然后更改Jenkins home,webroot和日志的所有权:
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
4).重新启动Jenkins并检查用户是否已被更改
service jenkins restart
3:启动成功,不能进入系统
1、很可能是端口冲突导致的。先排查端口。
2、防火墙没设置好导致的。
4、快速配置Jenkins
4.1基本设置
1:首次登陆系统需要解锁
查看文件并复制密码
cat /var/lib/jenkins/secrets/initialAdminPassword
2:进入后选择插件安装
取消所有选中(不装插件直接进入系统)
3:设置管理员账号进入系统
4.2安装插件
-配置邮件提醒
Email Extension Plugin
-拉取代码
Git
plugin
-设置钩子推送后及时构建
Gitlab Authentication
plugin
Gitlab Hook Plugin
GitLab Plugin
-备份还原
ThinBackup
进入系统管理,点击管理插件,点击可选插件搜索出对应插件点击直接安装即可。
4.3设置插件
先配置java和git,实现代码拉取功能
名称随便填,JAVA_HOME填实际地址。本次为/usr/java/jdk1.8.0_162
Path to Git executable 填写Git可执行文件的路径。设置错误拉取代码会出错。
本次为 /usr/local/git/bin/git
可用which git查看路径
设置完保存即可。
4.4配置邮件
为了实现邮件提醒功能
先进入系统设置
设置邮件:
SMTP server:smtp.exmail.qq.com
ruanjianbu@hfhjzddata.com
Hjzd@*****
Default Subject: 构建通知:${BUILD_STATUS} - ${PROJECT_NAME} - Build # ${BUILD_NUMBER} !
Default Content:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
<style>
b{
font-size:16px;
}
td{
font-size:16px;
}
li{
font-size:16px;
}
</style>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<table width="95%" cellpadding="0" cellspacing="0"
style="font-size: 20px; font-family: Tahoma, Arial, Helvetica, sans-serif">
<tr>
<td>(本邮件是程序自动下发的,请勿回复!)</td>
</tr>
<tr>
<td><h2>
<font color="#0000FF">构建结果 - ${BUILD_STATUS}</font>
</h2></td>
</tr>
<tr>
<td><br />
<b><font color="#0B610B">构建信息</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li>
<li>构建编号 : 第${BUILD_NUMBER}次构建</li>
<li>触发原因: ${CAUSE}</li>
<li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
<li>构建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>
<li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
<li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
</ul>
</td>
</tr>
<tr>
<td><b><font color="#0B610B">变更集</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>${JELLY_SCRIPT,template="html"}<br/>
<hr size="2" width="100%" align="center" /></td>
</tr>
</table>
</body>
</html>
系统自带邮件可以测试邮件设置是否成功
默认邮箱多个使用英文逗号隔开。设置好保存即可。
5、创建并配置项目
5.1新建项目,配置Git库
输入项目名称选择自由风格
2:源码管理选择git,输入库地址添加账号密码,输入分支名称
点击Add添加git账号密码
如过报错,查看错误提示。
提示无法解析主机,域名没有配置。
修改hosts文件
vim /etc/hosts
添加域名即可
5.2设置构建触发器
第一种:隔断时间对比git库,发现有变更立即触发构建。
构建触发器选择Poll SCM 输入 H/3 * * * * ‘3’代表3分种对比一次。
第二种:设置git钩子,有推送事件立刻触发构建。
先勾选Build when a change is pushed to GitLab. GitLab CI Service URL:…….
再选择高级,点击生成按钮,生成一个Secret token
复制Secret token,和GitLab CI Service URL需要去git配置web hook使用。
(不同项目URL和token都不一样)
Gitlab hook设置
Gitlab版本10.1
1:进入项目选择设置
2:设置里选择集成
3:输入框输入对应URL和token
4:取消SSH验证,保存即可
生效后每次推送都会触发这个钩子,请求Jenkins执行构建任务。
版本不一样设置不一样,该设置适合新版本gitlab和新版Jenkins。
5.3构建步骤设置
选择Execute shell
输入执行脚本
例:rm -f /var/lib/jenkins/workspace/OPM/common/config/main-local.php && cp -Rf /var/lib/jenkins/workspace/OPM/* /home/htdocs/opm-it.hjzd.com
代码拉取完会执行该脚本。
5.4添加构建后操作
构建结果可以设置邮件提醒用户。
构建后操作选择Editable Email Notification
注意以下三点即可
邮件下面点击高级设置配置邮件触发条件
触发条件选择全部
设置成功后会主页点击立即构建,构建后查看邮件发送是否成功。
成功发送的邮件模板为:
在控制台输出里查看构建日志。
钩子触发成功,构建成功,邮件发送成功说明项目已经配置成功。
本文由永利集团登录网址发布于网络安全,转载请注明出处:从0开始搭建自动部署环境(续)永利集团登录网
关键词: