jenkins基础构建
更新:HHH   时间:2023-1-7


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

持续集成概念
持续集成 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 类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库
的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可
以轻松实现代码复用,便于日后有需要的时候进行查找。
环境准备

上传所需安装包

安装部署gitlab

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 流行的原因,因为 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. Jenkins Web 访问地址: 192.168.1.40:8081

    Linux查看密码并复制到web页面 ,然后点击继续
    [root@localhost ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
    bb220f4cf61d46999ba7f6686eeecf32

(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.安装完成查看一下插件

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

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

(1) 方法一
源码管理
我们安装的是 git 插件,还可以安装 svn 插件

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

cat /root/.ssh/id_rsa 查看密钥方式
我们添加一个认证

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

(2)方法二

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

构建成功

Linux上查看一下

自动构建

  1. 安装插件
    先进入到之前查看插件的地方
    系统设置----插件管理----高级_---上传插件gitlab-oauth、gitlab-plugin、 windows-slaves、ruby-runt ime、gitlab-hook
  2. 构建触发器(xgp改为了x)
    x- demo---配置-- -构建触发器------勾选触发远程构建--构建身份令牌(在终 端执行openssl rand -hex 10) 生成的令牌238e3f0ed60b9bc795f3
    勾选Build when a change is pushed to GitLab
    --保存


    openssl rand -hex 10 生成十位数令牌
  3. 回到git1ab的web页面
    点击projects--your project- -web- demo--settings-- Integrations -- JENKINS_ URL/ job/web- demo/build?token=TOKEN NAME- -取消勾选Enable SSL verification


    确定之后有报错:解决方法
    回到git1ab的web页面---点击小钳子---settings---Ne twork-----0utbound requests---- 勾选Allow requests to the local ne twork(允许本地请求)

再次点击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测试一下

成功

  1. 在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查看一下

实验完毕

返回云计算教程...