【问题标题】:Version Control Vagrant and Ansible virtual box config with Rails app?带有 Rails 应用程序的版本控制 Vagrant 和 Ansible 虚拟框配置?
【发布时间】:2015-12-01 03:13:38
【问题描述】:

刚设置了一个新的 Rails 应用程序,我就有了我的 Vagrant 文件和一个文件夹,里面装满了 Ansible 的开发机器配置文件。这些让我可以启动开发虚拟机,对其进行配置,然后让一切快速启动并运行。

我的问题是,所有这些都应该在我的项目版本控制存储库中吗?我将在多台机器上处理这个项目,因此可以访问和同步它会很有用,但另一方面,当我最终将其部署到生产环境时,我不希望这些项目被部署?此外,提交这些文件将保留它们的历史记录,这也很好。

你会推荐什么?

【问题讨论】:

    标签: ruby-on-rails version-control repository vagrant ansible


    【解决方案1】:

    当我设置新项目时,我会创建一个目录结构,如下所示:

    /<application_name>
       ./src
       ./deployment
       ./docs
    

    实际源代码在 src 中,任何特定于部署的脚本(例如 Ansible playbook 目录、Vagrant 文件)在 deployment 中,当然所有文档在 docs 中。

    然后我将所有这些都提交给源代码管理。然后编写部署脚本以从其目录执行,但更改为 src 目录以执行其操作。

    【讨论】:

      【解决方案2】:

      这在很大程度上取决于您的个人喜好。 有些人将所有内容保存在一个独立的仓库中。其他人将应用程序代码与他们的配置/供应/部署代码分开保存。 无论哪种方式都有自己的优点和缺点,只要您保留一些版本控制系统,这样做就没有错。

      【讨论】:

      • 好的,如果我将它添加到我的存储库中,有没有办法只将我的 Rails 应用程序部署到生产服务器?
      • 将剧本和应用程序代码保存在不同的目录中,并仅检查该部分。
      • 我最近一直在思考这个问题。 git 子模块会在这里工作吗?有一个 devbox 的仓库并使用子模块在其中克隆我的应用程序仓库吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 2016-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多