Skip to main content

Getting started with @PuppetLabs - Part 3 - Puppet Forge

Puppet Forge is an official PuppetLabs repository of modules written by the community. Modules available in Puppet Forge can be installed from command line.

At the time of writing this post, there are 105 modules that are published by PuppetLabs in Puppet Forge and several other vendors and contributors.

Let us try the Maestrodev/android module. Notice the OS compatibility list in the screenshot.

Step 1: Virtual Machine with Puppet client

Setup a new Nitrous.io VM or a Vagrant box with an OS from the list of OSes supported by the module. I executed this on a nitrous.io Ubuntu box. Android SDK takes up a lot of space. When the module is applied on the Ubuntu box, it will fill up the 5GB free space allocation. You will not be able to do anything more with this VM after installing Android SDK.

Install the Puppet client from command line.

Ubuntu: sudo apt-get install puppet -y

RedHat/CentOs: yum install puppet -y

Step 2: Install the modoule

Run the following command as shown in the Puppet Forge module page.

puppet module install maestrodev/android



By default, it is installed in $HOME/.puppet/modules/android folder in Ubuntu.

Step 3: Apply the module to install Android SDK.

cd $HOME/.puppet/modules
sudo puppet apply --modulepath=. -e "include android"

The module will successfully install Android SDK as long as you do not have any network restrictions (in case you are on a secure network with restrictions in your organization). The messages on the screen will look something like this.



Fun: Execute unit tests

cd $HOME/.puppet/modules/android/tests
sudo puppet apply --modulepath=$HOME/.puppet/modules init.pp

More fun: Explore the module to find other interesting classes. Start with init.pp and see other pp files in the following directory. It is a reasonably well documented module.

cd $HOME/.puppet/modules/android/manifests
ls -ltr




Popular posts from this blog

A @trello board to get kids excited

My 8 year old just started his summer break. He did so well in school and I am proud of him. He skipped second grade, got into the gold honor roll in every quarter and got a medal for doing that. Last night, I promised to install a new app for him on his iPad mini. I installed Trello and created a board for him while he watched. I showed him how to create cards, add labels to them and move them from To Do, to Doing to Done. I had him create some cards and label them. He could not stop creating cards. I could not convince him to go to bed after that. He created cards for everything he wants to do in the summer and he is not done with creating cards. He even created a card to email a screenshot of his Trello board to his teacher. Later last night, he was still awake in bed when I checked on him. He told me that he wanted to add three more labels - Math, Science and One-on-One. He wanted a label titled 'One-on-one' for tasks that he wants to do with me and he wants one-on-one at

Create #VirtualPrivateCloud, NAT Instance and NAT Gateways on @AWSCloud

Create a Virtual Private Cloud, NAT instance and the new NAT Gatweay ... and making it all work. This is a YouTube playlist of three videos.

Cheat sheet to create a #VPC and Subnets on @AWSCloud

One of the critical things to remember for working with a AWS VPC is creating and using it. I had hard time remembering how to do it, so, I wrote down a cheat sheet for myself.  If anyone wants to follow along, just navigate to the VPC page on the AWS Console and start with 'Create VPC' button. Please note that this may cost some dollars if you are not on the free tier. If you are on the free tier and make mistakes, it may cost some dollars. In the steps below, we will be creating the following on a new VPC: An internet gateway One public subnet with routes for accessibility from the internet One private subnet without any routes One EC2 web server with Apache installed in it and serving a sample html page - using the public subnet. One EC2 server with the private subnet and security group that allows access to resources running on the public subnet only.  Create VPC Name tag: myVPC CIDR Block: 10.0.0.0/16 Tenancy: default (Must have default. Otherwise, it