文章Github地址,欢迎
start
:https://github.com/li-keli/DevOps-WiKihtml
源代码管理器选用Gitlab,新版(2018.4)的Gitlab已经集成了不少的功能了,涵盖CI/CD、Issues、K8s集群/Docker集群操做等。node
在node01机器上安装部署Gitlab服务,Gitlab做为代码托管服务,因此须要注意备份、容灾等配置。git
两种安装方式:github
Gitlab官方源访问太慢,咱们选择国内清华大学镜像
进行安装,首先配置源:shell
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管理页面看到配置结果:centos
在Gitlab协同开发过程当中,不少是依赖邮件沟通的,好比Pipelines的执行结果,Issues的处理等等。固然,咱们也能够根据提供的Webhook来集成第三方的通讯工具,好比钉钉。服务器
仓库须要平常的自动备份,进行容灾处理。Gitlab自己已经提供了备份导出的功能了,因此只要配置一个Job就好了。dom
在Crontab中增长如下语句:工具
0 5 * * 1 gitlab-rake gitlab:backup:create
以上代码将在每周的凌晨5店进行全量备份,备份完成后将生产一个.tar的包,默认存放在/var/opt/gitlab/backups
。
能够经过修改配置文件调整存储的位置,也能够备份完成后将其自动上传到专用的NAS备份存储。gitlab
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