Jenkins+git+gitlab实现持续自动集成部署
1 实验环境
三台服务器
gitlab 192.168.7.139
Jenkins 192.168.7.140
java 192.168.7.141
[root@jenkins ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@jenkins ~]# uname -a
Linux jenkins 3.10.0-862.6.3.el7.x86_64 #1 SMP Tue Jun 26 16:32:21 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
2 centos7 搭建gitlab服务器
安装gitlab的依赖包
yum install curl openssh-server openssh-clients postfix cronie policycoreutils-python -y
yum install -y patch
gitlab下载地址
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
下载安装包
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.3-ce.0.el7.x86_64.rpm
RPM安装
rpm -ivh gitlab-ce-10.0.3-ce.0.el7.x86_64.rpm
出现以下界面说明安装成功
修改gitlab的配置文件 /etc/gitlab/gitlab.rb
第13行 修改为自己搭建的gitlab的主机名称或者ip地址
原 external_url 'http://gitlab.example.com'
修改后 external_url 'http://192.168.7.139'
退出保存后需要重新加载配置文件 使之生效 需要等待几分钟
gitlab-ctl reconfigure
软件部分安装完毕 下面就是web页面配置部分
gitlab的默认端口是80
使用浏览器 访问一下地址 http://192.168.7.139
进入下面界面 用户在界面上填入新的密码 该密码是管理员的密码 (密码要求至少8位) 密码 123456 默认管理员是root
进入gitlab的界面
安装gitlab的汉化包
需要在主机上安装git
yum install git -y
查看git的版本
git --version
git version 1.8.3.1
下载gitlab的汉化包
git clone https://gitlab.com/xhang/gitlab.git
当前下载的汉化包为10.0.4 但是安装的gitlab的版本是10.0.3
停止gitlab服务
gitlab-ctl stop
切换到刚才从gitlab上download的汉化包目录
cd /home/soft/gitlab
找出安装的 10.0.3 版本和 汉化版本10.0.4 中的不同点
git diff v10.0.3 v10.0.4-zh > ../10.0.3-zh.diff
进入到上一级目录
将 10.0.3-zh.diff 的补丁添加到 gitlab 中
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 10.0.3-zh.diff
执行完命令后 按回车 再按y
重新加载配置文件
gitlab-ctl reconfigure
重新启动gitlab服务
gitlab-ctl start
出现下面的界面 说明启动成功
[root@gitlab softwares]# gitlab-ctl restart
ok: run: gitaly: (pid 17834) 1s
ok: run: gitlab-monitor: (pid 17849) 0s
ok: run: gitlab-workhorse: (pid 17853) 1s
ok: run: logrotate: (pid 17895) 0s
ok: run: nginx: (pid 17902) 1s
ok: run: node-exporter: (pid 17908) 0s
ok: run: postgres-exporter: (pid 17918) 0s
ok: run: postgresql: (pid 17925) 0s
ok: run: prometheus: (pid 17935) 1s
ok: run: redis: (pid 17944) 0s
ok: run: redis-exporter: (pid 17948) 1s
ok: run: sidekiq: (pid 17959) 1s
ok: run: unicorn: (pid 17968) 0s
配置gitlab 用户注册时的邮箱通知信息
修改 /etc/gitlab/gitlab.rb 配置文件,该邮箱地址是未来gitlab 向用户发送邮件时的推送邮箱
425 gitlab_rails['smtp_enable'] = true
426 gitlab_rails['smtp_address'] = "smtp.qq.com" # 用户输入自己的smtp服务器地址,例如作者的时163 的企业服务地址
427 gitlab_rails['smtp_port'] = 25 # 用户smtp 的端口号
428 gitlab_rails['smtp_user_name'] = "***@qq.com" # 用户的邮箱地址
429 gitlab_rails['smtp_password'] = "PASSWORD" # 用户的邮箱密码
430 gitlab_rails['smtp_domain'] = "qq.com" # 用户邮箱的域名
431 gitlab_rails['smtp_authentication'] = "login"
432 gitlab_rails['smtp_enable_starttls_auto'] = true
433 gitlab_rails['smtp_tls'] = false
44 gitlab_rails['gitlab_email_from'] = '***@qq.com' # 用户的邮箱地址
566 user['git_user_email'] = "***@qq.com" # 用户的邮箱地址
重新加载gitlab配置文件
gitlab-ctl reconfigure
在重新加载后,可以通过以下命令查看刚才修改的内容是否生效
gitlab-ctl show-config | grep smtp_password
管理员还需要在web的管理页面上修改对应的配置,管理员的配置页面可以点击以下按钮
如果管理员需要手动添加新用户可以在如下界面操作
=======================================================
上传git客户端的公钥到gitlab服务器上
开始在gitlab上创建项目
在Git客户端上进行操作
git config --global user.name "root"
git config --global user.email "***@com.cn"
git clone http://192.168.7.140/root/xapi.git
cd xapi/
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
===========================================================
jenkins的安装部署使用
yum安装Jenkins
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
yum install jenkins
systemctl status jenkins
systemctl enable jenkins
systemctl start jenkins
通过浏览器登录到Jenkins的管理界面 http://192.168.7.139:8080/
下面开始使用Jenkins
登录
Jenkins+git+gitlab实现持续自动集成部署的更多相关文章
- Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署动态网站(二)--技术流ken
项目前言 在上一篇博客<Jenkins+Git+Gitlab+Ansible实现持续化集成一键部署静态网站(一)--技术流ken>中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个 ...
- Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站(一)--技术流ken
前言 在之前已经写了关于Git,Gitlab以及Ansible的两篇博客<Git+Gitlab+Ansible剧本实现一键部署Nginx--技术流ken>,<Git+Gitlab+A ...
- Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站(一)
在之前已经写了关于Git,Gitlab以及Ansible的两篇博客<Git+Gitlab+Ansible剧本实现一键部署Nginx--技术流ken>,<Git+Gitlab+Ansi ...
- Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署动态网站(7)
项目前言 在上一篇博客<Jenkins+Git+Gitlab+Ansible实现持续化集成一键部署静态网站(一)–技术流ken>中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个静 ...
- Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站(6)
前言 在之前已经写了关于Git,Gitlab以及Ansible的两篇博客<Git+Gitlab+Ansible剧本实现一键部署Nginx–技术流ken>,<Git+Gitlab+An ...
- Docker+GitLab+Jenkins+kubernetes实现DevOps 持续化集成和持续化部署概念图
Docker+GitLab+Jenkins+kubernetes实现DevOps 持续化集成和持续化部署概念图 转载自:原创 IT综合 作者:百联达 时间:2017-05-09 15:48:08 41 ...
- Git+Gitlab+Ansible剧本实现一键部署动态网站(二)--技术流ken
项目前言 之前已经写了一篇关于git和ansible的博客<Git+Gitlab+Ansible剧本实现一键部署Nginx--技术流ken>.关于git,gitliab,ansible在我 ...
- Git+Gitlab+Ansible剧本实现一键部署动态网站(5)
项目前言 之前已经写了一篇关于git和ansible的博客<Git+Gitlab+Ansible剧本实现一键部署Nginx–技术流ken>.关于git,gitliab,ansible在我以 ...
- jenkins+git+gitlab+ansible实现持续集成自动化部署
一.环境配置 192.168.42.8部署gitlab,节点一 192.168.42.9部署git,Jenkins,ansible服务器 192.168.42.10节点二 二.操作演示 ①gitlab ...
随机推荐
- 带着萌新看springboot源码12(启动原理 下)
先继续接上一篇,那个启动原理还有一点没说完. 6. afterRefresh(context, applicationArguments); 看这个名字就知道,应该就是ioc容器刷新之后的一些操作了, ...
- 初探Java设计模式4:JDK中的设计模式
JDK中设计模式 本文主要是归纳了JDK中所包含的设计模式,包括作用和其设计类图.首先来个总结,具体的某个模式可以一个一个慢慢写,希望能对研究JDK和设计模式有所帮助.一.设计模式是什么(1)反复出现 ...
- Chapter 5 Blood Type——29
"We're meeting at my dad's store, at ten." “十点,我们在我爸的店见面.” His eyes flickered to Edward ag ...
- C#2.0 委托
委托 委托是一个非常不错的设计,允许我们把方法做为参数传递,实现了开放閉放原则.在方法中我们只要有一个委托占位,调用者就可以传入符合签名的方法来做不同的操作,这也面向对象开发中多态的魅力. 但是在C# ...
- Connection open error . Connection Timeout Expired. The timeout period elapsed during the post-login phase.
是这样的,最近我在开发Api(重构),用的数据库是Sqlserver,使用的Orm是 SqlSugar(别问我为什么选这个,boss选的同时我也想支持国人写的东西,且文档也很全). 被催的是,写好了程 ...
- 【转载】ASP.NET Core Web 支付功能接入 微信-扫码支付篇
转自:http://www.cnblogs.com/essenroc/p/8630730.html 这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步 ...
- 做了2个多月的设计和编码,我梳理了Flutter动态化的方案对比及最佳实现
背景 在端上为了提升App的灵活性, 快速解决万变的业务需求,开发者们探索了多种解决方案,如PhoneGap ,React Native ,Weex等,但在Flutter生态还没有好的解决方案.未来闲 ...
- Python SQLalchemy的学习与使用
SQLAlchemy是python中最著名的ORM(Object Relationship Mapping)框架了. 前言:什么是ORM? ORM操作是所有完整软件中后端处理最重要的一部分,主要完成了 ...
- Spring Cloud Alibaba基础教程:支持的几种服务消费方式(RestTemplate、WebClient、Feign)
通过<Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现>一文的学习,我们已经学会如何使用Nacos来实现服务的注册与发现,同时也介绍如何通过LoadBal ...
- 【.NET Core项目实战-统一认证平台】第十一章 授权篇-密码授权模式
[.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章介绍了基于Ids4客户端授权的原理及如何实现自定义的客户端授权,并配合网关实现了统一的授权异常返回值和权限配置等相关功能,本篇将介绍 ...