使用Ansible进行configuration时,使用Vagrant进行AWS资源pipe理有什么好处?

据我所知,Vagrant是一个创build和pipe理虚拟机的工具。 而Ansible是configuration一台机器的工具(虚拟或其他)。

但是, Ansible的AWS模块能够创build和pipe理AWS资源,并结合其dynamicAWS清单,这将产生一个彻底的便携式pipe理工具。 虽然vagrant-aws插件也可以创build和pipe理AWS资源,但我认为它不能如此轻松地pipe理相同的资源(即,新的pipe理主机可以下载Vagrantfile但无法pipe理现有的AWS资源)?

如果是这样,那么使用Vagrant来pipe理AWS资源(如果已经在使用Ansible进行configuration),与使用Ansible进行资源pipe理和configuration有什么优势?

我认为你大部分是正确的 – 如果你只想pipe理EC2实例 – 尽pipestream浪者可以很容易地使用Ansible的dynamic库存系统: http ://docs.vagrantup.com/v2/provisioning/ansible.html:

静态库存

第二种select是您希望更好地控制库存pipe理的情况。 使用ansible.inventory_path option ,您可以引用特定的库存资源(例如,静态库存文件,dynamic库存脚本或存储在同一目录中的多个库存)。 然后,stream浪者将使用这个库存信息,而不是生成它。

这个选项可能应该被称为“现有库存”或“外部库存”或什么的 – 它只是意味着“使用stream浪者没有产生的库存”。

Vagrant的真正优势是能够在多个环境中使用相同/相似的Vagrantfiles – 具有完全相同的Ansible脚本。 所以Virtualbox虚拟机的dev和EC2 for stage / prod与Ansibleconfiguration脚本相同 – 也可以是相同的vagrantfile,也可以是两个非常相似的文件。

此时,您可以通过对Vagrantfile中的提供程序进行简单更改来切换到Docker – 甚至可以在命令行上使用--provider

Vagrant实现后端提供程序的方式使得切换非常简单。

Vagrant还提供了一个简单的内置命令行界面来pipe理您的盒子 – 查看状态,停止,启动,重新启动等:

 vagrant status vagrant up <machine> vagrant destroy -f <machine> 

不pipe后端提供者 – Virtualbox,EC2等等,以及一些其他有用的插件的加载: https : //github.com/mitchellh/vagrant/wiki/Available-Vagrant-Plugins

但是,这并不完美。 vagrant-aws插件没有得到很多的爱,如果你有复杂的AWS需求,你可能会更好地自己动手,无论是脚本+ Ansible或Ansible自己。