天天看點

使用Bitbucket托管網站源碼項目,同時通過git部署到阿裡雲網站伺服器,可随時釋出網站更新使用Bitbucket托管網站源碼項目,同時通過git部署到阿裡雲網站伺服器

使用Bitbucket托管網站源碼項目,同時通過git部署到阿裡雲網站伺服器

一、注冊Bitbucket賬号,對比國内的源碼托管企業(https://gitee.com/enterprises),Bitbucket相當大方,無限制源碼項目數目,檔案大小,項目總檔案大小。

二、在Bitbucket上建立一個項目,用來托管網站源碼,比如mywebsite.com。

三、通過Bitbucket提供的SourceTree工具(登入賬号密碼或者ssh),Git拉取一份到本地,這樣本地電腦可以上傳/下載下傳源碼了。

以上都是源碼托管項目建立過程,已有的可以跳過,沒有的可以百度搜尋Bitbucket使用方法,本文的重點是如何通過git部署到阿裡雲網站伺服器。

四、如何通過git部署到阿裡雲網站伺服器?

部署前準備:阿裡雲Linux伺服器已經安裝了git服務,請百度自行安裝。

1. 進入項目的設定頁面,找到access keys設定,去綁定一個公鑰ssh key.

阿裡雲Linux或者其他系統,可參考Bitbucket提供方法來生成私有密鑰,公鑰,并綁定到裝置賬号.

https://support.atlassian.com/bitbucket-cloud/docs/add-access-keys/

使用Bitbucket托管網站源碼項目,同時通過git部署到阿裡雲網站伺服器,可随時釋出網站更新使用Bitbucket托管網站源碼項目,同時通過git部署到阿裡雲網站伺服器

Bitbucket ssh deployment key

2. 綁定成功後,在阿裡雲SSH終端上,通過這個指令來測試阿裡雲是否能夠正常通路Bitbucket。

$ ssh -T [email protected]
authenticated via a deploy key.

You can use git to connect to Bitbucket. Shell access is disabled.

This deploy key has read access to the following repositories:
webmaster.com
           

3. 之後你就可以在阿裡雲SSH終端上通過git clone指令,下載下傳拉取托管在Bitbucket的源碼了。

本地電腦   <======(上傳/下載下傳)==========> Bitbucket雲源碼托管  =========(釋出更新)=========> 某個網站(阿裡雲伺服器)

如果使用

特别注意的是:

Bitbucket ssh account key 就是有開發者賬戶下面所有托管項目的可寫可讀權限,一般用在開發者的電腦某個git軟體上面,目的是替代輸入賬号密碼,來實作上傳/下載下傳管理遠端源碼功能;

Bitbucket ssh deployment key 隻能讀取綁定的幾個托管項目,一般用在網站釋出,比如阿裡雲伺服器上面的幾個網站項目,都可以通過ssh git pull方式拉取直接遠端下載下傳到伺服器上面,替代了傳統ftp上傳網站源碼檔案。

在阿裡雲SSH終端上生成了密鑰,公鑰後,看你是想将公鑰綁定到哪裡:

如果綁定到Bitbucket賬号下,終端的Git權限就是所有項目可寫可讀;如果綁定到一個或者多個源碼項目下,終端的Git權限隻能讀取;同一個ssh pub key可以綁定多個Bitbucket項目,但是隻能綁定一個Bitbucket賬号。

使用Bitbucket托管網站源碼項目,同時通過git部署到阿裡雲網站伺服器,可随時釋出網站更新使用Bitbucket托管網站源碼項目,同時通過git部署到阿裡雲網站伺服器

Bitbucket ssh account key

注意事項:

1. 阿裡雲SSH終端上面按照提示生成的密鑰對一般是root使用者或者system級别的密鑰,并不能給其他使用者使用,無通路權限,通過chown、chmod修改權限是無效的。

[[email protected] .ssh]# cd ~/.ssh/
[[email protected] .ssh]# ll
total 16
-rw-------. 1 root root    0 Dec 25 15:04 authorized_keys
-rw-r--r--  1 root root   57 May 12 17:46 config
-rw-r--r--  1 root root 1679 May 12 17:13 id_rsa
-rw-r--r--  1 root root  410 May 12 17:13 id_rsa.pub
-rw-r--r--  1 root root  409 Dec 29 14:52 known_hosts
           

2. root使用者的公鑰添加到了bitbucket,但是我的網站源碼裡面有PHP通過sh指令調用git pull拉取更新,這裡httpd的使用者是apache,需要給apache使用者也建立一個密鑰對,可添加到Bitbucket多個網站項目,這樣php才有權限能調用到ssh密鑰。

[Echo]Start git pull origin master...
cd /beecenter.cn
[Echo][git status]...
# On branch master
# Your branch is ahead of 'origin/master' by 355 commits.
#   (use "git push" to publish your local commits)
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#    init/
nothing added to commit but untracked files present (use "git add" to track)
[Echo][git pull origin master]...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
[Echo]Finished Updating.
           
[Echo]Start git pull origin master...
cd /beecenter.cn
[Echo][git status]...
# On branch master
# Your branch is ahead of 'origin/master' by 355 commits.
#   (use "git push" to publish your local commits)
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#    init/
nothing added to commit but untracked files present (use "git add" to track)
[Echo][git pull origin master]...
Unauthorized
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
[Echo]Finished Updating.
           

上面是git通路權限不通過,下面是生成 PHP/apache可用執行的使用者ssh密鑰對,并需要再次手動添加到Bitbucket.

[[email protected] www]# cd /usr/share/httpd/.ssh/
[[email protected] .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts
[[email protected] .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC45licBh8dO3sRmPBQiivLg4NzzU/3TdaYtlneY1iLIgkrm/ZBbws+TwfiAsGhEjRroul9d//TkeFIYgExF28np3Zlf5i2fWNiJbPEoE3TPVxWJ4lTM+3njPSOGX7Ug91u1MVPbfZU68ltP+DWZ6/A3VVLYu63gD45qTdUVpXGNlsqE4OevFLzLVGZssYZmdLimRk4pmHGkrn+y3IhaI6C5ZTry3vYffYNfT2sfsKhli7ZGZTK9iHhGSKdoIf7SgJjoOHHPeMFdZye8ShOf8+1Q9QDs3GDIZH9nWGRs2MY0bJi9sYXpE0PLE0D4OCFTiDxmhymPp2cO79Jt2q6hLSX [email protected]
[[email protected] .ssh]# ll
total 12
-rw------- 1 apache root    0 Dec 30 16:34 authorized_keys
-rw------- 1 apache root 1675 Dec 30 16:33 id_rsa
-rw-r--r-- 1 apache root  410 Dec 30 16:33 id_rsa.pub
-rw-r--r-- 1 apache root  409 Dec 30 16:34 known_hosts
           
使用Bitbucket托管網站源碼項目,同時通過git部署到阿裡雲網站伺服器,可随時釋出網站更新使用Bitbucket托管網站源碼項目,同時通過git部署到阿裡雲網站伺服器

 以上是再次完成添加apache使用者,下面是我們網站的系統手動Git更新:

使用Bitbucket托管網站源碼項目,同時通過git部署到阿裡雲網站伺服器,可随時釋出網站更新使用Bitbucket托管網站源碼項目,同時通過git部署到阿裡雲網站伺服器

總結

上面我建立了兩份ssh key,都是用來釋出網站更新,

一個是阿裡雲ssh終端root使用者,可以通過在ssh終端界面輸入git指令手動更新,

另外一個是apache/www使用者,可以通過編寫網站源碼調用sh指令,進而執行git指令來手動共享,我覺得網站指令更友善直接一些。

繼續閱讀