02 基础设施/Gitlab - DevOps之路
02 Gitlab/基础设施 - DevOps之路
文章Github地址,欢迎
start:https://github.com/li-keli/DevOps-WiKi
源代码管理器选用Gitlab,新版(2018.4)的Gitlab已经集成了很多的功能了,涵盖CI/CD、Issues、K8s集群/Docker集群操作等。
在node01机器上安装部署Gitlab服务,Gitlab作为代码托管服务,所以需要注意备份、容灾等配置。
两种安装方式:
Gitlab官方源访问太慢,我们选择国内清华大学镜像进行安装,首先配置源:
cat>/etc/yum.repos.d/gitlab-ce.repo<<EOF
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el\$releasever/
gpgcheck=0
enabled=1
EOF && \
yum makecache && \
yum install -y gitlab-ce
在此完成Gitlab的安装,但此时默认的一些配置还需要调整,比如邮件配置,详细的邮件配置,参照官方文档介绍配置即可。
配置完成后,可以在Gitlab的Admin管理页面看到配置结果:

在Gitlab协同开发过程中,很多是依赖邮件沟通的,比如Pipelines的执行结果,Issues的处理等等。当然,我们也可以根据提供的Webhook来集成第三方的通信工具,比如钉钉。
自动备份
仓库需要日常的自动备份,进行容灾处理。Gitlab本身已经提供了备份导出的功能了,所以只要配置一个Job就行了。
在Crontab中增加以下语句:
0 5 * * 1 gitlab-rake gitlab:backup:create
以上代码将在每周的凌晨5店进行全量备份,备份完成后将生产一个.tar的包,默认存放在/var/opt/gitlab/backups。
可以通过修改配置文件调整存储的位置,也可以备份完成后将其自动上传到专用的NAS备份存储。
gitlab_rails['backup_path'] = '/var/opt/gitlab/backups' # 修改此处即可
到这里,Gitlab的基本配置就算完成了,开发人员可以将本地的git库提交到服务端了。
邮件配置
开启邮件,编辑配置文件/etc/gitlab/gitlab.rb
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.example.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "gitlab@example.com"
gitlab_rails['smtp_password'] = "****"
gitlab_rails['smtp_domain'] = "smtp.example.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
gitlab_rails['gitlab_email_reply_to'] = 'gitlab@example.com'
gitlab_rails['incoming_email_enabled'] = true
gitlab_rails['incoming_email_address'] = "gitlab-incoming+%{key}@example.com"
gitlab_rails['incoming_email_email'] = "gitlab@example.com"
gitlab_rails['incoming_email_password'] = "***"
gitlab_rails['incoming_email_host'] = "mail.example.com"
gitlab_rails['incoming_email_port'] = 25
gitlab_rails['incoming_email_ssl'] = false
gitlab_rails['incoming_email_start_tls'] = false
gitlab_rails['incoming_email_mailbox_name'] = "inbox"
gitlab_rails['incoming_email_idle_timeout'] = 60
配置完成后,执行gitlab-ctl reconfigure && gitlab-ctl restart,重载配置
邮件配置测试
在GitLab服务器上,执行gitlab-rails console进入控制台,键入一下命令进行邮件测试
Notify.test_email('destination_email@address.com', 'Message Subject', 'Message Body').deliver_now
另外由于作者本身知识有限,都是摸索着来的,所以不一定所有的做法都对,或者某些实践会有更好的方案,望各位读者不吝指正,有任何疑问,请留 issues
02 基础设施/Gitlab - DevOps之路的更多相关文章
- 03 持续集成和部署/基础设施 - DevOps之路
02 持续集成和部署/基础设施 - DevOps之路 文章Github地址,欢迎start:https://github.com/li-keli/DevOps-WiKi 服务的持续集成和部署这里有两套 ...
- 04 Docker/基础设施 - DevOps之路
04 Docker/基础设施 - DevOps之路 文章Github地址,欢迎start:https://github.com/li-keli/DevOps-WiKi Docker是一个开源的引擎,可 ...
- 06 Nexus仓储/基础设施 - DevOps之路
06 Nexus仓储/基础设施 - DevOps之路 文章Github地址,欢迎start:https://github.com/li-keli/DevOps-WiKi Nexus仓储官网简介: Th ...
- 05 Docker集群/基础设施 - DevOps之路
05 Docker集群/基础设施 - DevOps之路 文章Github地址,欢迎start:https://github.com/li-keli/DevOps-WiKi Docker的集群目前主流的 ...
- 07 YAPI/基础设施 - DevOps之路
07 YAPI/基础设施 - DevOps之路 文章Github地址,欢迎start:https://github.com/li-keli/DevOps-WiKi 简介 YApi 是一个可本地部署的. ...
- 01 前言/基础设施 - DevOps之路
01 前言/基础设施 - DevOps之路 文章Github地址,欢迎start:https://github.com/li-keli/DevOps-WiKi 简介 基础架构采用DevOps设计思想, ...
- BigBao 的python开发到DevOps 之路
本人是打杂的,从想学Python到自学Python,最后到报班培训Python路程总共用时两年,目前在培训Python.因为我这个大脑不适合自学.脑袋笨,自制力差,所以没办法只有乖乖交钱学python ...
- 企业DevOps之路:Jenkins 流水线
1. Pipeline 概述 Pipeline 即流水线,是 jenkins2.X 的新特性,是 jenkins 官方推荐使用的持续集成方案.与传统的自由风格项目不同,它是通过 jenkins DSL ...
- DevOps平台的“精益创业”之路
本文内容节选自第六届全球软件案例研究峰会,时任中国移动通信集团浙江有限公司罗琼老师,申健老师分享的<DevOps平台的“精益创业”之路>实录,重点分享:DevOps产品研发过程,对外实施敏 ...
随机推荐
- IDE-Android Studio -FAQ-使用习惯(不断更新 欢迎留言)
摘要: 从ecplise工具切换到android studio后遇到了很多问题,起初亦非常痛苦,城墙内外阅博无数才得以解决.所以把当时遇到的问题记录下来,方便后来人学习. 另如果有遇到未纪录的问题欢迎 ...
- ribbon 详解
ribbon 详解 1. 顶层架构 2. 简单的示例:使用ResourceTemplate方式 @Test public void testGroup(){ HttpResourceGroup htt ...
- 【深度学习】深入理解优化器Optimizer算法(BGD、SGD、MBGD、Momentum、NAG、Adagrad、Adadelta、RMSprop、Adam)
在机器学习.深度学习中使用的优化算法除了常见的梯度下降,还有 Adadelta,Adagrad,RMSProp 等几种优化器,都是什么呢,又该怎么选择呢? 在 Sebastian Ruder 的这篇论 ...
- 文本处理三剑客之sed
sed 1.简介 sed是一种流编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(patternspace),接着用sed命令处理缓冲区中的内 ...
- C#调用Python,报错No module named os
C#调用Python 环境:Windows 8.1,已经安装Python2.7(C:\Python27),配置了环境变量. 已经安装VS2013,VS2017 1.安装IronPython 下载地址h ...
- PHP性能优化利器:生成器 yield理解
如果是做Python或者其他语言的小伙伴,对于生成器应该不陌生.但很多PHP开发者或许都不知道生成器这个功能,可能是因为生成器是PHP 5.5.0才引入的功能,也可以是生成器作用不是很明显.但是,生成 ...
- C#之Winform跨线程访问控件
C#中禁止跨线程直接访问控件,InvokeRequired是为了解决这个问题而产生的,当一个控件的InvokeRequired属性值为真时,说明有一个创建它以外的线程想访问它.此时它将会在内部调用ne ...
- kafka知识体系-kafka设计和原理分析
kafka设计和原理分析 kafka在1.0版本以前,官方主要定义为分布式多分区多副本的消息队列,而1.0后定义为分布式流处理平台,就是说处理传递消息外,kafka还能进行流式计算,类似Strom和S ...
- [LeetCode] Path Sum IV 二叉树的路径和之四
If the depth of a tree is smaller than 5, then this tree can be represented by a list of three-digit ...
- Redis事务管理
用过其他关系型数据库(比如msql)的肯定都指定,在关系型数据库里面的事务可以保证多个命令操作要么同时成功,要么同时失败.并且在执行事务的时候,可以有隔离级别. 但是在Redis中的事务,只是保证事务 ...