2017-05-03 113 views
0

我在BitBucket.org上有多個存儲庫。我想在我的生產服務器上運行一個git pull,每次在本地機器上運行git push。我一直在尋找最佳的解決方案,但似乎有很多不同的解決方案。自動部署的最佳實踐

有人說webhooks,但他們似乎對我有點不安全。當然,您可以通過默默無聞的方式來應用安全性,但我不確定這對於生產服務器來說是否足夠安全。

我也可以設置一個git掛鉤並推送到另一個遠程。但我想始終推動起源,而不僅僅是生產服務器。

所以我的問題是,什麼是真正的自動部署的最佳做法, ,而不必SSH到我的生產服務器,並拉動變化每次我推動的東西到原點?

+2

你有沒有考慮建立一個連續的構建/集成系統,比如Jenkins,TeamCity或類似的?說實話,「直接推動生產」聽起來非常類似於「建造,運輸」。 –

+0

_「我想在我的生產服務器上運行git pull,每次在本地機器上運行git push。」_ + _「(..)似乎對我有點不安全」_ + _「但我想永遠推到原點,而不僅僅是生產服務器「_ =爲什麼不在生產服務器上設置一個**計劃任務**,它會從你的'origin'做一個'git pull',比方說,每一次分鐘?如果沒有新帖發佈,它將是一個非常快速,幾乎沒有任何操作。如果發佈了新內容,推出後最多可以在60秒內獲得。這非常安全,就好像您在推送後手動完成一樣。 – quetzalcoatl

回答

1

你應該使用CI工具和git一起 - 你可以用純粹的git鉤子實現你的目標,但是我強烈建議不要。以下是如何使用SemaphoreCI設置通用工作流程:https://semaphoreci.com/docs/generic-deployment.html - 它們有非常好的和初學者友好的文檔,如果您對CI主題有疑問,應該經過。

如果您有私人存儲庫(我想您是因爲您使用的是bb)並且您的預算有限,所以您可以使用http://codeship.comhttps://circleci.com/,因爲它們具有免費層。

如果你願意離開bitbucket,你可以做的另一件事是使用https://gitlab.com/,然後你將你的CI與無限制的版本集成在一起,無需花費。唯一的缺點是它們的UI有點過於複雜,所以有些東西起初可能會讓人困惑,但它們的功能集是一個殺手。

+0

謝謝你!我要看看你提到的那些CI。是的,你是完全正確的,我需要倉庫是私人的。我還沒有試過Gitlab,我選擇了Bitbucket,因爲我聽到比Gitlab更積極的事情。但我也會給Gitlab一個去吧! – Rens