Published on 31 December 2014 by

The goal of the Learning VM is to take you from zero to Puppet in as little time as possible. Our latest overhaul of the Quest Guide content will get you going even faster.

We've stripped down the existing quests and rebuilt them around tasks you might encounter in the wild. This will help you move from your test drive to the open road more quickly, with fewer bumps along the way.

We've also added some some completely new quests to get you started using Puppet modules. With the NTP and MySQL quests, you'll see how high quality existing modules can make common configuration tasks a breeze.

This rebuild of the existing content, along with the new module quests, creates a new overall structure for the Quest Guide. First, you'll learn the essentials of Puppet: things like resources, manifests, and classes. With a little knowledge of these basics under the hood, you'll see how dropping in some pre-existing Puppet modules can help you hit the gas on the process of infrastructure configuration. Finally, you'll roll up your sleeves and get into the nuts and bolts of the Puppet language, learning about the language constructs you'll need to get started building your own Puppet modules.

The Learning VM is now updated to run Puppet Enterprise 3.7.1, the freshest PE release. The console you’ll see with this new VM includes new features such as the Puppet Node Manager and role-based access control. (Read more about these new features in this blog post.)

We’ve also been making some changes to how we manage content, opening up our repositories and issue trackers to the public. We hope you’ll play a role in guiding the Learning VM’s continued evolution.

Once you’ve had a chance to try out the Learning VM, we encourage you to take some time to fill out our feedback survey and let us know what you think. Of course, if you prefer to get in touch directly, we encourage you to contact us by email at [email protected].

Kevin Henner is an instructional designer at Puppet Labs.

Learn more

Share via:

At the Variables quest, in step 5 and 6 one has to re-write the web class to include variables $page_name and $message. I've done all that's required, but when I run the puppet agent -t --noop, the following happens:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Must pass page_name to Class[Web] at /etc/puppetlabs/puppet/environments/production/manifests/site.pp:65 on node learning.puppetlabs.vm

I tried changing the include in site.pp to a class, with parameters, and also tried to add "= 'default'" after the variables in web/tests/site.pp, both don't give the result it should.

How to continue?

Hi Mark,

It sounds like we might need to revisit some bits of the Quest Guide to be a little more clear about the different ways of applying Puppet code.

Anything you want to be applied on a scheduled Puppet run or when you trigger a Puppet run with the puppet agent -t command should be declared in an appropriate node declaration in the /etc/puppetlabs/puppet/environments/production/manifests/site.pp manifest. This is what you used in the NTP and MySQL quests. In a production context, you use this site.pp manifest or the PE console to classify your nodes with classes and configure those classes.

For the Variables and Class Parameters quest, think of what you're doing as module development, rather than node classification for production. In a development context, the easiest way to test your code is with a test manifest. In this case, you should declare your classes in the web/tests/init.pp manifest and apply that manifest with the puppet apply tool.

I believe mixing these up is a likely culprit for your error. You're declaring your classes in a test manifest, but when you run puppet agent, it looks at /etc/puppetlabs/puppet/environments/production/manifests/site.pp and doesn't see your new class declaration.

I hope this gets you going in the right direction!

If you have any further questions, you can get in touch at [email protected]


I tried to use the latest Leaning VM on my iMac running OS X Yosemite 10.10.4 with Virtual Box 5.0.4 but whenever the VM started it would stall on the boot up saying it could not read the scsi disk at address 0:0:0 I tried adjusting the scsi settings but in the end gave up.

I was able to get it to work with Parallels on the Mac and I have written a blog article about how to do that here.…

Looking forward to completing the quests now.


Add new comment

The content of this field is kept private and will not be shown publicly.

Restricted HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.