Qual o benefício de usar o Vagrant para gerenciamento de recursos da AWS ao usar o Ansible para provisionamento?

3

Eu entendo que o Vagrant é uma ferramenta para criar e gerenciar máquinas virtuais; e que o Ansible é uma ferramenta para configurar as máquinas (virtuais ou não).

No entanto, os módulos AWS da Ansible são capazes de criar e gerenciar recursos da AWS - combinados com seu inventário dinâmico da AWS, isso produziria uma ferramenta de gerenciamento totalmente portátil. Embora o plug-in vagrant-aws também possa criar e gerenciar recursos da AWS, estou certo em pensar que ele não pode gerenciar tão facilmente mesmos recursos tão portáveis (ou seja, um novo host de gerenciamento poderia baixar o Vagrantfile , mas não seria capaz de gerenciar recursos existentes da AWS)?

Em caso afirmativo, quais são as vantagens de usar o Vagrant para gerenciar recursos da AWS (se já estiver usando Ansible para provisionamento), versus usar Ansible para gerenciamento de recursos e provisionamento?

    
por eggyal 04.08.2015 / 12:42

1 resposta

4

Você acha que a maioria das vezes está correta - se você quiser gerenciar instâncias do EC2 - embora o vagrant possa facilmente usar o sistema de inventário dinâmico da Ansible: link :

Static Inventory

The second option is for situations where you'd like to have more control over the inventory management. With the ansible.inventory_path option, you can reference a specific inventory resource (e.g. a static inventory file, a dynamic inventory script or even multiple inventories stored in the same directory). Vagrant will then use this inventory information instead of generating it.

Esta opção provavelmente deve ser chamada de 'inventário existente' ou 'estoque externo' ou algo assim - significa apenas 'usar um inventário que o Vagrant não gerou'.

A vantagem real do Vagrant é poder usar o mesmo / similar Vagrantfiles para múltiplos ambientes - com exatamente os mesmos scripts Ansible. Portanto VMs do Virtualbox para dev e EC2 para stage / prod com os mesmos scripts de provisionamento Ansible - e o mesmo arquivo vagrant, ou dois muito similares.

Nesse ponto, você pode alternar para o Docker com uma simples alteração no provedor no Vagrantfile - ou até mesmo usando --provider na linha de comando.

A forma como o Vagrant implementa provedores de back-end torna a troca bastante simples.

O Vagrant também oferece uma interface de linha de comando simples para gerenciar suas caixas - ver status, parar, iniciar, reinicializar, etc:

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

que funciona da mesma forma, independentemente do provedor de back-end - Virtualbox, EC2, etc ..., bem como uma carga de plugins para outras coisas úteis: link

Mas não é perfeito. O plugin vagrant-aws não é muito amoroso e se você tem necessidades complexas da AWS, você pode estar melhor rolando algo, seja com scripts + Ansible, ou Ansible por conta própria.

    
por 04.08.2015 / 19:04