Amazon-Ec2

在使用 Ansible 進行預置時,使用 Vagrant 進行 AWS 資源管理有什麼好處?

  • August 17, 2015

我了解 Vagrant 是一個創建和管理虛擬機的工具;Ansible是一種配置機器(虛擬機或其他方式)的工具

然而,Ansible 的 AWS 模組能夠創建和管理 AWS 資源——結合其動態 AWS 清單,這將產生一個完全可移植的管理工具。雖然該vagrant-aws外掛還可以創建和管理 AWS 資源,但我是否認為它不能如此輕鬆地管理相同的資源,如此便攜(即新的管理主機可以下載Vagrantfile但無法管理現有的 AWS 資源)?

如果是這樣,使用 Vagrant 管理 AWS 資源(如果已經使用 Ansible 進行預置)與使用 Ansible 進行資源管理和預置相比有什麼優勢(如果有)?

我認為您基本上是正確的-如果您只想管理 EC2 實例-儘管 vagrant 可以輕鬆使用 Ansible 的動態庫存系統:http ://docs.vagrantup.com/v2/provisioning/ansible.html :

靜態庫存

第二個選項適用於您希望更好地控制庫存管理的情況。使用ansible.inventory_path option,您可以引用特定的庫存資源(例如靜態庫存文件、動態庫存腳本甚至是儲存在同一目錄中的多個庫存)。Vagrant 然後將使用此庫存資訊而不是生成它。

這個選項可能應該被稱為“現有庫存”或“外部庫存”或其他東西 - 它只是意味著“使用 Vagrant 沒有生成的庫存”。

Vagrant 的真正優勢在於能夠在多個環境中使用相同/相似的 Vagrantfile - 使用完全相同的 Ansible 腳本。因此,用於 dev 的 Virtualbox VM 和用於 stage/prod 的 EC2 具有相同的 Ansible 配置腳本 - 以及相同的 vagrantfile 或兩個非常相似的。

那時,您可以通過對 Vagrantfile 中的提供程序進行簡單更改來切換到 Docker - 甚至可以--provider在命令行上使用。

Vagrant 實現後端提供程序的方式使切換非常簡單。

Vagrant 還提供了一個簡單的內置命令行界面來管理你的盒子——查看狀態、停止、啟動、重啟等:

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

無論後端提供商如何 - Virtualbox,EC2等……以及其他有用的東西的大量外掛,它的工作方式都是一樣的:https ://github.com/mitchellh/vagrant/wiki/Available-Vagrant-Plugins

但是,它並不完美。該vagrant-aws外掛並沒有得到太多的喜愛,如果您有復雜的 AWS 需求,您最好自己滾動一些東西,或者使用腳本 + Ansible,或者單獨使用 Ansible。

引用自:https://serverfault.com/questions/710709