OpsFirst: turning ops into a first-class citizen in your development process

We finally have the tools and the processing power to create real isolated environments that can be used seamlessly as day-to-day development envs. Nevertheless, some people still prefer to stick with older methods, for various reasons. Usually, the excuse is that it’s a lot of work – having to setup and automate an environment (a VM for instance) just to start developing the application, without even knowing for sure what kind of dependencies the app will need in the nearby future – and nobody has time for that. If you think that way, this post is for you. In the last 10 years,…
View Post

Using Phansible to provision a remote PHP server

Phansible is an open source project that provides an easy web interface to create Ansible provisionings for PHP based projects. Although the project is more focused on development environments with Vagrant, it’s quite easy to configure the downloaded bundle for provisioning any remote servers that you control. All it takes, besides making sure you have a proper SSH connection to those servers, is that you create a new inventory file to include the servers you want to control. Phansible is an open source project that provides an easy web interface to create Ansible provisionings for PHP based projects. Although the project is…
View Post

Configuring SSH server access for Ansible

This post is a practical guide on how to configure your SSH server access to use Ansible in the simplest and most efficient way. This practical guide will show how to setup SSH keys for a server/VPS so you can use Ansible from your local machine in a very straightforward way. This is what we want to achieve, in order to make things simple and efficient – no need for extra parameters when running Ansible: Make sure you have a SSH keypair for the current user* Make sure you have a user in the server, with the same username as your current user…
View Post

What’s new on Vagrant 1.5

Vagrant 1.5 was released in March, bringing great new features and a lot of improvements. This post gives you a quick overview on what’s new, including a video where I talk about the Vagrant Cloud and Vagrant Share, the two most anticipated new features on 1.5. Vagrant 1.5 was released in March, bringing great new features and a lot of improvements. This post gives you a quick overview on what’s new. Vagrant Cloud and Vagrant Share The first and most important new feature on Vagrant 1.5 is the Vagrant Cloud. Now, we have a central and official place to share and discover…
View Post

Vagrant Usage Research

From 11 to 14 of January, 720 Vagrant users from different sources (Twitter, IRC and the official Vagrant mailing list) answered a quick form I created to find out how people are using Vagrant. I’m currently in the process of writing a LeanPub book about this tool, and I was really curious especially about the provisioners usage. First of all, THANKS everybody for the amazing participation – I never got so many retweets before! A special thanks to Mitchell Hashimoto (Vagrant creator) for tweeting about the research, that was of great help. ~AND NOW~ [dramatic pause] I’m glad to present you the…
View Post

Optimizing Symfony applications on Vagrant boxes

Vagrant is an amazing tool for building development environments, and if you are not very familiar with it yet, I suggest you read my last 3 posts, which will guide you well into the Vagrant world. A few months after I started playing around with Vagrant and Puppet, with smaller applications, I had the task to create a box for a Symfony app for the first time. I thought “all right, no problema! this will be a piece of cake, I already know the process, I just need to put it on puppet”. And of course I was wrong. The…
View Post

A beginners guide to Vagrant and Puppet, part 3 – facts, conditionals and modules

Finishing this guide to Vagrant and Puppet, I would like to show some advanced Puppet resources. As I said before, Puppet is really powerful and extensive – I’m covering just the main concepts so you can have a good starting point for creating your Vagrant boxes. If you didn’t see the previous 2 posts, I strongly recommend you to read them. Here they are: Part 1 (Vagrant basics) and Part 2 (provisioning and Puppet) . Facts In the previous part of this guide, we saw a simple example of a Puppet class to install Apache. We saw that we can…
View Post

A beginners guide to Vagrant, part 2 – Provisioning and Puppet

In the first part of this begginer’s guide to Vagrant, we found out how to install Vagrant and get a really basic Ubuntu box up and running. But we need something more: we need to properly set up our development environment, in a fully automated way. It’s time to use provisioners to help us with these tasks. For a better understanding of how provisioners work, lets start using a very basic shell script as a provisioner. Provisioning with Shell The shell provisioner allows you to execute a shell script inside the vagrant box, as root. Lets use this really simple…
View Post

A beginners guide to Vagrant – getting your portable development environment, part 1

If you never heard about Vagrant, this is the right moment to get acquainted to it. Vagrant is getting very popular amongst open source projects, because it provides a portable and reproducible development environment using virtual machines. You will never be hostage of the “works on my machine” statement again; the environment is exactly the same for all the developers, regardless of the operational system running as the host machine (although everything can get messy with Windows). First of all, how it works? If a repository is “vagrant-ready”, you will just run a vagrant up in the repository root (after cloning it),…
View Post