持续集成概念持续集成 Continuous Integration持续交付 Continuous Delivery持续部署 Continuous Deployment1.1 什么是持续集成:持续集成是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并进程自动化测试1.3 什么是持续交付:持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境 1.4 持续部署:在持续交付的基础上,把部署到生产环境的过程自动化,持续部署和持续交付的区别就是最终部署到生产环境是自动化的。1.5 部署代码上线流程1.代码获取(直接了拉取)2.编译 (可选)3.配置文件放进去4.打包5.scp 到目标服务器6.将目标服务器移除集群7.解压并放置到 Webroot8.Scp 差异文件9.重启 (可选)10.测试11.加入集群运维必知 OWASPJenkins 上 OWASP 插件介绍: 它是开放式 Web 应用程序安全项目[OWASP,Open Web Application Secunity Project]它每年会出一个 top10 的安全漏洞,我们需要知道当前 top10 的漏洞有哪些https://www.owasp.org/images/5/57/OWASP_Proactive_Controls_2.pdfhttps://www.owasp.org/index.php/Top_10_2013-Top_10Gitlab 介绍GitLab 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目。GitLab 拥有与 Github 类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。环境准备
上传所需安装包
1.安装gitlabrpm -ivh gitlab-ce-11.9.8-ce.0.el6.x86_64.rpm2.初始化gitlabgitlab-ctl reconfigure3.浏览器登陆gitlab4.新建一个项目
在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 在功能上远远超过hudsonJenkins 官网: https://jenkins.io/Jenkins 是 Java 编写的,所以需要先安装 JDK,这里采用 yum 安装,如果对版本有需求,可以直接在 Oracle 官网下载 JDK。安装1.安装 JDKrpm -ivh jenkins-2.172-1.1.noarch.rpm2.修改JDK配置文件vim /etc/sysconfig/jenkinsJENKINS_PORT="8081" #修改端口 563.启动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/initialAdminPasswordbb220f4cf61d46999ba7f6686eeecf323.安装完成查看一下插件
项目:使用 git+jenkins 实现持续集成
(1) 方法一源码管理我们安装的是 git 插件,还可以安装 svn 插件们将 git 路径存在这里还需要权限认证,否则会出现 errorcat /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查看一下
实验完毕