Provisioning Windows Server with VMWare Templates: How i build a user_data File from scratch?

Hello together,

sorry for my bad english, iam not a native speaker.

iam building a deployment infrastructure with Puppet and Foreman for
provisioning Windows Server on a VMWare/VSphere infrastructure. Iam still a
Trainee and nobody who i know, has experience with Linux, Puppet, Foreman

At the moment, i can create a new host based on a vmware template connected
with a user_data file. Honestly, i copy the whole user_data file from
different internet blogs and after many try&error this works fine for
Windows Server 2012 R2. My problem is, that i really not understand how i
can create a user_data file from scratch. I find absolutly no documentation
who explains the concept of the user_data file. If different blogs does not
show me examples of a user_data file for Windows Server 2012 R2, i never
know how i can build a user_data file for Windows. I even wouldnt know a
user_data file exists … For example, i dont know where i can find the
parameters for this file and i do not know how i build this file for
different Systems (Windows Server 2008, 2012/R2, 2016…). Because my file
does not work for Windows Server 2016 anymore.

Can anyone maybe give the right direction what i have to search? (Keywords,
Documentation Sites). Iam really wondering how a user_data File is build.
What is "this language", where the user_data file Parameters came from? So
many Questions :slight_smile:

Thanks for any help


p.s. if sb is interested what i meen with the user_data File for Windows,
below you can see my user_data file for Windows Server 2012 R2.

powershell = '%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe
-ExecutionPolicy Unrestricted -NoLogo -NoProfile'

··· --- identity: Sysprep: guiRunOnce: commandList: - '%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -Command "__Installation_Path_Here__"' guiUnattended: autoLogon: true autoLogonCount: 1 password: plainText: true value: '7$sagadmin' timeZone: 110 identification: domainAdmin: '__OUR_DOMAIN_USER__' domainAdminPassword: plainText: true value: '__OUR_PASSWORD___' joinDomain: '__OUR_DOMAIN__' licenseFilePrintData: autoMode: 'perSeat' userData: computerName: <%= @host.shortname %> fullName: 'IT' orgName: '__OUR_COMPANYNAME__' productId: 'D2N9P-3P6X9-2R39C-7RTCD-MDVJX' nicSettingMap: - adapter: dnsDomain: <%= @host.domain %> dnsServerList: - <%= @host.subnet.dns_primary %> gateway: - <%= @host.subnet.gateway %> ip: <%= @host.ip %> subnetMask: <%= @host.subnet.mask %> globalIPSettings: dnsServerList: - <%= @host.subnet.dns_primary %> dnsSuffixList: - <%= @host.domain %> options: changeSID: true deleteAccounts: false