Also - you are calling your Bootstrap *twice*.
Once in the Builders section (because you have user_data_file set) and then
again in the Provisioners section:
{
"type": "powershell",
"scripts": "{{user `file_source`}}/Bootstrap-winrm.ps1"
},{...
You don't need to do it twice, it will probably interrupt any WinRM chat
you were doing in the user_data_file connection.
On Wednesday, 28 August 2019 07:41:40 UTC+1, Sim wrote:
>
> Hi,
>
> I am currently running into an issue that my Terraform could not connect
> back to the VM it provisioned in order to connect to Chef server (via chef
> provisioner) because it could not establish a connection to the VM. I think
> it might be because the Packer image that I used in Terraform has not been
> enabled for the winrm. I have looked around on the internet, but still
> could not find out a good way to enable winrm in the packer.
> I have tried to call a powershell file in the Packer template. The PS
> script has a bunch of PS commands that enable winrm. But it didnt work when
> I ran Packer build.
>
> What I have tried:
> #bootstrap-winrm.ps1
> # Set administrator password
> net user admin admin12
> wmic useraccount where "name='admin'" set PasswordExpires=FALSE
>
> # First, make sure WinRM can't be connected to
> netsh advfirewall firewall set rule name="Windows Remote Management
> (HTTP-In)" new enable=yes action=block
>
> # Delete any existing WinRM listeners
> winrm delete winrm/config/listener?Address=*+Transport=HTTP 2>$Null
> winrm delete winrm/config/listener?Address=*+Transport=HTTPS 2>$Null
>
> # Create a new WinRM listener and configure
> winrm create winrm/config/listener?Address=*+Transport=HTTP
> winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="0"}'
> winrm set winrm/config '@{MaxTimeoutms="7200000"}'
> winrm set winrm/config/service '@{AllowUnencrypted="true"}'
> winrm set winrm/config/service '@{MaxConcurrentOperationsPerUser="12000"}'
> winrm set winrm/config/service/auth '@{Basic="true"}'
> winrm set winrm/config/client/auth '@{Basic="true"}'
>
> # Configure UAC to allow privilege elevation in remote shells
> $Key = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System'
> $Setting = 'LocalAccountTokenFilterPolicy'
> Set-ItemProperty -Path $Key -Name $Setting -Value 1 -Force
>
> # Configure and restart the WinRM Service; Enable the required firewall
> exception
> Stop-Service -Name WinRM
> Set-Service -Name WinRM -StartupType Automatic
> netsh advfirewall firewall set rule name="Windows Remote Management
> (HTTP-In)" new action=allow localip=any remoteip=any
> Start-Service -Name WinRM
>
>
>
> Packer template
> {
> "variables": {
> "client_id": "",
> "client_secret": "",
> "tenant_id": "",
> "subscription_id": "",
> "object_id": "",
> "managed_image_resource_group_name": "",
> "managed_image_name": "",
> "virtual_network_name": "",
> "virtual_network_subnet_name": "",
> "virtual_network_resource_group_name": "",
> "file_source": "",
> "packer_ado_pat": ""
> },
> "builders": [{
> "type": "azure-arm",
>
> "client_id": "{{user `client_id`}}",
> "client_secret": "{{user `client_secret`}}",
> "tenant_id": "{{user `tenant_id`}}",
> "subscription_id": "{{user `subscription_id`}}",
> "object_id": "{{user `object_id`}}",
>
> "managed_image_resource_group_name": "{{user
> `managed_image_resource_group_name`}}",
> "managed_image_name": "{{user `managed_image_name`}}",
>
> "virtual_network_name": "{{user `virtual_network_name`}}",
>
> "virtual_network_subnet_name": "{{user
> `virtual_network_subnet_name`}}",
> "virtual_network_resource_group_name": "{{user
> `virtual_network_resource_group_name`}}",
>
> "os_type": "Windows",
> "image_publisher": "MicrosoftWindowsServer",
> "image_offer": "WindowsServer",
> "image_sku": "2016-Datacenter",
>
> "user_data_file": "{{user `file_source`}}/Bootstrap-Winrm.ps1",
>
> "communicator": "winrm",
> "winrm_use_ssl": "true",
> "winrm_insecure": "true",
> "winrm_timeout": "5m",
> "winrm_username": "admin",
> "winrm_password": "admin12",
>
>
> "location": "australiasoutheast",
> "vm_size": "Standard_A4m_v2"
> }],
> "provisioners": [
> {
> "type": "powershell",
> "inline": ["mkdir c:\\Packer"]
> },{
> "type": "file",
> "source": "{{user `file_source`}}",
> "destination": "c:\\Packer"
> },{
> "type": "powershell",
> "scripts": "{{user `file_source`}}/Bootstrap-winrm.ps1"
> },{
> "type": "powershell",
> "inline": [
> "Add-WindowsFeature Web-Server",
> "if( Test-Path
> $Env:SystemRoot\\windows\\system32\\Sysprep\\unattend.xml
> ){ rm $Env:SystemRoot\\windows\\system32\\Sysprep\\unattend.xml -Force}",
> "& $Env:SystemRoot\\System32\\Sysprep\\Sysprep.exe /oobe
> /generalize /quiet /quit"
> ]
> }]
> }
>
>
> Could anyone please link me or give me any better suggestions of what
> should I do to achieve this? if winrm seems to be so difficult, would ssh
> another better approach (but again I am not sure how could packer set up
> ssh and generate the key here in the image again, that can be used later in
> the Terraform template).
>
> Thanks.
>
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/packer-tool/0fd99b03-84b0-4af9-9cf8-fb6b33dcae16%40googlegroups.com.