从 repo 和 Ansible 部署代码的最佳方式是什么?

What is the best way to deploy code from a repo and Ansible?

对于我们的电子商务网站,我使用以下 Ansible 部署过程:

但我不确定这是部署代码的最佳方式,因为我们可以在远程中拥有所有存储库,其中包含不需要的文件。

所以我想知道是否更好:

你怎么看?有没有办法用 Ansible 做到这一点?

谢谢。

在不知道部署环境的所有复杂性的情况下是否可以 "best" 回答是一个棘手的问题。话虽这么说,我会根据你所说的考虑几件事:

为什么部署整个 repo 是个问题?

您是否正在存储不以任何方式与您的代码交互的大型二进制文件?您可能需要考虑将它们拆分到另一个存储库中,或者以不同的方式管理它们(例如,大型磁盘映像可以由构建系统提供服务,而不是保存在 git 中)。包含这些其他组件的子模块也可能是一种有用的方法,因为如果需要,可以在不拉入子模块的情况下克隆存储库。

或者 git 存储库的大量历史导致克隆很大?在那种情况下,你可以做一个浅克隆,Ansible 的 git 模块支持。

存档和复制

这听起来像是一个比实际需要更复杂的解决方案。

据推测,这将涉及在 Ansible 存储库中保留要删除的文件列表(增加 Ansible 代码和目标部署存储库的耦合),将本地克隆协调到临时文件中,删除文件,进行存档,进行远程传输,进行远程解压。

这与简单地调用 Ansible git 子模块形成对比。

我讨厌在不需要的地方增加更多的复杂性。我的目标是最简单的方法。