持续集成概念
持续集成 Continuous Integration
持续交付 Continuous Delivery
持续部署 Continuous Deployment
1.1 什么是持续集成:
持续集成是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并进程自动化测试
1.3 什么是持续交付:
持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境
1.4 持续部署:
在持续交付的基础上,把部署到生产环境的过程自动化,持续部署和持续交付的区别就是最终部署到生产环境是自动化的。
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 的漏洞有哪些
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 类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库
的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可
以轻松实现代码复用,便于日后有需要的时候进行查找。
环境准备
上传所需安装包
1.安装gitlab
rpm -ivh gitlab-ce-11.9.8-ce.0.el6.x86_64.rpm
2.初始化gitlab
gitlab-ctl reconfigure
3.浏览器登陆gitlab
4.新建一个项目
在Linux生成密钥并复制
ssh-keygen -t rsa 生成密钥
cat /root/.ssh/id_rsa.pub 查看密钥并复制
放置密钥
进入自己的项目
5.设置项目在linux
参考web上的介绍
(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 什么插件都有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 #查看的端口
(1)安装方法一
复制这个文件下面的 ID,否则不可以进行安装。我们选择推荐安装即可
设置用户名密码:
点击保存并退出
(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): [ 确定 ]
浏览器查看一下
Linux查看密码并复制到web页面 ,然后点击继续 (记得断网)
[root@localhost ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
bb220f4cf61d46999ba7f6686eeecf32
3.安装完成查看一下插件
项目:使用 git+jenkins 实现持续集成
(1) 方法一
源码管理
我们安装的是 git 插件,还可以安装 svn 插件
们将 git 路径存在这里还需要权限认证,否则会出现 error
cat /root/.ssh/id_rsa 查看密钥方式
我们添加一个认证
现在我们复制 git 的 url 就不会出现验证提示
(2)方法二
保存完毕后,我们选择立即构建
构建成功
Linux上查看一下
再次点击projects--your project- -web- demo--settings-- Integrations -- JENKINS_ URL/ job/web- demo/build?token=TOKEN NAME- -取消勾选Enable SSL verification
4.测试一下
可以看到又有报错:解决方法
回到jenkins页面
系统管理---全局安全设置---授权策略-- -取消勾选防止跨站点请求伪造
勾选匿名用户具有可读权限
系统管理--系统设置---取消勾选Enable authentication for '/project' end-point
回到gitlab测试一下
成功
在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
在web界面的jenkins查看一下
实验完毕
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。