Instructor: Throughout this course,
I will be using a locally installed virtual machine
to show you how to use Puppet.
Since Puppet is most often used in Linux environments,
we'll be running it on Linux in this course.
To get the most out of this course,
I recommend that you install a Linux virtual machine
on your own computer as well
and perform the same steps that you see in the videos.
It's not a requirement, but I definitely recommend it.
There are numerous benefits to using a VM
when you're learning Puppet.
First, if you don't have a spare Linux machine
kicking around, then you won't have to turn your desktop
into a duel boot system.
Second, you won't have to worry about accidentally
wreaking havoc on your own system because you will only
be running system inside the virtual machine.
Third, if you're about to try something that might be
hard to undo, then you can take a snapshot of your VM
and revert back to that snapshot if you need to.
And finally, if you need to test Puppet on multiple systems,
then you can just create one or more additional VMs.
First, we need to install VirtualBox,
which is a free virtualization platform
that runs on Windows, MacOS, and Linux.
I'm going to install it on my Mac,
but the process is similar on Windows.
If you're running Linux, then the installation procedure
is much more complicated, so you should follow
the installation steps on the VirtualBox website.
Go to VirtualBox.org and download the latest version.
I don't think they could have made
the download button any bigger.
Now click on the link for your desktop's operating system.
When the file is finished downloading, click on it.
Just has to verify it first.
All right, that opens a window.
Double-click on the installer file.
All right, it's just verifying it.
Click continue, click continue,
and you can change the install location if you want,
but we'll just go with the default, click install,
put in my password.
All right, and that's it.
Just click close.
We'll move the installer to the trash.
On a Mac, the VirtualBox icon will be
in the applications folder in the finder.
On Windows, it will be on your desktop.
Let's just close this window.
Now that we have VirtualBox installed,
we could install Linux on the VM from scratch,
but a much easier way is to use Vagrant.
So go to vagrantup.com.
And click download.
Now choose your operating system.
When the file is done downloading,
click on it and start the installer.
Now double-click the installer icon.
Click continue.
Again, you can change the installation location,
but we're going to use the default, so just click install.
Put in my password.
And that's it, click close.
Move the installer to the trash.
And we'll close this window.
Now to create a VM running Ubuntu 14.04,
which is an easy version of Linux to use,
you can just go to a command line.
And type vagrant init
ubuntu slash trusty64.
We just need to make one small change.
Edit vagrant file, which will be in the directory
where you ran the vagrant init command.
Scroll down until you see the line that says
vb.memory equals 1024.
There it is.
Remove the pound sign so this is no longer a comment.
We're doing this because the default memory size
is 512 megabytes, but we need at least one gigabyte
to run Puppet server.
You also need to uncomment the config.vm.provider
virtualbox line above it.
And the end line below it.
All right, so just save the file.
And exit.
And now type vagrant up.
It will take a little while to download the OS,
get it installed, and boot the VM,
but it was fairly painless to get it running, wasn't it?
I'm just going to skip ahead so you don't
have to watch it download.
Now for the slightly more difficult part, installing Puppet.
First, let's access the VM using SSH
so we don't have to use the VM console in VirtualBox.
On a Mac or on Linux, you can just
do this from the command line.
On Windows, it's probably easiest to use Putty.
Note that the VM has the SSH port forwarded to 2222,
so you need to connect using SSH
minus P 2222
vagrant@localhost.
All right, since this is the first time connecting
to this VM, it's going to ask us a security question,
so just say yes to this.
All right, now it's asking for vagrant's password,
which is also vagrant.
And we're in.
Now on a production system, you would likely log in
as a regular user and then use the pseudo command
whenever you need to run a super user level command,
but since we're just running this on a local desktop,
I'm going to switch user to root.
The password is vagrant for the root user as well.
Since Ubuntu doesn't know where to get Puppet packages from,
we need to get the Puppet package
that will tell it where to look.
First, use wget to grab the package.
Wget https://apt.puppetlabs.com/
puppetlabs-release-pc1-trusty.deb.
Okay, then install the package with the d package command.
That's dpkg minus i puppetlabs.
Now here you can just hit the tab key
and it will fill in the rest for you.
This just updated our list of repositories.
So now we need to do an apt get update
to add the puppet packages to its list
of available packages.
This will take about 30 seconds, so I'll just skip ahead.
Now we can install Puppet server.
Do an apt get install, puppetserver.
And just hit enter.
This will take a couple of minutes so I'll skip ahead again.
By the way, this command installs the latest version
of the Puppet server, so you will likely be installing
a later version than the one I'm installing in this video,
and that means there's a good chance
that you will get slightly difference output
during some of the exercises in this course
than what I show on my videos.
The differences shouldn't be significant though.
There are a couple more things we need to do
before we start the server.
First, we need to change its memory settings
because we're running Puppet server on a small VM
instead of a production system.
So edit etc default
puppetserver
using the editor of your choice, such as VI, Nano, or Emacs.
Although if you want to use Emacs, you'll have to install it
because it's not included in Ubuntu.
I'm going to use VI which actually runs Vim,
a nicer version of VI.
If you're not familiar with VI,
it can take a while to get used to it,
but it does have the advantage that it understands code.
So for example, it puts comments and strings
in difference colors as you can see here.
If you would prefer an editor that's easier to use,
then try Nano.
Now, go to the JAVA_ARGS line.
In the two places where it says 2g, that is two gig,
change it to 512m, that is 512 meg.
Okay, now save the file.
Next, we need to give the system a host name alias
of Puppet because that's the default server name
that the Puppet agent looks for
when it tries to connect to the Puppet server.
We also need to set its full host name to the puppet.test.vm
so that it has a fully qualified domain name.
So edit etc hosts
and add puppet.test.vm.
And puppet just before localhost.
Save the file.
Now edit etc host name.
And we're just going to replace this entirely
with puppet.test.vm.
Now we're on host name puppet.test.vm so we don't
have to reboot to make the host name change take effect.
Now we can start Puppet server.
We'll use the restart option because it's more likely
to let us know if there's a problem.
It will take a minute or so for the Puppet server to start,
so I'm just going to skip ahead
and also clear the terminal window.
Even though the Puppet server is running now,
we need to do one more thing before we can run
our first Puppet command.
We need to get Puppet into our path.
When we installed the Puppet server,
it updated the default path for us,
but our current shell is still using the old path.
There are a few ways to get the new path,
but one of the easiest is to just exit the shell
and start the shell again so it will pick up the new path.
Hit Control + D or type exit,
and then type su dash again.
Just to make sure that Puppet is in our path now,
let's type which puppet.
Great, it knows where it is.
Now for our first Puppet command, we're going to make sure
that the Puppet server is always running.
Here's the command to do that.
Puppet resource
service puppetserver
ensure equals running
enable equals true.
You'll learn more about the difference parts of this command
later on in the course.
All right, it might not be easy to tell,
but this is actually showing that the command succeeded.
And finally, we need to enter one more Puppet command.
Although we want to make sure that the Puppet server
is always running, we need to make sure
that the Puppet agent isn't running.
That's because we'll be running it manually
to test our code, so we don't want the Puppet agent
to run on its own and potentially
interfere with our manual test runs.
Hit the up arrow to bring back the last command
and modify instead of typing it all again.
Change puppetserver to puppet,
which is the name of the Puppet agent service.
Change running to stopped.
And change true to false.
That ensured that the Puppet agent is stopped
and it disabled it so it won't run when you reboot the VM.
Okay, our test environment is all ready to go,
so let's get started.