• -------------------------------------------------------------
  • ====================================

Jenkins介绍和安装及配合GitLab代码自动部署

生活 dewbay 6年前 (2019-04-12) 3170次浏览 已收录 0个评论 扫描二维码

Jenkins 是什么?

  1. 基于 JAVA 的开源的自动化系统平台
  2. 加速自动化 CI,CD 任务及流水线,所有类型的任务:构建,测试,部署等
  3. 丰富的插件生态系统支持功能扩展,1400+插件和 SCM,测试,通知,报告,Artfact,触发,外部集成等
  4. 基于 Web 的管理和使用界面
  5. 源于 Hudson
  6. 官网文档:https://jenkins.io/doc/
Jenkins 系统架构图
Jenkins介绍和安装及配合GitLab代码自动部署

用 docker 环境部署 Jenkins

一,安装 docker-ce 版本

1.1 删除之前版本的 Docker

sudo yum remove docker docker-common docker-selinux docker-engine

1.2 安装一些依赖

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

1.3 下载 repo 文件

wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo

1.4 把软件仓管地址替换为 TUNA:

sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

1.5 安装

sudo yum makecache fast
sudo yum install docker-ce

参考文档:https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/

1.6 安装完成后可以使用:dock version 命令查看 docker 信息

Jenkins介绍和安装及配合GitLab代码自动部署
[root@linux-node1 ~]# docker version
Client:
 Version:      17.09.0-ce
 API version:  1.32
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:41:23 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.09.0-ce
 API version:  1.32 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:42:49 2017
 OS/Arch:      linux/amd64
 Experimental: false
Jenkins介绍和安装及配合GitLab代码自动部署
二,安装 docker-compose

2.1 先确认完成 docker 环境安装,再执行此步骤

2.2 参考文档:

https://docs.docker.com/compose/install/

2.3 以 linux 为例:

       2.3.1 下载 docker compose 执行文件 

sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

      2.3.2 添加执行权限

sudo chmod +x /usr/local/bin/docker-compose

     2.3.3 验证结果

docker-compose --version
docker-compose version 1.17.0, build 1719ceb
三,下载镜像文件

3.1 配置国内 docker 镜像加速,国内拉取官方 docker 镜像速度较慢

[root@linux-node1 data]# more /etc/docker/daemon.json 
{"registry-mirrors": ["http://4c7d9402.m.daocloud.io"]}

3.2 下载 docker 的Jenkins镜像

docker pull jenkins:latest

3.3 下载 gitlab-ce(如果需要可以下载,可选择)

docker pull gitlab/gitlab-ce:latest

3.4 下载 daoker 的 sonarqube(如果需要可以下载,可选择)

docker pull sonarqube:latest

3.5 验证 docker 镜像下载结果

[root@linux-node1 data]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
gitlab/gitlab-ce    latest              733cc235d0c0        3 days ago          1.38GB
sonarqube           latest              c1637bd4502f        12 days ago         934MB
jenkins             latest              3f08dc4f3f5d        3 weeks ago         809MB

3.6 启动 jenkins 的 docker 镜像

docker run -it --name jenkinsci0001 -v $HOME/jenkins:/var/  -p 8888:8080 -p 55000:50000 -p 45000:45000 jenkins:latest 

在控制台显示信息如下

Jenkins介绍和安装及配合GitLab代码自动部署

 View Code

3.7 打开登陆界面,根据提示输入上面的显示的密码

Jenkins介绍和安装及配合GitLab代码自动部署

3.8 选择默认推荐安装的插件

Jenkins介绍和安装及配合GitLab代码自动部署

3.9 等待插件安装

Jenkins介绍和安装及配合GitLab代码自动部署

3.10 设置账户密码

....

3.11 进入页面

Jenkins介绍和安装及配合GitLab代码自动部署
四,使用 yum 安装部署 Jenkins

4.1 添加源

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo 

4.2 导入 key

 rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

4.3 yum 安装 jenkins

yum install jenkins -y

为什么要使用 Jenkins?


在 2015 年前我们公司上线流程是:

1.测试环境权限开发给开发人员,开发调试看日志拉代码都是开发自己登陆到测试机上面操作

2.开发提测,QA 通过后,开发人员发邮件到 ops 抄送其他相关部门申请上线,需要开发主管确认等,ops 再登服务器拉取发布代码到生产环境(就是说项目定在几点上或者延迟上 ops 都得苦逼的等着)

3.ops 发布完成回复邮件(每星期都会收到大量的上线邮件)

4.QA 回滚测试

在 2016 年 ops 和其他同行聊天抱怨的时候,人家说你们怎么不用Jenkins。那时候因为年少无知Jenkins是什么鬼啊,然后回来就开始研究,直到下半年就开始慢慢都用上了,现在是:

测试环境:收回开发人员登录系统权限,代码自动触发更新,日志通过 ELK 实时查看

生产环境:ops 基本不参与上线项目,和开发负责人确认哪些开发人员可以有哪些项目的上线权限,ops 授权开发人员上线,服务器上面有代码更新会脚本自动发邮件到 ops。

                 具体开发内部怎么上线由开发负责人决定,当业务有问题的时候 ops 再根据 Jenkis 的上线记录排查问题,ops 可以节省大量时间去其它维护工作。

配置参考图片


相关的项目:php  java .net

版本库有:svn gitlab

服务器系统:CentOS Windows


 Jenkins系统设置:需要在Jenkins服务器上安装一些工具软件,然后再 web 界面添加环境变量等信息,这里用的 ssh 秘钥和服务器同步代码

Jenkins介绍和安装及配合GitLab代码自动部署
Jenkins介绍和安装及配合GitLab代码自动部署
Jenkins介绍和安装及配合GitLab代码自动部署
Jenkins介绍和安装及配合GitLab代码自动部署
Jenkins介绍和安装及配合GitLab代码自动部署

配置Jenkins账号和 Gitlab 账号信息有关联

Jenkins介绍和安装及配合GitLab代码自动部署

 设置 Jenkins 专有用户数据库

Jenkins介绍和安装及配合GitLab代码自动部署

Androids apk 打包配置

Jenkins介绍和安装及配合GitLab代码自动部署
Jenkins介绍和安装及配合GitLab代码自动部署
Jenkins介绍和安装及配合GitLab代码自动部署
Jenkins介绍和安装及配合GitLab代码自动部署

Java 编译发布配置

Jenkins介绍和安装及配合GitLab代码自动部署
Jenkins介绍和安装及配合GitLab代码自动部署
Jenkins介绍和安装及配合GitLab代码自动部署
Jenkins介绍和安装及配合GitLab代码自动部署

项目构建情况,测试环境在 Gitlab 的 trunk 分钟,开发人员提交代码到 trunk 就会触发 Jenkins 拉取代码发布到业务服务器上面

Jenkins介绍和安装及配合GitLab代码自动部署

php 正式环境需要开发主管自己登陆到 Jenkins 进行点击发布

Jenkins介绍和安装及配合GitLab代码自动部署

用户权限管理

Jenkins介绍和安装及配合GitLab代码自动部署

用户分组及项目创建

Jenkins介绍和安装及配合GitLab代码自动部署

用户项目权限分配

Jenkins介绍和安装及配合GitLab代码自动部署

测试环境,自动构建

Jenkins介绍和安装及配合GitLab代码自动部署

正式环境 master 分支,开发主管点击构建发布

Jenkins介绍和安装及配合GitLab代码自动部署

GitLab8.9  Webhooks 设置

Jenkins介绍和安装及配合GitLab代码自动部署

使用 Jenkins 的里面授权的账号,GitLab的只读权限就可以

Jenkins介绍和安装及配合GitLab代码自动部署

 Windows 配置 Jenkins 让.NET 项目自动编译发布

Jenkins介绍和安装及配合GitLab代码自动部署

 View Code

插件安装,subversion 或者 git 取决根据代码服务器实际情况选择安装即可

Jenkins介绍和安装及配合GitLab代码自动部署

Global Tool Configuration 添加 MSBuild 工具

Jenkins介绍和安装及配合GitLab代码自动部署

配置项目

Jenkins介绍和安装及配合GitLab代码自动部署

 测试环境代码拉取及日程表

Jenkins介绍和安装及配合GitLab代码自动部署

构建及代码发布目录配置

Jenkins介绍和安装及配合GitLab代码自动部署

每分钟轮询如测试环境有新代码提前就触发代码拉取编译发

Jenkins介绍和安装及配合GitLab代码自动部署

 来自网络

Jenkins介绍和安装及配合GitLab代码自动部署

志不强者智不达


露水湾 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Jenkins介绍和安装及配合GitLab代码自动部署
喜欢 (0)
[]
分享 (0)
关于作者:
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址