Skip to main content

Getting started with Puppet - Part 2 - Hello World

This is the second post in the series for getting started with Puppet. We are going to run a really simple Puppet module that is hosted on GitHub.

Tools needed:
Git client (of course)
VM or Nitrous.io or anything similar
Puppet client installed (discussed in Part 1)

Step 1: Download the Hello World module

git clone https://github.com/adityai/puppetStarter.git

Step 2: Run the Puppet hello world sample

cd puppetStarter
sudo puppet apply --modulepath . helloWorld/site.pp

This is how we apply a puppet module from the command line directly on the target machine or on your development workstation.

The output will have some information about verifying or compiling along with a message 'Hello World!"

➜  puppetStarter git:(master) sudo puppet apply --modulepath . helloworld/manifests/site.pp
Notice: Compiled catalog for ruby-on-rails-139787.us-west-2.compute.internal in environment production in 0.05 seconds
Notice: Hello World
Notice: /Stage[main]/Helloworld/Notify[Hello World]/message: defined 'message' as 'Hello World'
Notice: Finished catalog run in 0.04 seconds



➜  puppetStarter git:(master) sudo puppet apply --modulepath . helloworld/manifests/site.pp
Notice: Compiled catalog for ruby-on-rails-139787.us-west-2.compute.internal in environment production in 0.05 seconds
Notice: Hello World
Notice: /Stage[main]/Helloworld/Notify[Hello World]/message: defined 'message' as 'Hello World'
Notice: Finished catalog run in 0.04 seconds
➜  puppetStarter git:(master) sudo puppet apply --modulepath . helloworld/manifests/site.pp
Notice: Compiled catalog for ruby-on-rails-139787.us-west-2.compute.internal in environment production in 0.05 seconds
Notice: Hello World
Notice: /Stage[main]/Helloworld/Notify[Hello World]/message: defined 'message' as 'Hello World'
Notice: Finished catalog run in 0.04 seconds
Step 3: Take a look around. 
Observe the folder structure. The module folder is helloWorld. There are other default folders besides manifests inside the module that will be required for advanced topics. Try to understand the code in the init.pp, motd.pp and site.pp. We will dig into it in Part 3 and try to do something more fun.

Popular posts from this blog

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.

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

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