Looking for WinRM instructions

39 views
Skip to first unread message

Mosby Simmons

unread,
Nov 5, 2019, 7:06:22 PM11/5/19
to Packer
I'm new to Packer and trying to get a base image up for Win10.

Is there a good resource somewhere on getting WinRM to work in Packer?

I'm running on a Win10 system with virtualbox and I just can't seem to get WinRM to work.  It just sits there waiting to connect.

I have lines:

  "winrm_insecure": true,
  "winrm_use_ntlm": true,
  "winrm_use_ssl": true,
  "communicator": "winrm",
      "winrm_username": "vagrant",
      "winrm_password": "vagrant",

and tried various flavors but no luck.

Also do people usually set winrm information in the autounattend file or as a separate powershell script?  And does it matter?

A little guidance would be very helpful.

TIA.

Jimster

unread,
Nov 6, 2019, 3:59:39 AM11/6/19
to Packer
This works for me building W2016 Servers, YMMV...

Here is my build file:
{
    "builders": [{
        "type":             "amazon-ebs",
        "vpc_id":           "**********",
        "subnet_id":        "**********",
        "region":           "us-east-1",
        "source_ami":       "**********",
        "ami_name":         "My packer-demo-{{timestamp}}",
        "user_data_file":   "./USERDATA2.0.txt",
        "communicator":     "winrm",
        "winrm_username":   "Administrator",
        "instance_type":    "m3.medium",
        "winrm_use_ssl":    true,
        "winrm_insecure":   true
    }],

    "provisioners": [
        {
            "type":         "file",
            "source":       "./packages/something/",
            "destination":  "C:\\temp"
        },        
        {
            "type":         "powershell",
            "script":       "./install_something.ps1"      
        },
        {
            "type":         "powershell",
            "inline": [
                "C:/ProgramData/Amazon/EC2-Windows/Launch/Scripts/InitializeInstance.ps1 -Schedule",
                "C:/ProgramData/Amazon/EC2-Windows/Launch/Scripts/SysprepInstance.ps1 -NoShutdown"
            ]
        }

    ]
}

Then in USERDATA2.0.txt I have:
<powershell>


write-output "Running User Data Script"
write-host "(host) Running User Data Script"


Set-ExecutionPolicy Unrestricted -Scope LocalMachine -Force -ErrorAction Ignore


# Don't set this before Set-ExecutionPolicy as it throws an error
$ErrorActionPreference = "stop"


# Remove HTTP listener
Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse


$Cert = New-SelfSignedCertificate -CertstoreLocation Cert:\LocalMachine\My -DnsName "packer"
New-Item -Path WSMan:\LocalHost\Listener -Transport HTTPS -Address * -CertificateThumbPrint $Cert.Thumbprint -Force


#Create Folder for Package Source Files (AMI Install Version)
Write-Host "Doing Temp File Folder Creation"
New-Item -Path "c:\" -name "temp" -itemType "directory" -force


# WinRM
write-output "Setting up WinRM"
write-host "(host) setting up WinRM"


cmd.exe /c winrm quickconfig -q
cmd.exe /c winrm set "winrm/config" '@{MaxTimeoutms="1800000"}'
cmd.exe /c winrm set "winrm/config/winrs" '@{MaxMemoryPerShellMB="1024"}'
cmd.exe /c winrm set "winrm/config/service" '@{AllowUnencrypted="true"}'
cmd.exe /c winrm set "winrm/config/client" '@{AllowUnencrypted="true"}'
cmd.exe /c winrm set "winrm/config/service/auth" '@{Basic="true"}'
cmd.exe /c winrm set "winrm/config/client/auth" '@{Basic="true"}'
cmd.exe /c winrm set "winrm/config/service/auth" '@{CredSSP="true"}'
cmd.exe /c winrm set "winrm/config/listener?Address=*+Transport=HTTPS" "@{Port=`"5986`";Hostname=`"packer`";CertificateThumbprint=`"$($Cert.Thumbprint)`"}"
cmd.exe /c netsh advfirewall firewall set rule group="remote administration" new enable=yes
cmd.exe /c netsh firewall add portopening TCP 5986 "Port 5986"
Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 2048
cmd.exe /c net stop winrm
cmd.exe /c sc config winrm start= auto
cmd.exe /c net start winrm


</powershell>

Try that setup.

Rickard von Essen

unread,
Nov 6, 2019, 8:38:14 AM11/6/19
to packe...@googlegroups.com
You need to set them in autounattended.xml since a powershell provisioner requires the WinRM connection. 

--
This mailing list is governed under the HashiCorp Community Guidelines - https://www.hashicorp.com/community-guidelines.html. Behavior in violation of those guidelines may result in your removal from this mailing list.
 
GitHub Issues: https://github.com/mitchellh/packer/issues
IRC: #packer-tool on Freenode
---
You received this message because you are subscribed to the Google Groups "Packer" group.
To unsubscribe from this group and stop receiving emails from it, send an email to packer-tool...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/packer-tool/80ee81c7-9482-4ca3-bd8f-65acc0b17484%40googlegroups.com.

dragon788

unread,
Nov 6, 2019, 10:39:14 PM11/6/19
to Packer

Mosby Simmons

unread,
Nov 7, 2019, 6:33:57 PM11/7/19
to Packer
@Jimster - Thanks! I'm not in AWS so just needed to make a few minor changes and it worked!
Reply all
Reply to author
Forward
0 new messages