2017-05-03 112 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