Configuring chef Part-2

Lets recap what all we have done in the last blog :

1.) Setup workstation and chef-repo.
2.) Registered on chef to use hosted chef as the chef-server.
3.) Bootstrapped a node to be managed by the chef-server.
4.) Downloaded the “apache” cookbook in our chef-repo.
5.) Uploaded the “apache” cookbook to the chef-server.
6.) Added the recipe[apache] in the run-list of the node.
7.) Ran the chef-client on the client to apply the cookbook.

Now lets continue, and try to understand some more concepts around chef and see them in action.
Read More »

Configuring Chef part 1

Below are the first steps in getting started with using chef.
The three main components of chef are :
1.) Work station
This is the developer’s machine will be used to author cookbooks and recipes and upload them to the chef-server using the command line utility called knife.
2.) Chef-Server
This is the main server on which all the cookbooks, roles, policies are uploaded.
3.) Node
This is the instance which would be provisioned by applying the cookbooks uploaded on the chef-server.

So, lets get started:
Read More »

Vagrant – a swiss Army knife for every developer

Whenever we move to a new project, or we want to explore a new stack of technologies; we face the problem of environments. Being a developer we generally have a tendency to install everything on our local environment; which many times proves to be a disaster.

Today, modern web applications involve a lot of moving parts, numerous underlying technologies and a lot of complexity.Read More »

Implement single click deployment using Jenkins and DeployIt

Problem statement : Implement single click deployment using Jenkins and DeployIt
Tools used: Jenkins CI Server, DeplyIt Plugin for Jenkins, Github plugin for jenkins, Maven for building artifact.

Detailed use case :
Lets suppose we have our code in github in a public repository and we want that every fix which goes to “deployment” branch should get propagated to a dev environment automatically.

In order to get this set up working we would need to do:
1.) Configure Jenkins with gitHub and deployIt Plugin.
2.) Configure application placeholder and environment (including infrastructure) in which deployment would take place in DeployIt.
Read More »

Create an Ubuntu VM Using Vagrant and Virtual Box

I have been using Vagrant for some time with virtual box to play around with vms on my ubuntu machine.
Vagrant is a tool to help create and provision VirtualBox machines.Few of the reasons for using it would be:

1.) The development environment can be isolated from all the other junk that accumulates on my primary computer.
2.) The development environment can be tuned to match a production server environment as closely as possible.
3.) Provisioning scripts define the machine configuration in code. This means the configuration is repeatable and versionable.
So, lets play with it.
Read More »

Continuous Integration using Jenkins

Continuous Integration means that whenever a code is checked in it should :
1.)compile
2.)run unit test cases
3.) and create the build artifact.

In a project, many developers work on same files and if you don’t merge them daily or very frequently, chances are that it could become a huge task to merge the changes of each developer at a later stage. Moreover if something breaks it would be a nightmare to find out what went wrong.

By continuously integrating the code and compiling it we make sure that if something breaks it gets highlighted instantly and no new code comes on top of it until it is fixed.
Read More »