如何将源代码发送到vagrant虚拟机?

如何将源代码发送到vagrant虚拟机?

我正在寻找一种方法来使用我的 chef 配方启动虚拟机来部署我的应用程序。使用 git 存储库可以很好地进行部署,但问题是每次我想在 chef 管理的环境中测试代码时,我都必须推送代码。

因此,我创建了一个从我的项目到我的食谱的 /files/default/ 文件夹的符号链接,并将此文件夹用作我的项目的目录(而不是 git 存储库)。问题是,有大约 40,000 个文件,命令kitchen converge需要很长时间。

有没有更好的方法?目标是处理我的代码,然后尽快将其部署到虚拟机上以查看结果。

答案1

我假设你正在使用 kitchen 的 vagrant driver?如果是,那么使用它的同步文件夹该功能通过synced_folder 厨房配置像这样:

platforms:
  - name: default
    driver:
      box: bento/centos-7.2
      customize:
        memory: 8192
      synced_folders:
        - ["path/to/code/on/host", "/host-code"]

这应该使 /host-code 实时可供您的客户机使用。绝对避免在您的食谱中存储大文件 - 它会使各种事情陷入困境。我们一直对同步文件夹使用这种方法。您可以在主机上编译/构建应用程序以及编辑其他周边内容,并使用厨房文件中指定的 chef 节点属性来覆盖食谱行为,以从与主机同步的客户机上的本地路径加载。

希望有帮助

答案2

部署可以通过 git 存储库顺利完成,但问题是每次我想在我的 chef 管理环境中测试代码时都必须推送我的代码。

在我看来,这是一个功能,而不是一个错误。从提交部署可确保工作副本中不会遗留任何内容。如果您无法更改当前分支,请创建一个新分支。

或者,考虑构建和部署包管理档案。安装档案相当快,您将获得几乎可供用户安装的可交付成果。

尽管如此,您可能无法达到 git 同步数万个文件的速度,而它在这方面非常擅长。

相关内容