jenkins 构建异常_jenkins基础构建

持续集成之 Jenkins+Gitlab 简介 [一]

持续集成概念

持续集成 Continuous Integration

持续交付 Continuous Delivery

持续部署 Continuous Deployment

1.1 什么是持续集成:

持续集成是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并进程自动化测试

3be42d4be6b6ee631dfd0897c6eecb26.png

1.3 什么是持续交付:

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

d71a55621287cbce49890f7bf752140e.png

1.4 持续部署:

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

bbefe1c62d73941ff91726a19ab04560.png

1.5 部署代码上线流程

1.代码获取(直接了拉取)

2.编译 (可选)

3.配置文件放进去

4.打包

5.scp 到目标服务器

6.将目标服务器移除集群

7.解压并放置到 Webroot

8.Scp 差异文件

9.重启 (可选)

10.测试

11.加入集群

运维必知 OWASP

Jenkins 上 OWASP 插件介绍: 它是开放式 Web 应用程序安全项目[OWASP,Open Web Application Secunity Project]它每年会出一个 top10 的安全漏洞,我们需要知道当前 top10 的漏洞有哪些

ea412c80f0d92feb5d26de0ca6aa0409.png

https://www.owasp.org/images/5/57/OWASP_Proactive_Controls_2.pdf

https://www.owasp.org/index.php/Top_10_2013-Top_10

Gitlab 介绍

GitLab 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的 Git 项目仓库,

可通过 Web 界面进行访问公开的或者私人项目。

GitLab 拥有与 Github 类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库

的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可

以轻松实现代码复用,便于日后有需要的时候进行查找。

环境准备

上传所需安装包

f4ed7879264de2dc4da2dd44c10abaf1.png

安装部署gitlab

1.安装gitlab

rpm -ivh gitlab-ce-11.9.8-ce.0.el6.x86_64.rpm

2.初始化gitlab

gitlab-ctl reconfigure

3.浏览器登陆gitlab

f292be0ade93716ec42abb721dec4905.png

ab0a5ac7869325b4f58ccc961b4d21ba.png

4.新建一个项目

25494f3454d41df34e7fff5cb1ee7370.png

96253eacaaf22880ba5690633fad73b9.png

ac63a15c492dc5d0427e8ddd3d819cb7.png

在Linux生成密钥并复制

ssh-keygen -t rsa 生成密钥

cat /root/.ssh/id_rsa.pub 查看密钥并复制

放置密钥

dc062f955bb3ce12e17657099ac9481d.png

进入自己的项目

d9747e1a15921172de03a6009140a5e4.png

5.设置项目在linux

参考web上的介绍

10e2f5601691112fd4d2a449a3318586.png

(1) 创建用户和所需邮箱表明身份

[root@localhost ~]# git config --global user.name “admin”

[root@localhost ~]# git config --global user.email admin@admin.com

(2) 克隆一个仓库

git clone git@192.168.1.40:root/xgp-demo.git

[root@localhost ~]# cd xgp-demo/ 进入库

[root@localhost xgp-demo]# vim index.html 创建测试文件

[root@localhost xgp-demo]# git add index.html 上传测试文件到缓存

[root@localhost xgp-demo]# git commit -m "1" 上传到版板库

[root@localhost xgp-demo]# git push -u origin master 上传到运程仓库

(3).修改配置文件

[root@localhost xgp-demo]# vim /etc/gitlab/gitlab.rb

external_url 'http://192.168.1.40' #13行

(4).重新初始化一下

gitlab-ctl reconfigure

安装部署jenkins

Jenkins 介绍

Jenkins 只是一个平台,真正运作的都是插件。这就是 jenkins 流行的原因,因为 jenkins 什么插件都有Hudson 是 Jenkins 的前身,是基于 Java 开发的一种持续集成工具,用于监控程序重复的工作,

Hudson 后来被收购,成为商业版。后来创始人又写了一个 jenkins, jenkins 在功能上远远超过

hudson

Jenkins 官网: https://jenkins.io/

Jenkins 是 Java 编写的,所以需要先安装 JDK,这里采用 yum 安装,如果对版本有需求,可以

直接在 Oracle 官网下载 JDK。

安装

1.安装 JDK

rpm -ivh jenkins-2.172-1.1.noarch.rpm

2.修改JDK配置文件

vim /etc/sysconfig/jenkins

JENKINS_PORT="8081" #修改端口 56

3.启动JDK并查看端口

/etc/init.d/jenkins start #启动

netstat -anpt | grep 8081 #查看的端口

3cdd383434de64e80239ff930f9cb20b.png

Jenkins Web 访问地址: 192.168.1.40:8081

029c279ffc21950fa5a59daa25c55def.png

Linux查看密码并复制到web页面 ,然后点击继续

[root@localhost ~]# cat /var/lib/jenkins/secrets/initialAdminPassword

bb220f4cf61d46999ba7f6686eeecf32

(1)安装方法一

复制这个文件下面的 ID,否则不可以进行安装。我们选择推荐安装即可

21b13135dc679d374dd938743cb35c57.png

设置用户名密码:

1bb1d46ae49b2271e4eb36a2ee0c4cb2.png

点击保存并退出

4f4529f26f739e814147eb3a49aa7976.png

(3) 安装方法二

[root@localhost ~]# tar zxf jenkins-plugins.tar.gz #解压所需安装包

[root@localhost ~]# rm -rf /var/lib/jenkins/plugins/ #删除目录

[root@localhost ~]# mv plugins/ /var/lib/jenkins/ #将替换目录移动过去

[root@localhost ~]# /etc/init.d/jenkins restart #重启JDK

Restarting jenkins (via systemctl): [ 确定 ]

浏览器查看一下

abff935e9f3e71039e2e8088fbc075ee.png

Linux查看密码并复制到web页面 ,然后点击继续 (记得断网)

[root@localhost ~]# cat /var/lib/jenkins/secrets/initialAdminPassword

bb220f4cf61d46999ba7f6686eeecf32

f82c74c293468f152e65568d72b8ca4d.png

c884c70446b40f3e572c4782ca26579f.png

bb9c1c9e6f05a06b5431bba22a7d1901.png

3.安装完成查看一下插件

8313182c7977d348f436b8198cd00984.png

c2851107cf953be2c57d75c28b81ffe2.png

23c7b97a95ac7a88a3eb38603639c5e3.png

持续集成之 Jenkins+Gitlab 实现持续集成 [二]

项目:使用 git+jenkins 实现持续集成

ecee655dfc09fe937310d74f83cb6a80.png

36a41d5efac149b2e0460ed4ff463882.png

(1) 方法一

源码管理

我们安装的是 git 插件,还可以安装 svn 插件

d7f83496ff7790da8b6033a5c318ff58.png

们将 git 路径存在这里还需要权限认证,否则会出现 error

81a4c6c8a0ab54b3272e83c41a7f6448.png

cat /root/.ssh/id_rsa 查看密钥方式

我们添加一个认证

f09f74d0a89fd8f4bfd62de38163efe0.png

fae2ac82796cc80f8415fdac22b98b5e.png

现在我们复制 git 的 url 就不会出现验证提示

fae2ac82796cc80f8415fdac22b98b5e.png

(2)方法二

30cec87ef734320aeacb92bf12a5eccf.png

保存完毕后,我们选择立即构建

bf32504ad38fe74e789798fb6d2aa060.png

构建成功

c10ff74e95f9be533676687e582d82d3.png

Linux上查看一下

ff76c67915a24a021f20b877f52a168c.png

自动构建

安装插件

先进入到之前查看插件的地方

系统设置----插件管理----高级_---上传插件gitlab-oauth、gitlab-plugin、 windows-slaves、ruby-runt ime、gitlab-hook

3d992b586751ac1c1ce92e8e1257f459.png

构建触发器(xgp改为了x)

x- demo---配置-- -构建触发器------勾选触发远程构建--构建身份令牌(在终 端执行openssl rand -hex 10) 生成的令牌238e3f0ed60b9bc795f3

勾选Build when a change is pushed to GitLab

--保存

f7e75b1f9fe68646a0fc747c928db5e7.png

0db399d557bbd00fc5bcd433b08a6737.png

openssl rand -hex 10 生成十位数令牌

63770761fa8c9b9521bf51134f41f316.png

回到git1ab的web页面

点击projects--your project- -web- demo--settings-- Integrations -- JENKINS_ URL/ job/web- demo/build?token=TOKEN NAME- -取消勾选Enable SSL verification

1d8a4d8fbe130fc40e6e8ff5c6ae9685.png

ca36c8a2ec65a1ae7fcee072860a2e8f.png

确定之后有报错:解决方法

回到git1ab的web页面---点击小钳子---settings---Ne twork-----0utbound requests---- 勾选Allow requests to the local ne twork(允许本地请求)

bb14ae6432a3f673a84ec706bf02fdef.png

再次点击projects--your project- -web- demo--settings-- Integrations -- JENKINS_ URL/ job/web- demo/build?token=TOKEN NAME- -取消勾选Enable SSL verification

d00dbcaf28eb32f362ac867ceba51b3a.png

4.测试一下

1c9dd2a270c3cd5d64631dbc255ff967.png

d28b8914bef3d451ac3ea9244c2b73a6.png

可以看到又有报错:解决方法

回到jenkins页面

系统管理---全局安全设置---授权策略-- -取消勾选防止跨站点请求伪造

勾选匿名用户具有可读权限

系统管理--系统设置---取消勾选Enable authentication for '/project' end-point

68c616a28ea068b79b92409a61c845a9.png

ebef85cd75f7b2c5cc6afb2c6470a2c9.png

4f2e0bf22232d92b9ec6377346c00f03.png

e1c61597b4e2eca1c1951bc67f6f036c.png

25772dd45156341823f1739359d2f412.png

回到gitlab测试一下

e39de320a616a3b5b2621b796888e193.png

成功

63f89644fc3b710a092a7df5961956e1.png

在Linux上创建测试文件,再次测试一下

49 cd xgp-demo/

50 vim xgp.txt

51 git add xgp.txt

52 git commit -m "web hook"

53 git push origin master

36812b1a15fdbadd8ef9731e4ec06db3.png

在web界面的jenkins查看一下

cd1c27cb93b0a906acb154c6f27d7ea6.png

efaa23021e82d089861f4dd70c924cc7.png

实验完毕

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值