Windows Agent
In this lab we will install the Puppet agent on our Windows VM, and configure the needed definitions on the puppet master.
Puppet agent (Windows)
Start by launching the winadmin VM.
vagrant up winadmin
After this is complete to login we are going to run
vagrant rdp winadmin
What this should do is open up your Microsoft Remote Desktop client and connect to the winadmin VM. However if it does not initiate the connection you can create a new one in the Remote Desktop client with the following information.
PC name or IP: 172.31.0.204:3389
User name: vagrant
Password: vagrant
After logging into the VM we need to add an entry in the hosts file for the puppetmaster
In the bottom menubar to the right of the Windows icon click the search box and type notepad then right click it and choose Run as Administrator

In the new Notepad window open
c:\windows\system32\drivers\etc\hosts
You should see something similar to this:

Now add a hosts entry for puppetmaster
172.31.0.201 puppetmaster.example.lab puppet
Save the file and then in the search box type command and in the new command window run:
ping puppetmaster.example.lab
You should get a reply from puppetmaster

In a browser download the Puppet agent
Run the downloaded file and click next to accept defaults until you get to the Puppet master FQDN, and fill in as below..

Continue clicking Next until you get to Install and then click Yes when asked if the agent should run as administrator.
At this point we need to change the hostname. To do this we are going to open the Control Panel

Click System and Security and then in the new screen under System click Set the name of this computer

Under Computer name, domain and workgroup click Change settings

In the new window click Change

Now click More and fill in the DNS suffix
example.lab

After that is complete click on OK, OK, Apply and finally OK and then click no when asked to reboot VM.
Go back to your workstation terminal and type
vagrant reload winadmin
This will reboot the VM and complete the rename process.
Now that we’ve installed the Puppet agent, and renamed the VM we need to run the following command in PowerShell to generate a certificate request.
Search for PowerShell in the start menu and then right click it and choose Run as Administrator
Run the following in the new PowerShell window to generate a certificate request.
puppet agent --server puppetmaster.example.lab --waitforcert 60 --test
Puppet master configuration
Once this completes log into the puppetmaster and run
sudo puppet cert list
If you see the certificate request for winadmin go ahead and sign it.
After signing our certificate we are going to add a new node definition for winadmin.example.lab to our nodes.pp manifest.
In nodes.pp we want to add a node definition for winadmin underneath our wikitest definition.
We also want to continue using Hiera so we need to add the lookup function to winadmin just like it’s setup for our other nodes.
node 'winadmin.example.lab' {
lookup('classes', Array[String], 'unique').include
}
After updating our nodes.pp we need to add a new Hiera data source for our winadmin VM.
Create a new file /etc/puppetlabs/code/environments/production/data/nodes/winadmin.example.lab.yaml
In this new file we need to add the following
---
classes:
- roles::windows_admin