Vagrant提供者和Vagrant配置管理器有什么区别?

6
我认为“Provider”和“Provisioner”这两个词听起来非常相似,这可能会导致混淆,尤其是对于初学者来说,他们在文档中经常混用或作为同义词使用(已经在网络上见过)。当初学者看到Docker as ProviderDocker as ProvisionerVagrant´s website上被提到时,更加令人困惑。因此,这个问题实际上涉及三个方面:
  1. 什么是Vagrant Provider?

  2. 什么是Vagrant Provisioner?

  3. Docker在这里的作用是什么?

    • Docker作为Vagrant Provider的典型用例是什么?

    • Docker作为Vagrant Provisioner的典型用例是什么?

我欣赏能够清晰地说明事情的解释、示例和进一步阅读的链接(即使对于新手也是如此)。
2个回答

7
  1. 底层虚拟化解决方案称为提供者。要使用Vagrant,您必须安装至少一个提供程序(例如Virtualbox、VMWare)。

  2. Vagrant中的配置是指在$ vagrant up期间自动安装和配置系统的过程,执行此操作的工具称为配置器(例如Shell脚本、Chef、Puppet)。


我在我的问题中增加了 Docker 方面,所以您可能也想在您的答案中添加一些相关的注释。 - Wlad
可以肯定地说,Vagrant是虚拟化后端/解决方案的统一前端吗? - toraritte

1

Provider与Provisioner

Vagrant使用Providers,如hypervisors(如VirtualBox,Hyper-V)或Docker来创建和运行虚拟环境。 Vagrant使用Provisioners(如Ansible,Puppet,Chef)作为配置工具,以定制这些环境,例如进行安装和启动应用程序。

Docker的作用是什么?

如果使用 hypervisor作为Provider,那么所创建的环境是基于操作系统环境的自包含镜像的虚拟机,由“Vagrantbox”(也称为“box”)提供。 Vagrant利用该box创建了一个专用内核和一组操作系统进程,用于虚拟机。

如果使用 Docker作为Provider,并且主机系统上有Docker可用,则Vagrant直接在主机系统上管理和运行容器。 在这里,Vagrant实际上不是在构建和管理虚拟机,而是使用在主机上运行的Docker引擎来管理和构建Docker容器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接