前言
云幫目前支持對接GitLab、Gogs、Github,或者主流代碼托管平臺的公開項目,后期會考慮接入其他類型的Git服務。
私有云
GitLab是一個用于倉庫管理系統的開源項目,私有云服務里使用比較多的自建Git服務。
對接GitLab
通過應用市場進行安裝Gitlab
安裝GitLab應用
由于GitLab依賴Mysql和Redis,首先安裝Mysql和Redis應用。
安裝Mysql
安裝Redis
安裝GitLab
默認的管理賬號:admin@example.com/Administrator
配置Gitlab的ssh協議端口
http(s)和ssh的區別:
http(s)前者可以隨意克隆git上項目,不管是誰的;push 項目時需要驗證用戶名和密碼
ssh,克隆項目你必須是項目的擁有者或者管理員,且需要添加ssh key;push無需驗證用戶名和密碼,如果key設置了密碼,則需要密碼(通常沒必要),推薦使用SSH
待安裝完成后,在GitLab應用高級選項里添加SSH端口22(stream),開啟外部訪問,重啟應用。
權限配置
管理節點:
docker pull hub.goodrain.com/dc-deploy/console:2017.03
#編輯docker-compose.yaml文件,大約在45行左右
vi /etc/goodrain/docker-compose.yam
將image: hub.goodrain.com/dc-deploy/console:2017.02修改為image: hub.goodrain.com/dc-deploy/console:2017.03
#修改完
dc-compose stop console
cclear
dc-compose up -d
計算節點:
#切換到租戶服務目錄下
cd /grdata/tenant/73e7e82d5558407696601b8461bcb4f7/service
#說明73e7e82d5558407696601b8461bcb4f7為租戶id,默認Tab鍵就可以了
在gitlab應用概覽頁查看源代碼,搜service_id對應的值(如:abc)
cd到該目錄下 (cd abc)后ll一下,可以看到data目錄
#當前完整路徑 pwd
/grdata/tenant/73e7e82d5558407696601b8461bcb4f7(tab補全)/service/abc(查看源碼)/
chmod 755 data
# 查看data目錄權限
ll -a
drwxr_xr_x
對接GitLab
訪問GitLab.
新建一個項目倉庫
在倉庫里新建一個index.html文件并編輯 。
管理節點測試
#生成 ssh-key
ssh-keygen -t rsa -f /etc/goodrain/ssh/goodrain-builder
# 配置 ssh config文件
cat <<EOF >/etc/goodrain/ssh/config
Host *IdentityFile ~/.ssh/goodrain-builderStrictHostKeyChecking noLogLevel ERRORPort 20002
EOF
# 更改權限
chown -R rain.rain /etc/goodrain/ssh
查看公鑰并將其添加到gitlab用戶的ssh-key(路徑profile/keys)cat /etc/goodrain/ssh/goodrain-builder.pub
## 測試
dps | grep build | awk '{print $1}'
din 容器id(上述命令執行的結果)
ls ~/.ssh #查看是否有文件
cd /tmp && git clone <git-url地址>
其他機器測試
ssh-keygen
cat .ssh/id_rsa.pub #添加到gitlab
nano /etc/ssh/ssh_config
#大概格式
Host 80.gr06cf43.zhengys.1t8zf.goodrain.io #git地址IdentityFile ~/.ssh/id_rsa #私鑰完整路徑StrictHostKeyChecking noLogLevel ERRORPort 20002 #git ssh 對外開放的端口#說明一下
如果存在多個Git服務,同時還使用ssh管理服務,建議在Host里指定git地址#測試
git clone 項目url
對接Gogs
相對GitLab來說,Gogs安裝更加便捷,是一款極易搭建的自助 Git 服務,而且還是國人開發的。直接在應用市場安裝Gogs即可。
安裝完成,在高級選項里新增端口22(stream),開啟對外部訪問。
新建項目,將機器的公鑰添加到用戶的ssh-key列表里。
設置用戶的ssh_config配置,大概格式
Host 5000.gr06cf43.zhengys.1t8zf.goodrain.io #git地址IdentityFile ~/.ssh/id_rsa #私鑰完整路徑StrictHostKeyChecking noLogLevel ERRORPort 20002 #git ssh 對外開放的端口
git clone <git-url>
公有云
在公有云搭建Git服務和內網自建Git服務,對接步驟相同。
公有云新建Git步驟同私有云。
云平臺git clone代碼,選擇自建Git,然后將授權key添加Git應用的ssh-key列表里即可。
windows
打開Git Bash或者終端工具(cmder等)
生成ssh-keygen -t rsa -f ~/.ssh/id_rsa.pub -C "email"
新增或添加配置文件config (路徑C:Users當前用戶.ssh/config)
Host 5000.gr06cf43.zhengys.1t8zf.goodrain.io #git地址IdentityFile ~/.ssh/id_rsa #私鑰完整路徑StrictHostKeyChecking noLogLevel ERRORPort 20002 #git ssh 對外開放的端口