summaryrefslogblamecommitdiff
path: root/_drafts/provision-vagrant-with-ansible-to-aws.md
blob: c0c42aec115f735dfa5ac1f68f7ad433a8fe86c3 (plain) (tree)






































                                                                                                                                                                              
---
title: Provision a AWS server with Vagrant and Ansible
summary: In which I provision a AWS server using Vagrant and Ansible
layout: post
---

I have a private repository with all my rules for ansible. You'll need a simple playbook with the following content:

```yaml
miranda ~/code/git/shiro λ more vagrant.yml
-
  hosts: all
  sudo: yes
  vars_files:
    - vars/defaults.yml
  roles:
    - common
```

First let's try our setup with a local box: `vagrant box add precise64 http://files.vagrantup.com/precise64.box`.

Now we can create a Vagrantfile:

```ruby
Vagrant.configure("2") do |config|
  config.vm.box = "precise64"
  config.vm.box_url = "http://files.vagrantup.com/precise64.box"

  config.ssh.forward_agent = true

  config.vm.provision "ansible" do |ansible|
    ansible.playbook = ENV['VAGRANT_ANSIBLE_PLAYBOOK']
  end
end
```

If we run `vagrant up`, a box will be started and provisioned. Once it's done, you can run `vagrant ssh` and once logged inside the VM, run `htop`.

Now let's move to the configuration for AWS. `vagrant plugin install vagrant-aws`. Then `vagrant box add dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box`.