Thanks Rickard, that did the trick.

For clarity on this thread, the solution is to use the following:

"provisioners": [

            "type": "ansible",                                             
               
            "extra_arguments":
            [
                "--extra-vars",
                "ansible_become_pass={{user `pass`}}"
            ],

On Saturday, November 23, 2019 at 7:16:01 AM UTC-8, Rickard von Essen wrote:

> See https://stackoverflow.com/a/29799758/226174
>
> On Mon, Nov 18, 2019, 19:20 Valentin Leon <valentin....@gmail.com 
> <javascript:>> wrote:
>
>> Apologies for the double posting, I kept seeing Google Groups errors.. 
>> some days nothing works.
>>
>> An error (#847) occurred while communicating with the server.
>> RELOAD
>>
>> On Monday, November 18, 2019 at 10:18:55 AM UTC-8, Valentin Leon wrote:
>>>
>>> Hello,
>>>
>>> I am trying to provision a host using ansible (remote). The host is a 
>>> clean ubuntu 18.04 install, but I am blocked running a simple ansible 
>>> cookbook that requires root privileges.
>>>
>>> I can run simple shell commands such as:
>>> echo '{{user `ssh_password`}}' | sudo -S shutdown -P now
>>>
>>> But I need a way to feed the sudo password into ansible, otherwise it 
>>> fails:
>>>     ubuntu-18.04: fatal: [default]: FAILED! => {"cache_update_time": 
>>> 1574096255, "cache_updated": false, "changed": false, "msg": 
>>> "'/usr/bin/apt-get
>>>  -y -o \"Dpkg::Options::=--force-confdef\" -o 
>>> \"Dpkg::Options::=--force-confold\"      install 'mariadb-server'' 
>>> failed: E: Could not open lock file /var/lib/dpkg/lock-frontend - open 
>>> (13: Permission denied)\nE: Unable to acquire the dpkg frontend lock 
>>> (/var/lib/dpkg/lock-frontend), are you root?\n", "rc": 100, "stderr": 
>>> "E:
>>>  Could not open lock file /var/lib/dpkg/lock-frontend - open (13: 
>>> Permission denied)\nE: Unable to acquire the dpkg frontend lock 
>>> (/var/lib/dpkg/lock-frontend), are you root?\n", "stderr_lines": ["E: 
>>> Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission 
>>> denied)", "E: Unable to acquire the dpkg frontend lock 
>>> (/var/lib/dpkg/lock-frontend), are you root?"], "stdout": "", 
>>> "stdout_lines": []}
>>>
>>> I have tried to tell ansible to use become:
>>>     ubuntu-18.04: fatal: [default]: FAILED! => {"msg": "Missing sudo 
>>> password"}
>>>
>>> I have tried to pass the password as input: 
>>> "provisioners": [
>>>
>>>             "type": "ansible",                                         
>>>                    
>>>             "command": "bash -c \"echo '{{user `ssh_password`}}' | 
>>> ansible-playbook $@\"",
>>>             "extra_arguments":
>>>             [
>>>                 "--ask-become-pass"
>>>             ],
>>>
>>> however, this fails as it seems we cannot pass a commands with arguments:
>>>
>>> * Error running "bash -c "echo '<sensitive>' | ansible-playbook $@" 
>>> --version": exec: "bash -c \"echo '<sensitive>' | ansible-playbook $@\""
>>> : executable file not found in $PATH
>>>
>>> I have tried to use the user root directly:
>>> "provisioners": [
>>>             "type": "ansible",                                         
>>>                    
>>>             "user": "root",
>>>
>>> however this fails because I imagine ubuntu does not allow root to SSH 
>>> directly:
>>>
>>>     ubuntu-18.04: 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 
>>> /root/.ansible/tmp/ansible-tmp-1574094286.5371425-44623893214428 `\" && 
>>> echo ansible-tmp-1574094286.5371425-44623893214428=\"` echo 
>>> /root/.ansible/tmp/ansible-tmp-1574094286.5371425-44623893214428 `\" ), 
>>> exited with result 1", "unreachable": true}
>>>
>>> I would like to find a solution that does not requires lowering the 
>>> security of my host, such as allowing root SSH, or passwordless sudo. This 
>>> seem like a pretty basic scenario, and I am surprised that I could not fine 
>>> anyone explaining how to solve this issue. The only reference I found is 
>>> this post: 
>>> https://github.com/hashicorp/packer/issues/4263#issuecomment-280103496 
>>> but it got shutdown and the poster did not created a ticket.
>>>
>>> Any ideas or help would be very welcome.
>>>
>>> Thanks
>>>
>>> Val
>>>
>> -- 
>> 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 packe...@googlegroups.com <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/packer-tool/827f4b20-b10e-4090-83de-5dac7e641ca8%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/packer-tool/827f4b20-b10e-4090-83de-5dac7e641ca8%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 packer-tool+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/packer-tool/8bdda73a-10b8-4a50-96aa-60dd42cbdb0c%40googlegroups.com.

Reply via email to