summaryrefslogtreecommitdiff
path: root/posts/2014-02-01-provision-an-ec2-instance-with-vagrant-and-ansible.org
diff options
context:
space:
mode:
Diffstat (limited to 'posts/2014-02-01-provision-an-ec2-instance-with-vagrant-and-ansible.org')
-rw-r--r--posts/2014-02-01-provision-an-ec2-instance-with-vagrant-and-ansible.org101
1 files changed, 0 insertions, 101 deletions
diff --git a/posts/2014-02-01-provision-an-ec2-instance-with-vagrant-and-ansible.org b/posts/2014-02-01-provision-an-ec2-instance-with-vagrant-and-ansible.org
deleted file mode 100644
index a4ef407..0000000
--- a/posts/2014-02-01-provision-an-ec2-instance-with-vagrant-and-ansible.org
+++ /dev/null
@@ -1,101 +0,0 @@
-I like to use [[http://www.ansible.com/][Ansible]] to manage my personal
-servers. It forces me to make the environment reproducible so I don't
-have to care about a specific box: I can throw them away easily, knowing
-I can get a new one when I need, with the exact same configuration.
-
-I also find Ansible easier to reason about than Chef or Puppet. The fact
-that I have to manage and maintain only a few machines is probably why.
-
-When I develop on my personal projects, I use a lot of VMs, and that's
-where [[http://www.vagrantup.com/][Vagrant]] enters the picture. Being
-able to start a local VM and get a clean environment quickly is
-invaluable to me. It makes it easy to test an application or library in
-different situation, without carrying about local dependencies and
-conflicts created by having multiple versions of the same library
-installed on the system.
-
-But sometimes a local VM is not enough, and you need a more powerful
-server, so now you need an EC2 instance.
-
-My goal with this article is to show how easy you can combine Vagrant
-with Ansible to provision an EC2 instance.
-
-** The basic
-
-I have a private repository with all my rules for Ansible. But for this
-post, all we need is a simple playbook. So let's start by creating a
-directory named /vagrant/, and put inside a configuration file named
-/playbook.yml/, with the following content:
-
-#+BEGIN_HTML
- <script src="https://gist.github.com/franckcuny/fae46135ad0f3581ce6b.js"></script>
-#+END_HTML
-
-What we're describing, is that for all the hosts in our inventory we
-will use =sudo= to install the program =htop= using =apt-get= (yes, I
-assume you're using a debian-based system, but you get the idea).
-
-First, we will try the setup on a local box. If you don't already have a
-Vagrant box installed, you can grab a new one by running
-=vagrant box add precise64 http://files.vagrantup.com/precise64.box=.
-
-Now we can add the configuration file named /Vagrantfile/ with this
-content.
-
-#+BEGIN_HTML
- <script src="https://gist.github.com/franckcuny/aadd788101c08744a22a.js"></script>
-#+END_HTML
-
-This file says that we will use the box named /precise64/, located at
-the given URL, and we want to provision it using Ansible, and the path
-to the playbook.
-
-By running =vagrant up=, a box gets started and provisioned. An
-inventory file is generated for us inside the directory, so ansible will
-know what to do. The output should be similar to this:
-
-#+BEGIN_HTML
- <script src="https://gist.github.com/franckcuny/e3df9a2424e4a4a12f60.js"></script>
-#+END_HTML
-
-As we can see, everything went well, and the application =htop= was
-successfully installed. We can now run =vagrant ssh= and once logged
-inside the VM, run =htop=.
-
-** AWS
-
-I've created a key pair for Vagrant in the AWS console. Note the access
-and secret access keys, and download the SSH private key too. For this
-article, we will put the key into the same directory as our playbook and
-Vagrant's configuration.
-
-We need to install a plugin for that:
-=vagrant plugin install vagrant-aws=. We also need to modify our
-/Vagrantfile/ to use a different box, and also add the configuration for
-AWS.
-
-#+BEGIN_HTML
- <script src="https://gist.github.com/franckcuny/ac8cad84af5f51a923f6.js"></script>
-#+END_HTML
-
-We need to override the user name to /ubuntu/ and specify the path to
-the private key (the one we got from the AWS console when we created our
-new key pair) to log into the instance. The box also needs to be
-overridden.
-
-Running =vagrant up --provider=aws= will provision the box. It will
-takes a few minutes to start the instance and run the provisioning part.
-Wait a few minutes, but if it looks like the system is stuck, you can
-re-run the previous command by exporting =VAGRANT_LOG=debug= in order to
-get more detailed information.
-
-#+BEGIN_QUOTE
- If the provisioning blocks while trying to connect to ssh, it's
- probably because your security group doesn't allow SSH connections.
-#+END_QUOTE
-
-Now =vagrant ssh= will dump you into the VM and you should be able to
-run =htop=.
-
-Don't forget to run =vagrant halt= and =vagrant destroy= once you're
-done!