CI&CD:

持续集成注重将各个开发者的工作集合到一个代码仓库中,通常每天会进行几次, 主要目的是尽早发现集成错误,使团队更加紧密结合,更好地协作。
持续交付的目的是最小化部署或发布过程中团队固有的摩擦, 它的实现通常能够将构建部署的每个步骤自动化,以便任何时刻能够安全地完成代码发布(理想情况下)。
持续部署是一种更高程度的自动化,无论何时代码有较大改动, 都会自动进行构建/部署。

Jenkins:

Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。

官方文档:
https://www.jenkins.io/zh/doc/

所需环境:

gitlab 192.168.1.128
jenkins 192.168.1.129

一、安装配置gitlab

1、安装前提软件

[root@gitlab ~]# yum install curl policycoreutils openssh-server openssh-clients postfix -y

2、下载清华gitlab安装包

[root@gitlab ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm       #下载rpm包到虚拟机

3、yum安装

[root@gitlab ~]# ls
gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
[root@gitlab ~]# yum -y install gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm

4、修改配置文件,指定ip地址

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.1.128'       #修改

5、配置启动 gitlab

[root@gitlab ~]# gitlab-ctl reconfigure

查看状态

[root@gitlab ~]# gitlab-ctl status

6、gitlab服务管理命令(开启/关闭/重启)

[root@gitlab ~]# gitlab-ctl start/stop/restart

7、创建用户、组、项目

1)创建用户

登录gitlab——admin area——new user——添加用户名、邮箱——create user——edit——修改密码


2)创建group

登录gitlab——admin area——new group

把zhangsan用户添加到组中:

3)创建项目

登录gitlab——admin area——new project——注意选择组(dianfeng)

4)创建一个代码文件用做后边的铺垫

创建一个代码文件用做后边的试验

二、安装配置jenkins

1、下载安装jenkins

[root@jenkins ~]# wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.222-1.1.noarch.rpm     #下载jenkins包到虚拟机
java-1.8.0-openjdk.x86_64   # 安装java jdk
[root@jenkins ~]# yum -y install jenkins-2.222-1.1.noarch.rpm      #安装jenkins

2、修改配置文件(默认jenkins端口为8080,如果同gitlab一起安装,需要修改端口)

[root@jenkins ~]# vim /etc/sysconfig/jenkins
JENKINS_USER="root"
JENKINS_PORT="8081"

3、启动jenkins

[root@jenkins ~]# systemctl start jenkins
[root@jenkins ~]# systemctl enable jenkins

4、web界面登录jenkins

http://192.168.1.129:8081

5、输入密码

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

复制加密密码字段,粘贴到web

6、选择安装插件

先选择右上角“X”,进入

7、修改admin用户密码

右上角——admin点击小三角——Configure——Password字段——修改密码——save保存

8、复制插件包到虚拟机

1)解压复制jenkins插件包到/var/lib/jenkins/plugins下
[root@jenkins ~]# ls /var/lib/jenkins/plugins/[root@jenkins ~]# ls
jenkins-plugins.tar.gz
[root@jenkins ~]# tar zxf jenkins-plugins.tar.gz
[root@jenkins ~]# ls
plugins
[root@jenkins ~]# cp -rp /root/plugins/ /var/lib/jenkins/
[root@jenkins ~]# ls /var/lib/jenkins/plugins/
ace-editor                              mapdb-api.jpi
ace-editor.jpi                          matrix-auth
…………        //省略
2)重启服务
[root@jenkins ~]# systemctl restart jenkins

9、关联gitlab

1)点击左上角logo——回到主页面——选择新项目“New Item”——填写项目名(freestyle-job)——选择项目类型“Freestyle project”——OK


2)配置项目freestyle-job右边小三角——configure——Source Code Management——git——Repository URL:(git@192.168.1.128:dianfeng/dev.git)——报红字错误,则需要添加私钥认证——如果认证成功——save保存

如果不小心退到主界面了进入配置项目步骤:(没有就略过)

报红字错误,则需要添加私钥认证——如果认证成功——save保存


!!解决红色报错问题!!

思路:
(1)首先排除jenkins安装了git;
[root@jenkins ~]# git
git git-receive-pack git-shell git-upload-archive git-upload-pack
(2)双方相互copy公钥
[root@gitlab ~]# ssh-keygen -t rsa
[root@gitlab ~]# ssh-copy-id root@192.168.1.129
|
[root@jenkins ~]# ssh-keygen -t rsa
[root@jenkins ~]# ssh-copy-id root@192.168.1.128
(3)在gitlab的网页端添加私钥认证
[root@gitlab ~]#
[root@gitlab ~]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTOG9ARiDpM7lP30kFFokOiSe3w5+13ir06ungGNo2Rmx/+tA06dVSX1eGtYzVEStyZGLNAp+DqAHZ2mOFK/gmJXyacD73PFjgmKKzIj4LynhhJShQIpqb2coOTdYONMjOak3Dzrvrz3GgQSoV2zG+ZYjSrLdKXni3k19vOWnYKeXETga/ssfWUY/Yp45bUhbvc4zEenHmv4YkVbN0AMxMIckAM7WIPPYOXzv9sPBN7bRC0+hBnmY2Kxxorqew27tU7GiQb422SuMyHH21encXfs1ei0zdHlpMshHTPu8Nt0fX8RIFQV2aM3a0Dh25Q+1R+McZR0yYe2m79AxRjmEp root@gitlab

[root@jenkins ~]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBUDp1sP2Zrzh/4iUQ25FMQzGPW1m5M0hHH90icclJRPKGFahRWpyebEmXQwG8ngPmLMY7tKf+/twO3T0Wu6TzKNluyG8G1sD34loT70QVKir4C3C7rCBxMkBcVL1R/JRLTb+ffAi7h7nlFDfNbQ2zWWEh2EvuOFZP98IJrfBJbas4lgj9jH7cS1QsTTIVXyb9pmxPHu96PuJwpc3f+Rrhscfn28RGvDibl+ugmUioaOkbXvZxuJ5phikZzlA04eScuhBOjuSQbhlfrwsJzpu+6BLy6vYMh+/s+yyhxrC1u9D2QzZ2RJ2jwCmlqxNo5aLu0C//9S6jS5eLXjyyOgp1 root@jenkins

认证成功——save保存

3)选择项目——左侧选择“build now”——下面构建历史出现蓝色标志——选择蓝色标志下拉列表——console output——输出执行过程

选择项目——左侧选择“build now”——下面构建历史出现蓝色标志——选择蓝色标志下拉列表——console output

输出执行过程

4)jenkins服务器上查看/var/lib/jenkins/workspace目录,会有项目同名文件夹,保存git clone 的所有代码
[root@jenkins ~]# cd /var/lib/jenkins/workspace/
[root@jenkins workspace]# ls
freestyle-job  freestyle-job@tmp
[root@jenkins workspace]# cd freestyle-job
[root@jenkins freestyle-job]# ll -a
总用量 4
drwxr-xr-x 3 root root  33 7月  22 04:48 .
drwxr-xr-x 4 root root  52 7月  22 04:48 ..
drwxr-xr-x 8 root root 162 7月  22 04:48 .git
-rw-r--r-- 1 root root   9 7月  22 04:48 test.md
[root@jenkins freestyle-job]# cat test.md
123456789

架构——20——Jenkins+Gitlab实现持续集成——3相关推荐

  1. 持续集成之Jenkins+Gitlab实现持续集成

    项目使用git+jenkins实现持续集成 开始构建  General  源码管理  我们安装的是Git插件,还可以安装svn插件  我们将git路径存在这里还需要权限认证,否则会出现error    ...

  2. 持续集成Jenkins+Gitlab实现持续集成

    用户说明 假设node3是程序员的个人电脑,在这台机器上编写代码 ip地址192.168.10.10 Git的安装部署及使用 git config --global user.name 'zzg' # ...

  3. Jenkins多环境持续集成架构实践

    作者:滴答的雨 出处:http://www.cnblogs.com/heyuquan/ Jenkins多环境持续集成架构实践 自动化部署主要是为了解决项目多.环境多.持续集成慢.部署操作麻烦.手动操作 ...

  4. 基于Docker容器的,Jenkins、GitLab构建持续集成CI

    ** 开发者将代码提交(push)到GitLab后,GitLab通过Hook通知jenkins,jenkins自动从GitLab中获取项目最新的源码进行集成和发布. 基于Docker,创建一个私有Gi ...

  5. GitLab + Jenkins + Sonar Qube 持续集成

    GitLab + Jenkins + Sonar Qube 持续集成 一. 持续集成 二. 持续交付 三. 持续部署 四. 持续集成的实施流程 五. gitlab 5.1 gitlab安装配置 5.1 ...

  6. Jenkins——Jenkins介绍+基于云平台的Jenkins安装和持续集成环境配置(插件+用户权限+凭据+Maven打包)

    Jenkins--Jenkins介绍+基于云平台的Jenkins安装和持续集成环境配置(插件+用户权限+凭据+Maven打包) 持续集成及Jenkins介绍 软件开发生命周期 什么是持续集成? 持续集 ...

  7. 基于 Jenkins 快速搭建持续集成环境--转

    源地址:http://www.ibm.com/developerworks/cn/java/j-lo-jenkins/ 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础 ...

  8. 基于 Jenkins 快速搭建持续集成环境

    持续集成概述 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域 ...

  9. Linux上快速搭建Jenkins服务器 实现持续集成开发

    http://my.oschina.net/long0419/blog/183299 简介: 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础.Jenkins 是一个开 ...

最新文章

  1. 原来腾讯面试题也不难,面试官:给我说一下你理解的分布式架构?
  2. HTML Window.document
  3. 【Android】 Android adb常见问题整理
  4. Netty之Channel源代码分析
  5. 终端执行php,PHP命令行执行PHP脚本的注意事项总结
  6. linux开机自动ZFS,linux – 为什么重新启动导致我的ZFS镜像的一面成为UNAVAIL?
  7. 奥运奖牌计数(信息学奥赛一本通-T1064)
  8. 404为什么是404?
  9. 给大楼装上转动外壳减少风力作用
  10. 181104每日一句
  11. 【C语言】筛选法求素数
  12. 国内从事CV相关的企业
  13. 树莓派建立无线热点AP (方便直接连接遥控机器人/摄像头)
  14. 苹果对中国手机产业链有多重要?欧菲光没了它就巨亏27亿
  15. 来这里,找业务场景!巴比特今日上线产业区块链对接平台
  16. 主流相声演员与郭德纲到底结了什么仇?
  17. matlab中的a逆怎么使用方法,在MATLAB中,求矩阵A逆矩阵可用命令( )。
  18. matlab演示平抛运动,几何画板动态演示平抛运动的规律
  19. 用R语言绘制ROC曲线
  20. 最全去水印的视频解析工具,完全免费的小程序

热门文章

  1. SpringBoot引入第三方SDK以及打包
  2. 住房教育当从娃娃抓起
  3. 获取微信昵称时 过滤特殊字符
  4. 2019程序员笔记本推荐
  5. 心回暖------振作
  6. android studio 2.2 preview4,Android Studio变黄了,2.2 Preview 4 发布
  7. 计算机没有网络时间不准如何设置,轻松解决电脑时间不准的方法
  8. Three.js地球开发—6.三维球面上某点进行贴图标注
  9. windows10 快捷方式右键失灵问题解决
  10. oracle查询dictionary,Oracle的DICTIONARY/DICT视图。