vagrant - 如何从本地VirtualBox/Vagrant开发环境完成生产部署?

标签 vagrant virtualbox chef-infra puppet continuous-deployment

最近,我开始阅读有关使用虚拟化软件构建开发环境的信息(我是初学者),似乎“基础架构即代码”是一个非常强大的概念。

我真的很喜欢here描述的工作流程结构:

  • 团队
  • 使用相同的基本VirtualBox镜像
  • 的帮助下,Vagrant可用于快速“构建”和“提供”此类图像至所需的配置
  • Chef(或Puppet)食谱,这是需要置于版本控制之下的唯一代码。

  • 但是,我仍然不太了解如何在生产服务器上传输和部署代码。

    据我了解,使DEV和PROD环境保持一致的常见方法是将生产服务器实例管理为仅由Chef提供的另一个虚拟镜像。我可以和我(和团队)每天在VirtualBox-Vagrant-Chef上使用的生产服务器上安装的操作系统完全相同。

    但是生产服务器可以具有与虚拟客户机OS中不同的硬件,这可能会再次导致不一致。

    所以,这是一个问题:

    从使用VirtualBox-Vagrant-Chef工具链管理的开发环境中将代码传输和部署到生产服务器的已知和常见最佳实践是什么?这种做法是否允许任何连续部署?

    [编辑]:注意:是否有在生产服务器上运行由Chef / Vagrant配备的相同VM实例的实践,如diagram所示?

    最佳答案

    我是您链接的文章的作者,所以我的0.02

    如果我正确理解了您的问题,那么您就不会将虚拟机从dev迁移到生产环境,而是创建一个可重复的过程,该过程允许您一遍又一遍地创建相同的最终状态(OS + config + app),无论目的地在哪里是。

    通过使用 Vagrant ,您可以确保开发人员使用与生产服务器使用的操作系统相同的操作系统,无论他们使用哪种操作系统进行开发。

    使用Puppet / Chef,您可以确保无论操作系统在带有Vagrant的vm,生产中的vm,云vm还是裸机硬件中运行,其配置都相同。它不需要是虚拟的。

    关于vagrant - 如何从本地VirtualBox/Vagrant开发环境完成生产部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24183977/

    相关文章:

    laravel - Vagrant 卡在 "default: Warning: Connection timeout. Retrying..."

    mysql - laravel php artisan 迁移问题

    linux - 无法与 Chef 一起设置 GOPATH

    templates - 相当于Glu中的Chef模板

    android - genymotion player.exe 停止工作

    ruby - Chef solo 不在redhat linux中运行

    sql - 如何将 SQL 转储导入到 Ubuntu Vagrant 实例上运行的 Postgres DB

    vagrant - 使用 Vagrant 和 Ansible 在本地主机上运行任务

    android - 我需要从模拟器连接到本地站点,而不是本地主机

    python - Ubuntu18.04(Virtualbox) 上滑动背景的问题