Adding this line before the packer build line works:
- export POWERSHELL_VERSION=""
- ./packer build win2019.json
On Wednesday, September 30, 2020 at 2:27:09 PM UTC-4 i255d wrote:
> I wonder if I can install Powershell core on the servers before I try and
> do this, and if that would help.
> Does packer suport PWSH for Powershell Core?
>
> Also on my build speck I am going to try
> export POWERSHELL_VERSION=None to my build spec file, or
> aws configure set POWERSHELL_VERSION None
> if that doesn’t work.
>
>
> I have a $PSversiontable in the powershell provisioner that shows it is
> PowerShell version 5.1, when I switch the OS from 2019 to 2016, and the
> when the Ansible part runs is says this: amazon-ebs: <10.184.21.18>
> WINRM EXEC 'PowerShell' ['-Version', '6.2.6', '-NoProfile',
> '-NonInteractive', '-ExecutionPolicy', 'Unrestricted', '-EncodedCommand',
> I am pretty sure the version 6.2.6 is the issue.
>
> Here is someone who worked around this issue on reddit:
>
>
> https://www.reddit.com/r/devops/comments/bdr9l3/packer_ansible_and_the_dreaded_winrm_in_aws/
>
> captnron76
> 1 year ago
> Hiyas...
> for posterity in case anyone else comes across this thread:
> The problem seems to be that CodeBuild sets an environment variable
> POWERSHELL_VERSION (amongst several other *_VERSION variables), in my case
> it was 6.1.3.
> Ansible's powershell.py unfortunately uses the same environment variable
> to enable PowerShell executed over WinRM with a specific version of
> PowerShell.
> The fix for me at least was to unset POWERSHELL_VERSION before invoking
> packer, although doing that as a CodeBuild step didn't seem to work (I
> didn't spend long on it). Our call to packer is wrapped in a shell script
> anyway, so I did it there with success.
> HTH,
>
> I think the powershell.py above is this script below.
>
> https://github.com/ansible/ansible/blob/8f02819db02459ed144e131db3808dee0a7356db/lib/ansible/plugins/shell/powershell.py#L35-L37
> ,
>
> Here is the part that shows where the POWERSHELL_VERSION is passed by code
> build to ansible.
>
> _common_args = ['PowerShell', '-NoProfile', '-NonInteractive',
> '-ExecutionPolicy', 'Unrestricted']
>
> # Primarily for testing, allow explicitly specifying PowerShell version via
> # an environment variable.
> _powershell_version = os.environ.get('POWERSHELL_VERSION', None)
> if _powershell_version:
> _common_args = ['PowerShell', '-Version', _powershell_version] +
> _common_args[1:]
>
>
>
> On Monday, September 28, 2020 at 3:35:58 PM UTC-4 i255d wrote:
>
>> I feel lIke we are so close. I think this has to do with SSL???
>>
>>
>> ==> amazon-ebs: Provisioning with Ansible...
>> amazon-ebs: Not using Proxy adapter for Ansible run:
>> amazon-ebs: Using WinRM Password from Packer communicator...
>> ==> amazon-ebs: Executing Ansible: ansible-playbook -e
>> packer_build_name="amazon-ebs" -e packer_builder_type=amazon-ebs -e
>> ansible_winrm_server_cert_validation=ignore ansible_password=*****
>> ansible_connection=winrm ansible_winrm_transport=basic -e
>> ansible_password=***** -i /tmp/packer-provisioner-ansible765667905
>> /codebuild/output/src538734588/src/
>> git.nylcloud.com/Cloud-Team/packer-aws-nyl-win2016/playbook.yml
>> amazon-ebs:
>> amazon-ebs: PLAY [all]
>> *********************************************************************
>> amazon-ebs:
>> amazon-ebs: TASK [Gathering Facts]
>> *********************************************************
>> amazon-ebs: [WARNING]: ERROR DURING WINRM SEND INPUT - attempting to
>> recover: WinRMError
>> amazon-ebs: The pipe is being closed. (extended fault data:
>> {'transport_message': 'Bad
>> amazon-ebs: HTTP response returned from server. Code 500',
>> 'http_status_code': 500,
>> amazon-ebs: 'wsmanfault_code': '232', 'fault_code': 's:Receiver',
>> 'fault_subcode':
>> amazon-ebs: 'w:InternalError'})
>> amazon-ebs: fatal: [default]: FAILED! => {"msg": "winrm send_input
>> failed; \nstdout: \nstderr C\u0000a\u0000n\u0000n\u0000o\u0000t\u0000
>> \u0000s\u0000t\u0000a\u0000r\u0000t\u0000
>> \u0000W\u0000i\u0000n\u0000d\u0000o\u0000w\u0000s\u0000
>> \u0000P\u0000o\u0000w\u0000e\u0000r\u0000S\u0000h\u0000e\u0000l\u0000l\u0000
>> \u0000v\u0000e\u0000r\u0000s\u0000i\u0000o\u0000n\u0000
>> \u00006\u0000.\u00002\u0000.\u00006\u0000
>> \u0000b\u0000e\u0000c\u0000a\u0000u\u0000s\u0000e\u0000
>> \u0000i\u0000t\u0000 \u0000i\u0000s\u0000 \u0000n\u0000o\u0000t\u0000
>> \u0000i\u0000n\u0000s\u0000t\u0000a\u0000l\u0000l\u0000e\u0000d\u0000.\u0000\r\u0000\n\u0000"}
>> amazon-ebs:
>> amazon-ebs: PLAY RECAP
>> *********************************************************************
>> amazon-ebs: default : ok=0 changed=0
>> unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
>>
>>
>> On Monday, September 28, 2020 at 2:45:08 PM UTC-4 i255d wrote:
>>
>>>
>>> I seem to have made it past the above problem by added winrm_password to
>>> the build.
>>>
>>> This is back to where I have been stuck all along now, waiting for
>>> winrm???
>>>
>>> ==> amazon-ebs: Force Deregister flag found, skipping prevalidating AMI
>>> Name
>>> amazon-ebs: Found Image ID: ami-0eb7fbcc77e5e6ec6
>>> ==> amazon-ebs: Creating temporary keypair:
>>> packer_5f722e4c-5acb-dd97-e2bc-3d2748cc83df
>>> ==> amazon-ebs: Creating temporary security group for this instance:
>>> packer_5f722e4e-875f-3fe7-a2f0-104cb20e0fbf
>>> ==> amazon-ebs: Authorizing access to port 5986 from [0.0.0.0/0] in the
>>> temporary security groups...
>>> ==> amazon-ebs: Launching a source AWS instance...
>>> ==> amazon-ebs: Adding tags to source instance
>>> amazon-ebs: Adding tag: "Name": "Packer Builder"
>>> amazon-ebs: Instance ID: i-07fd947bd9857679f
>>> ==> amazon-ebs: Waiting for instance (i-07fd947bd9857679f) to become
>>> ready...
>>> ==> amazon-ebs: Skipping waiting for password since WinRM password set...
>>> ==> amazon-ebs: Using winrm communicator to connect: 10.184.21.17
>>> ==> amazon-ebs: Waiting for WinRM to become available...
>>>
>>> On Monday, September 28, 2020 at 2:12:06 PM UTC-4 i255d wrote:
>>>
>>>>
>>>> <powershell>
>>>> # Set administrator password
>>>> net user Administrator SOMETHINGGOOD
>>>> wmic useraccount where "name='Administrator'" 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/service/auth '@{Certificate="true"}'
>>>> winrm set winrm/config/client/auth '@{Basic="true"}'
>>>> winrm set winrm/config/client/auth '@{Certificate="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
>>>> </powershell>
>>>>
>>>> Here is my user_data.txt file from the line
>>>> "user_data_file": "scripts/user_data.txt.
>>>>
>>>> As you can see, I want to be able to use a predetermined password.
>>>>
>>>>
>>>> ==> amazon-ebs: Force Deregister flag found, skipping prevalidating AMI
>>>> Name
>>>> 171
>>>> amazon-ebs: Found Image ID: ami-0eb7fbcc77e5e6ec6
>>>> 172
>>>> ==> amazon-ebs: Creating temporary keypair:
>>>> packer_5f720690-c3aa-4a5b-103b-b244e5cfaf67
>>>> 173
>>>> ==> amazon-ebs: Creating temporary security group for this instance:
>>>> packer_5f720692-6518-386c-fcfb-64088f3bdde8
>>>> 174
>>>> ==> amazon-ebs: Authorizing access to port 5986 from [0.0.0.0/0] in
>>>> the temporary security groups...
>>>> 175
>>>> ==> amazon-ebs: Launching a source AWS instance...
>>>> 176
>>>> ==> amazon-ebs: Adding tags to source instance
>>>> 177
>>>> amazon-ebs: Adding tag: "Name": "Packer Builder"
>>>> 178
>>>> amazon-ebs: Instance ID: i-076f324e8ca7a0f28
>>>> 179
>>>> ==> amazon-ebs: Waiting for instance (i-076f324e8ca7a0f28) to become
>>>> ready...
>>>> 180
>>>> ==> amazon-ebs: Waiting for auto-generated password for instance...
>>>> 181
>>>> amazon-ebs: It is normal for this process to take up to 15 minutes,
>>>> 182
>>>> amazon-ebs: but it usually takes around 5. Please wait.
>>>> 183
>>>> ==> amazon-ebs: Error waiting for password: retry count exhausted. Last
>>>> err: Error retrieving auto-generated instance password:
>>>> UnauthorizedOperation: You are not authorized to perform this operation.
>>>> Encoded authorization failure message:
>>>>
>>>>
>>>>
>>>>
>>>> On Monday, September 28, 2020 at 11:57:24 AM UTC-4 i255d wrote:
>>>> {
>>>> "variables": {
>>>> "region": "{{env `region`}}",
>>>> "environment": "{{env `env`}}",
>>>> "lob": "{{env `lob`}}",
>>>> "vpc_id": "{{env `vpc_id`}}",
>>>> "subnet_id": "{{env `subnet_id`}}",
>>>> "account": "{{env `account`}}",
>>>> "role": "{{env `iam_instance_profile`}}",
>>>> "kms_key": "{{env `kms_key_id`}}"
>>>> },
>>>> "builders": [
>>>> {
>>>> "type": "amazon-ebs",
>>>> "region": "{{user `region`}}",
>>>> "vpc_id": "{{user `vpc_id`}}",
>>>> "subnet_id": "{{user `subnet_id`}}",
>>>> "instance_type": "t2.medium",
>>>> "source_ami_filter": {
>>>> "filters": {
>>>> "virtualization-type": "hvm",
>>>> "name": "Windows_Server-2019-English-Full-Base-*",
>>>> "root-device-type": "ebs"
>>>> },
>>>> "most_recent": true,
>>>> "owners": "amazon"
>>>> },
>>>> "ami_name": "test-ansible-packer",
>>>> "user_data_file": "scripts/user_data.txt",
>>>> "communicator": "winrm",
>>>> "force_deregister": true,
>>>> "winrm_insecure": true,
>>>> "winrm_username": "Administrator",
>>>> "winrm_use_ssl": true,
>>>> "iam_instance_profile": "{{user `role`}}",
>>>> "skip_profile_validation" : true
>>>> }
>>>> ],
>>>> "provisioners": [
>>>> {
>>>> "type": "ansible",
>>>> "playbook_file": "./playbook.yml",
>>>> "user": "Administrator",
>>>> "use_proxy": false,
>>>>
>>>> "extra_arguments": ["-e",
>>>> "ansible_winrm_server_cert_validation=ignore"]
>>>> }
>>>> ]
>>>> }
>>>> Here is my win2019.json file.
>>>>
>>>>
>>>> On Monday, September 28, 2020 at 11:57:24 AM UTC-4 i255d wrote:
>>>>
>>>>> {
>>>>> "variables": {
>>>>> "region": "{{env `region`}}",
>>>>> "environment": "{{env `env`}}",
>>>>> "lob": "{{env `lob`}}",
>>>>> "vpc_id": "{{env `vpc_id`}}",
>>>>> "subnet_id": "{{env `subnet_id`}}",
>>>>> "account": "{{env `account`}}",
>>>>> "role": "{{env `iam_instance_profile`}}",
>>>>> "kms_key": "{{env `kms_key_id`}}"
>>>>> },
>>>>> "builders": [
>>>>> {
>>>>> "type": "amazon-ebs",
>>>>> "region": "{{user `region`}}",
>>>>> "vpc_id": "{{user `vpc_id`}}",
>>>>> "subnet_id": "{{user `subnet_id`}}",
>>>>> "instance_type": "t2.medium",
>>>>> "source_ami_filter": {
>>>>> "filters": {
>>>>> "virtualization-type": "hvm",
>>>>> "name": "Windows_Server-2019-English-Full-Base-*",
>>>>> "root-device-type": "ebs"
>>>>> },
>>>>> "most_recent": true,
>>>>> "owners": "amazon"
>>>>> },
>>>>> "ami_name": "test-ansible-packer",
>>>>> "user_data_file": "scripts/user_data.txt",
>>>>> "communicator": "winrm",
>>>>> "force_deregister": true,
>>>>> "winrm_insecure": true,
>>>>> "winrm_username": "Administrator",
>>>>> "winrm_use_ssl": true,
>>>>> "iam_instance_profile": "{{user `role`}}",
>>>>> "skip_profile_validation" : true
>>>>> }
>>>>> ],
>>>>> "provisioners": [
>>>>> {
>>>>> "type": "ansible",
>>>>> "playbook_file": "./playbook.yml",
>>>>> "user": "Administrator",
>>>>> "use_proxy": false,
>>>>>
>>>>> "extra_arguments": ["-e",
>>>>> "ansible_winrm_server_cert_validation=ignore"]
>>>>> }
>>>>> ]
>>>>> }
>>>>> Here is my win2019.json file.
>>>>>
>>>>>
--
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/hashicorp/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/563c84d5-7864-4be2-8d24-1deff9a79169n%40googlegroups.com.