文章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