传递主机';将当前用户添加到vagrant shell provisioner

传递主机';将当前用户添加到vagrant shell provisioner,vagrant,vagrantfile,vagrant-provision,Vagrant,Vagrantfile,Vagrant Provision,我想在我的Vagrant文件中传递当前用户,但我不确定如何传递 我试过这个: config.vm.provision:shell,内联:“echo$(whoami)>/etc/profile.d/me” 但它会导致将“root”放入文件中,我假设该文件是流浪主机的用户。我想获取主机的用户名。这是因为您的内联shell脚本在vagrant框中运行 您可以这样做: 根据平台从主机获取用户名(如果您从未期望使用windows主机,则可以简化此过程) 在设置期间,将用户名作为环境变量从主机传递,并在内联

我想在我的Vagrant文件中传递当前用户,但我不确定如何传递

我试过这个:

config.vm.provision:shell,内联:“echo$(whoami)>/etc/profile.d/me”


但它会导致将“root”放入文件中,我假设该文件是流浪主机的用户。我想获取主机的用户名。

这是因为您的内联shell脚本在vagrant框中运行

您可以这样做:

根据平台从主机获取用户名(如果您从未期望使用windows主机,则可以简化此过程)

在设置期间,将用户名作为环境变量从主机传递,并在内联脚本中使用它

config.vm.provision "Passing host username as env var...", type: :shell, inline: $hostUser, env: {"HOST_USER" => "#{@host_user}"}
将其添加到ruby部件之外,然后由上面的代码运行,并将作为环境变量传递的用户名附加到指定的文件中:

$hostUser = <<-SET_HOST_USER
echo "$HOST_USER" > /etc/profile.d/me"
SET_HOST_USER

$hostUser=有关通用软件的问题应发布到superuser.com;stackoverflow适用于与编程直接相关的问题。您更有可能从superuser.com或serverfault.com获得准确答案。
$hostUser = <<-SET_HOST_USER
echo "$HOST_USER" > /etc/profile.d/me"
SET_HOST_USER