That shouldn't matter, but I tried it any way: 

   config.vm.provision "shell", inline: $test_apt, privileged: true

and I see the same disparity.  The commands above are in fact all running 
as the vagrant user, without any sudo or other privilege escalation. 

On Monday, March 4, 2019 at 9:38:12 AM UTC-8, Brian Cain wrote:
>
> By default, the shell provisioner does not run as root. This could explain 
> the reason why you get
> different results. Your example outside of vagrant was run as root, where 
> as the provisioner in
> Vagrant was run as the Vagrant user:
>
> https://www.vagrantup.com/docs/provisioning/shell.html#privileged
>
> You can update the provisioner to run as root with this option, which 
> might fix it.
>
> On Sun, Mar 3, 2019 at 4:44 PM shaun smiley <[email protected] 
> <javascript:>> wrote:
>
>> I added 
>>
>> set -euo pipefail
>>
>> to the top of the embedded bash script, which would fail instantly on 
>> errors.  I still get different results, but no errors. 
>>
>> On Saturday, March 2, 2019 at 5:13:16 PM UTC-8, shaun smiley wrote:
>>>
>>> I have a strange issue where the bash code I put into Vagrantfile and 
>>> run with 'provision' gives different output than if I copy/paste the exact 
>>> same code into the shell of the vagrant machine. 
>>>
>>> Here's a stripped down version of my Vagrantfile I've gotten to prove 
>>> this strange issue. 
>>>
>>> # -*- mode: ruby -*-
>>> # vi: set ft=ruby :
>>>
>>> $test_apt = <<-SCRIPT
>>>   #!/usr/bin/env bash
>>>
>>>   dpkg_find() {
>>>     pkgname="$1"
>>>     echo "in dpkg_find, pkgname=${pkgname}" 
>>>       dpkg --get-selections | egrep "${pkgname}"'\s+install' && {
>>>       echo "FOUND"
>>>     } || {
>>>       echo "NOT_FOUND"
>>>     }
>>>   }
>>>
>>>   dpkg_find vim
>>> SCRIPT
>>>
>>> Vagrant.configure("2") do |config|
>>>   config.vm.box = "peru/ubuntu-18.04-desktop-amd64"
>>>   config.vm.box_version = "20190222.03"
>>>   config.vm.network :private_network, ip: '192.168.85.102'
>>>    config.vm.provision "shell", inline: $test_apt
>>> end
>>>
>>>
>>> $ vagrant provision
>>> ==> default: Running provisioner: shell...
>>>     default: Running: inline script
>>>     default: in dpkg_find, pkgname=vim
>>>     default: NOT_FOUND
>>>
>>>
>>>
>>>
>>>
>>> I can copy paste the dpkg_find function and its call line and get 
>>> different output!
>>>
>>> $ vagrant ssh
>>>
>>> vagrant@linux:~$ sudo su -
>>> root@linux:~# dpkg_find() {
>>>     pkgname="$1"
>>>     echo "in dpkg_find, pkgname=${pkgname}" 
>>>     dpkg --get-selections | egrep "${pkgname}"'\s+install' && {
>>>       echo "FOUND"
>>>     } || {
>>>       echo "NOT_FOUND"
>>>     }
>>>   }
>>>
>>>
>>>
>>> root@linux:~# dpkg_find vim
>>> in dpkg_find, pkgname=vim
>>> vim install
>>> FOUND
>>>
>>>
>>>
>>> What is going on 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/vagrant/issues
>> IRC: #vagrant on Freenode
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "Vagrant" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/vagrant-up/6607f137-4311-4a8c-892d-7dae7bfaa274%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/vagrant-up/6607f137-4311-4a8c-892d-7dae7bfaa274%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
> -- 
> Brian Cain
>

-- 
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/vagrant/issues
IRC: #vagrant on Freenode
--- 
You received this message because you are subscribed to the Google Groups 
"Vagrant" 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/vagrant-up/96052a87-df0c-43db-9885-0140c30cd006%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to