免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
在自己服務器上安裝 GitLab,代替 GitHub!

我的服務器上部署的代碼、配置文件等內(nèi)容大多是使用 Git 進行版本控制。為了能夠使用、配置起來更方便,通常使用一整套系統(tǒng)去管理。很顯然,在一些代碼和配置文件里會有一些機密的內(nèi)容,如一些密鑰什么的,所以必須不能公開。GitHub.com 雖然提供了 Private 存放處功能,但是由于此功能是付費的,而且對于 Organization 的 Plan 還是極貴,并不十分劃算;就算能有免費的 Private 存放處,把自己的很多重要的密鑰放在第三方服務器上還是很不安全,所以能夠 Host 在自己的主機上的,并且能夠替代 GitHub.com 的軟件/服務就是不錯的選擇。

本文將講一下我在自己服務器上安裝 GitLab 遇到的坑,進階使用,包括使用 .gitlab-ci.yml 文件實現(xiàn)自動 Build,實時同步鏡像到 GitHub。

能夠 Host 在自己的服務器上的軟件/服務其實有很多,比如 GitHub Enterprise,Bitbucket Server。不過再此還是推薦完全開源、免費、由社區(qū)維護的 GitLab Community Edition,沒有任何限制,只是相比 Enterprise Edition 少了些本來也用不著的功能。

安裝及遇到的坑

具體安裝方法見文檔,目前官方推薦的系統(tǒng)環(huán)境是 Ubuntu 16.04 LTS,安裝起來非常簡便,整個 Web 環(huán)境都會配置好。安裝后的更多配置請參見文檔。如果你的主機上跑了不只一個 Web 程序,那就需要對現(xiàn)有的 Web 軟件做修改,具體可參見我的代碼(Nginx)或者官方的文檔。我的代碼中使用了 sub_filter 來實現(xiàn)替換默認的標題,實現(xiàn)更好的 SEO,更加品牌化。

然后為了能達到更好的使用效果,還應該配置 SMTP 發(fā)件服務器,我使用的是 AWS SES;然后還需要一個支持 IMAP 的收件服務器實現(xiàn) Reply by email,我使用的是 Gmail,收郵件的限制總比發(fā)郵件的限制少吧~這些的具體設置方法官方文檔里都有。

安裝后默認是允許注冊的,如果你不想讓外人注冊,你需要直接去 Web 后臺禁用。如果你想要開放注冊,那么最好先想好新注冊用戶能干什么,比如和我一樣:只允許新用戶創(chuàng)建 Issues 和 Snippets,那就在 Web 后臺將 Default projects limit 設置為 0,然后編輯后臺的配置文件,禁止新用戶創(chuàng)建 Group。同時建議在 Web 后臺啟用 reCAPTCHA 和 Akismet,防止惡意注冊和惡意發(fā) Issues。既然允許注冊,那么也建議使用 OmniAuth 來支持第三方 OAuth 的方式登陸。

GitLab Runner

GitLab Runner 十分強大,但是并不是內(nèi)置的,它可以極其方便的實現(xiàn)自動部署等非常有用的功能。安裝配置好 Runner 后,在項目根目錄下添加一個名為 .gitlab-ci.yml 的文件,以 master 分支為例,為了實現(xiàn)每次 commit 到 master 都將文件部署到 /var/gitlab/myapp ,那么文件內(nèi)容應該是這樣的:

pages:

stage: deploy

script:

- mkdir -p /var/gitlab/myapp

- git --work-tree=/var/gitlab/myapp checkout -f

only:

- master

注意,你需要先創(chuàng)建 /var/gitlab 文件夾,并設置這個文件夾的用戶組為 gitlab-runner:gitlab-runner

sudo chown -R gitlab-runner:gitlab-runner /var/gitlab

.gitlab-ci.yml 核心的部分就是 script: ,這里的腳本都是由用戶 gitlab-runner 執(zhí)行的,你可以根據(jù)需要修改,后文中也給了幾種范例。

然后 commit,去設置頁面里里激活這個項目的 Runner。建議在設置里設置 Builds 為 git clone 而不是 git fetch ,因為后者常常出現(xiàn)奇奇怪怪的問題,前者的速度瓶頸主要在于網(wǎng)絡傳輸。

部署 Runner 在同一個主機上,Or not?

官方的文檔里強烈不推薦把 Runner 部署在同一個主機上,其實這種說法并不正確。官方不推薦這樣做是因為一些 build 會花費很長時間,占用很多的 CPU 和內(nèi)存資源。但是如果你執(zhí)行的 build 腳本并不會這樣,那么安裝在同一個主機上也未嘗不可。

常見的部署范例

這幾種部署是我比較常用的,大家可以當作范例,具體根據(jù)自己的需要弄各種不同的部署。

以下幾種 Web 的部署方式所消耗的系統(tǒng)資源都不多,而且由于使用了 nice ,并不會阻塞其他任務,可以部署在同一臺主機上。

Jekyll

修改之前那個 .gitlab-ci.yml 文件的 git checkout 一行,替換為:

nice jekyll build --incremental -d /var/gitlab/myapp

檢查 PHP 的編譯錯誤

也是添加以下代碼到 .gitlab-ci.yml 即可自動檢查所有 PHP 文件的編譯錯誤,編譯通過的文件不會顯示,只會顯示編譯錯誤的:

if find . -type f -name "*.php" -exec nice php -l {} \; | grep -v "No syntax errors"; then false; else echo "No syntax errors"; fi

自動與 GitHub 同步

以下過程需要 root 權限登陸到主機,或者在每行命令前添加 sudo。

首先,需要先給 gitlab-runner 用戶一個單獨的 SSH Key:

ssh-keygen -f /home/gitlab-runner/.ssh/id_rsa

然后,創(chuàng)建 /home/gitlab-runner/.ssh/known_hosts ,內(nèi)容是:

github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==

之后,獲取 /home/gitlab-runner/.ssh/id_rsa.pub 文件內(nèi)容,在 GitHub 上添加這個 SSH Key。

由于是使用 root 賬號,弄完了之后不要忘了修改用戶組:

sudo chown -R gitlab-runner:gitlab-runner /home/gitlab-runner/.ssh

然后,同樣是通過 .gitlab-ci.yml 實現(xiàn)自動同步:

git push --force --mirror git@github.com:[Organization]/[Project].git

修改 [Organization] 和 [Project] 為你自己的名稱即可。

談談安裝在自己服務器上的 GitLab 的好處

文件都存儲在自己的服務器里,安全性比較有保障,自己有最高權限,不會遇到項目被刪的情況。部署時延遲極低,可靠性也高,不會遇到自己服務器沒問題但是第三方服務宕機導致無法部署的窘?jīng)r。

可以根據(jù)情況部署到離自己最近的服務器,或者是內(nèi)部服務器,像 GitHub 的服務器就在美國東岸,亞洲這邊連接并不快,國內(nèi)也不穩(wěn)定。

最關鍵的是,如果你本來就有個 VPS 什么的,也有很大的空閑,那么相當于你可以免費獲得私有存放處,但是要注意性能需求,沒有足夠的空閑還是不要啟用。

由于能夠配置好實時同步鏡像到 GitHub,GitLab 還有那么多 GitHub 沒有的功能,其實已經(jīng)可以完全使用 GitLab 作為主要的版本控制工具,GitHub 只是存一份鏡像備用。

最后

歡迎大家訪問我的 gitTLO(git.tlo.xyz) 體驗效果,使用的正是 GitLab。



本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
基于docker-compose的Gitlab CI/CD實踐&排坑指南
GitLab-CI 從安裝到差點放棄
GitLab CI持續(xù)集成配置方案
用git管理代碼
Linux系統(tǒng)GitLab安裝與環(huán)境配置
搭建 Linux 下 GitLab 服務器
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服