hello could you share some code that works?
in case someone came later to this thread, will be good to have a working example thanks alvaro On Wed, Aug 14, 2019 at 9:39 AM 'Richard Payne' via Packer < [email protected]> wrote: > Yeah, the relevant directories are accessible and writable by my user. > > I have managed to get it working using this: > https://www.packer.io/docs/provisioners/ansible.html > > You have to create connection plugin alongside the playbook. > > > On Tuesday, 13 August 2019 11:45:23 UTC+1, deanwarrenuk wrote: >> >> Looks like its saying you don't have permissions to create >> ~/.ansible/tmp/etc... >> e.g. >> exec request: /bin/sh -c '( umask 77 && mkdir -p "` echo >> ~/.ansible/tmp/ansible-tmp-1565678283.204747-204856165820508... >> amazon-ebs: fatal: [default]: UNREACHABLE! => {"changed": false, "msg": >> "Authentication or permission failure. >> >> Does the user have those permission? >> >> On Tuesday, 13 August 2019 10:09:56 UTC+1, Richard Payne wrote: >>> >>> Actually, the IP is in the standard output, not even debug. >>> >>> No idea how you're supposed to use that though. >>> >>> On Tuesday, 13 August 2019 08:37:49 UTC+1, Richard Payne wrote: >>>> >>>> I'm not seeing the IP in the log. However, it might provide some info >>>> on what's wrong with the Ansible provisioner? >>>> >>>> >>>> 2019/08/13 07:37:43 packer: 2019/08/13 07:37:43 [DEBUG] Password is >>>> blank, will retry... >>>> 2019/08/13 07:37:49 ui: amazon-ebs: >>>> amazon-ebs: Password retrieved! >>>> amazon-ebs: >>>> amazon-ebs: Password retrieved! >>>> ==> amazon-ebs: Waiting for WinRM to become available... >>>> 2019/08/13 07:37:49 packer: 2019/08/13 07:37:49 Waiting for WinRM, up >>>> to timeout: 30m0s >>>> 2019/08/13 07:37:49 ui: ==> amazon-ebs: Waiting for WinRM to become >>>> available... >>>> 2019/08/13 07:37:54 packer: 2019/08/13 07:37:54 [INFO] Attempting WinRM >>>> connection... >>>> 2019/08/13 07:37:54 packer: 2019/08/13 07:37:54 [DEBUG] connecting to >>>> remote shell using WinRM >>>> 2019/08/13 07:38:01 ui: ==> amazon-ebs: Connected to WinRM! >>>> 2019/08/13 07:38:01 packer: 2019/08/13 07:38:01 Running the provision >>>> hook >>>> ==> amazon-ebs: Connected to WinRM! >>>> 2019/08/13 07:38:01 [INFO] (telemetry) Starting provisioner ansible >>>> 2019/08/13 07:38:01 ui: ==> amazon-ebs: Provisioning with Ansible... >>>> ==> amazon-ebs: Provisioning with Ansible... >>>> 2019/08/13 07:38:02 packer: 2019/08/13 07:38:02 SSH proxy: serving on >>>> 127.0.0.1:36005 >>>> 2019/08/13 07:38:02 ui: ==> amazon-ebs: Executing Ansible: >>>> ansible-playbook --extra-vars packer_build_name=amazon-ebs >>>> packer_builder_type=amazon-ebs -i /tmp/packer-provisioner-ansible774557480 >>>> /home/richard/git/ansible/playbooks/windows_image_build/playbook.yml >>>> --private-key /tmp/ansible-key713730989 --extra-vars {'environment_name': >>>> 'packer', 'hosting_environment': 'aws', 'connection': 'packer'} --skip-tags >>>> gitchecks --skip-tags gather_facts --skip-tags slack >>>> ==> amazon-ebs: Executing Ansible: ansible-playbook --extra-vars >>>> packer_build_name=amazon-ebs packer_builder_type=amazon-ebs -i >>>> /tmp/packer-provisioner-ansible774557480 >>>> /home/richard/git/ansible/playbooks/windows_image_build/playbook.yml >>>> --private-key /tmp/ansible-key713730989 --extra-vars {'environment_name': >>>> 'packer', 'hosting_environment': 'aws', 'connection': 'packer'} --skip-tags >>>> gitchecks --skip-tags gather_facts --skip-tags slack >>>> 2019/08/13 07:38:03 ui: amazon-ebs: [WARNING]: Found variable >>>> using reserved name: connection >>>> amazon-ebs: [WARNING]: Found variable using reserved name: >>>> connection >>>> amazon-ebs: >>>> 2019/08/13 07:38:03 ui: amazon-ebs: >>>> 2019/08/13 07:38:03 ui: amazon-ebs: PLAY [all] >>>> ********************************************************************* >>>> amazon-ebs: PLAY [all] >>>> ********************************************************************* >>>> 2019/08/13 07:38:03 ui: amazon-ebs: >>>> amazon-ebs: >>>> 2019/08/13 07:38:03 ui: amazon-ebs: TASK [Gathering Facts] >>>> ********************************************************* >>>> amazon-ebs: TASK [Gathering Facts] >>>> ********************************************************* >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 SSH proxy: accepted >>>> connection >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 authentication attempt >>>> from 127.0.0.1:41696 to 127.0.0.1:36005 as richard using none >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 authentication attempt >>>> from 127.0.0.1:41696 to 127.0.0.1:36005 as richard using publickey >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 new env request: >>>> LANG=en_GB.UTF-8 >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 new exec request: >>>> /bin/sh -c 'echo ~richard && sleep 0' >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] starting remote >>>> command: /bin/sh -c 'echo ~richard && sleep 0' >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] command '/bin/sh >>>> -c 'echo ~richard && sleep 0'' exited with code: 1 >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] RPC endpoint: >>>> Communicator ended with: 1 >>>> 2019/08/13 07:38:03 [INFO] 0 bytes written for 'stdout' >>>> 2019/08/13 07:38:03 [INFO] 44 bytes written for 'stderr' >>>> 2019/08/13 07:38:03 [INFO] RPC client: Communicator ended with: 1 >>>> 2019/08/13 07:38:03 [INFO] RPC endpoint: Communicator ended with: 1 >>>> 2019/08/13 07:38:03 [INFO] 0 bytes written for 'stdin' >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] 0 bytes written >>>> for 'stdout' >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] 44 bytes written >>>> for 'stderr' >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] RPC client: >>>> Communicator ended with: 1 >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] 0 bytes written >>>> for 'stdin' >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 new env request: >>>> LANG=en_GB.UTF-8 >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 new exec request: >>>> /bin/sh -c 'echo "`pwd`" && sleep 0' >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] starting remote >>>> command: /bin/sh -c 'echo "`pwd`" && sleep 0' >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] command '/bin/sh >>>> -c 'echo "`pwd`" && sleep 0'' exited with code: 1 >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] RPC endpoint: >>>> Communicator ended with: 1 >>>> 2019/08/13 07:38:03 [INFO] 44 bytes written for 'stderr' >>>> 2019/08/13 07:38:03 [INFO] 0 bytes written for 'stdout' >>>> 2019/08/13 07:38:03 [INFO] RPC client: Communicator ended with: 1 >>>> 2019/08/13 07:38:03 [INFO] RPC endpoint: Communicator ended with: 1 >>>> 2019/08/13 07:38:03 [INFO] 0 bytes written for 'stdin' >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] 0 bytes written >>>> for 'stdout' >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] 44 bytes written >>>> for 'stderr' >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] RPC client: >>>> Communicator ended with: 1 >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] 0 bytes written >>>> for 'stdin' >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 new env request: >>>> LANG=en_GB.UTF-8 >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 new exec request: >>>> /bin/sh -c '( umask 77 && mkdir -p "` echo >>>> ~/.ansible/tmp/ansible-tmp-1565678283.204747-204856165820508 `" && echo >>>> ansible-tmp-1565678283.204747-204856165820508="` echo >>>> ~/.ansible/tmp/ansible-tmp-1565678283.204747-204856165820508 `" ) && sleep >>>> 0' >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] starting remote >>>> command: /bin/sh -c '( umask 77 && mkdir -p "` echo >>>> ~/.ansible/tmp/ansible-tmp-1565678283.204747-204856165820508 `" && echo >>>> ansible-tmp-1565678283.204747-204856165820508="` echo >>>> ~/.ansible/tmp/ansible-tmp-1565678283.204747-204856165820508 `" ) && sleep >>>> 0' >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] command '/bin/sh >>>> -c '( umask 77 && mkdir -p "` echo >>>> ~/.ansible/tmp/ansible-tmp-1565678283.204747-204856165820508 `" && echo >>>> ansible-tmp-1565678283.204747-204856165820508="` echo >>>> ~/.ansible/tmp/ansible-tmp-1565678283.204747-204856165820508 `" ) && sleep >>>> 0'' exited with code: 1 >>>> 2019/08/13 07:38:03 [INFO] 0 bytes written for 'stdout' >>>> 2019/08/13 07:38:03 [INFO] 44 bytes written for 'stderr' >>>> 2019/08/13 07:38:03 [INFO] RPC client: Communicator ended with: 1 >>>> 2019/08/13 07:38:03 [INFO] RPC endpoint: Communicator ended with: 1 >>>> 2019/08/13 07:38:03 [INFO] 0 bytes written for 'stdin' >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] RPC endpoint: >>>> Communicator ended with: 1 >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] 0 bytes written >>>> for 'stdout' >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] 44 bytes written >>>> for 'stderr' >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] RPC client: >>>> Communicator ended with: 1 >>>> 2019/08/13 07:38:03 packer: 2019/08/13 07:38:03 [INFO] 0 bytes written >>>> for 'stdin' >>>> 2019/08/13 07:38:03 ui: amazon-ebs: fatal: [default]: UNREACHABLE! >>>> => {"changed": false, "msg": "Authentication or permission failure. In some >>>> cases, you may have been able to authenticate and did not have permissions >>>> on the target directory. Consider changing the remote tmp path in >>>> ansible.cfg to a path rooted in \"/tmp\". Failed command was: ( umask 77 && >>>> mkdir -p \"` echo >>>> ~/.ansible/tmp/ansible-tmp-1565678283.204747-204856165820508 `\" && echo >>>> ansible-tmp-1565678283.204747-204856165820508=\"` echo >>>> ~/.ansible/tmp/ansible-tmp-1565678283.204747-204856165820508 `\" ), exited >>>> with result 1", "unreachable": true} >>>> amazon-ebs: fatal: [default]: UNREACHABLE! => {"changed": false, >>>> "msg": "Authentication or permission failure. In some cases, you may have >>>> been able to authenticate and did not have permissions on the target >>>> directory. Consider changing the remote tmp path in ansible.cfg to a path >>>> rooted in \"/tmp\". Failed command was: ( umask 77 && mkdir -p \"` echo >>>> ~/.ansible/tmp/ansible-tmp-1565678283.204747-204856165820508 `\" && echo >>>> ansible-tmp-1565678283.204747-204856165820508=\"` echo >>>> ~/.ansible/tmp/ansible-tmp-1565678283.204747-204856165820508 `\" ), exited >>>> with result 1", "unreachable": true} >>>> 2019/08/13 07:38:03 ui: amazon-ebs: to retry, use: --limit >>>> @/home/richard/git/ansible/playbooks/windows_image_build/playbook.retry >>>> amazon-ebs: to retry, use: --limit >>>> @/home/richard/git/ansible/playbooks/windows_image_build/playbook.retry >>>> amazon-ebs: >>>> 2019/08/13 07:38:03 ui: amazon-ebs: >>>> 2019/08/13 07:38:03 ui: amazon-ebs: PLAY RECAP >>>> ********************************************************************* >>>> amazon-ebs: PLAY RECAP >>>> ********************************************************************* >>>> 2019/08/13 07:38:03 ui: amazon-ebs: default : >>>> ok=0 changed=0 unreachable=1 failed=0 >>>> amazon-ebs: default : ok=0 changed=0 >>>> unreachable=1 failed=0 >>>> 2019/08/13 07:38:03 ui: amazon-ebs: >>>> amazon-ebs: >>>> >>>> >>>> >>>> >>>> >>>> On Monday, 12 August 2019 16:24:02 UTC+1, deanwarrenuk wrote: >>>>> >>>>> Doesn't the PACKER_LOG show the ip/port info? >>>>> >>>>> On Mon, Aug 12, 2019 at 4:09 PM 'Richard Payne' via Packer < >>>>> [email protected]> wrote: >>>>> >>>>>> tl:dr The Ansible provision will not connect to my Windows EC2 >>>>>> instances >>>>>> >>>>>> This is my packer file: >>>>>> >>>>>> { >>>>>> "variables": { >>>>>> "aws_access_key": "", >>>>>> "aws_secret_key": "" >>>>>> }, >>>>>> "builders": [{ >>>>>> "type": "amazon-ebs", >>>>>> "access_key": "{{user `aws_access_key`}}", >>>>>> "secret_key": "{{user `aws_secret_key`}}", >>>>>> "region": "eu-west-2", >>>>>> "vpc_id": "vpc-071989c63a4a111a2", >>>>>> "subnet_id": "subnet-04e9835b580b420b4", >>>>>> "source_ami": "ami-00ab607c2193c70c9", >>>>>> "instance_type": "t2.micro", >>>>>> "ami_name": "Windows Core 1809 {{timestamp}}", >>>>>> "user_data_file": "./user_data.ps1", >>>>>> "communicator": "winrm", >>>>>> "winrm_username": "Administrator", >>>>>> "winrm_use_ssl": true, >>>>>> "winrm_insecure": true, >>>>>> "run_tags": [ >>>>>> { "windows": "" } >>>>>> ] >>>>>> }], >>>>>> "provisioners": [ >>>>>> { >>>>>> "type": "ansible", >>>>>> "playbook_file": >>>>>> "../playbooks/windows_image_build/playbook.yml", >>>>>> "extra_arguments": [ >>>>>> "--extra-vars", "{'environment_name': 'packer', >>>>>> 'hosting_environment': 'aws', 'connection': 'packer'}", >>>>>> "--skip-tags", "gitchecks", >>>>>> "--skip-tags", "gather_facts", >>>>>> "--skip-tags", "slack" >>>>>> ] >>>>>> } >>>>>> ] >>>>>> } >>>>>> >>>>>> The builder runs fine but the Ansible provisioner fails with this >>>>>> error: >>>>>> >>>>>> ==> amazon-ebs: Provisioning with Ansible... >>>>>> ==> amazon-ebs: Executing Ansible: ansible-playbook --extra-vars >>>>>> packer_build_name=amazon-ebs packer_builder_type=amazon-ebs -i /tmp/ >>>>>> packer-provisioner-ansible213362483 /home/richard/git/ansible/ >>>>>> playbooks/windows_image_build/playbook.yml --private-key /tmp/ansible >>>>>> -key656970276 --extra-vars environment_name=packer --extra-vars >>>>>> hosting_environment=aws --extra-vars connection=packer --skip-tags >>>>>> gitchecks --skip-tags gather_facts --skip-tags slack >>>>>> amazon-ebs: [WARNING]: Found variable using reserved name: >>>>>> connection >>>>>> amazon-ebs: >>>>>> amazon-ebs: PLAY [all] >>>>>> ********************************************************************* >>>>>> amazon-ebs: >>>>>> amazon-ebs: TASK [Gathering Facts] >>>>>> ********************************************************* >>>>>> amazon-ebs: fatal: [default]: UNREACHABLE! => {"changed": false, >>>>>> "msg": "Authentication or permission failure. In some cases, you may >>>>>> have been able to authenticate and did not have permissions on the target >>>>>> directory. Consider changing the remote tmp path in ansible.cfg to a path >>>>>> rooted in \"/tmp\". Failed command was: ( umask 77 && mkdir -p \"` echo >>>>>> ~/.ansible/tmp/ansible-tmp-1565621734.13375-223774312712604 `\" && echo >>>>>> ansible-tmp-1565621734.13375-223774312712604=\"` echo >>>>>> ~/.ansible/tmp/ansible-tmp-1565621734.13375-223774312712604 `\" ), exited >>>>>> with result 1", "unreachable": true} >>>>>> amazon-ebs: to retry, use: --limit @/home/richard/git/ >>>>>> ansible/playbooks/windows_image_build/playbook.retry >>>>>> amazon-ebs: >>>>>> amazon-ebs: PLAY RECAP >>>>>> ********************************************************************* >>>>>> amazon-ebs: default : ok=0 changed=0 >>>>>> unreachable=1 failed=0 >>>>>> >>>>>> >>>>>> >>>>>> I'm confused because it appears to be referring to the target box, >>>>>> but is also referring to Linux paths (/tmp). The /tmp directory on the >>>>>> system I'm running packer from never visibly contains the temporary paths >>>>>> mentioned, even when stepping through using the -debug option. >>>>>> >>>>>> If I manually hook it up using the ec2 inventory plugin: >>>>>> >>>>>> plugin: aws_ec2 >>>>>> regions: >>>>>> - eu-west-2 >>>>>> filters: >>>>>> tag:Name: Packer Builder >>>>>> compose: >>>>>> ansible_host: private_ip_address >>>>>> hostnames: >>>>>> - network-interface.addresses.private-ip-address >>>>>> >>>>>> and the following group vars: >>>>>> >>>>>> ansible_connection: winrm >>>>>> ansible_winrm_transport: ntlm >>>>>> ansible_winrm_server_cert_validation: ignore >>>>>> ansible_port: 5986 >>>>>> ansible_winrm_scheme: https >>>>>> >>>>>> then Ansible will connection start running the playbook. I did try >>>>>> to do a manual connection use a local-shell provisioner but there doesn't >>>>>> appear to be any way to retrieve the ip address from Packer. >>>>>> >>>>>> I can only assume I'm doing something wrong or the provisioner is >>>>>> broken. Can any one give me some clues here? >>>>>> >>>>>> -- >>>>>> 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/9eb4db18-0ea0-478c-a569-ba4adda97b84%40googlegroups.com >>>>>> <https://groups.google.com/d/msgid/packer-tool/9eb4db18-0ea0-478c-a569-ba4adda97b84%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>> -- > 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/7907eeff-6e0d-444c-a2b1-446d92eef894%40googlegroups.com > <https://groups.google.com/d/msgid/packer-tool/7907eeff-6e0d-444c-a2b1-446d92eef894%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- Alvaro -- 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/CAHqq0ex%3Dnzc%3D4eod0bQmVAw2D_9GvULwdC2hByYP%2BZJ7TA-ddw%40mail.gmail.com.
