如何在Vagrant配置期间使环境变量可用?

时间:2016-06-04 07:18:30

标签: vagrant environment-variables vagrantfile vagrant-provision

我想在配置期间使Vagrant可以使用环境变量,这样我就可以运行一些依赖它们获取凭据的命令。具体为aws clipg_restore

例如,pg_restore需要访问我在.bash_profile中设置的$ PGPASS变量。我已经尝试运行导出所需AWS环境变量的source /home/vagrant/.bash_profile,但稍后在我的配置块中,aws命令失败,因为未设置环境变量。

的.bash_profile

export AWS_ACCESS_KEY_ID='keyid'
export AWS_SECRET_ACCESS_KEY='secret'

Vagrantfile配置块

config.vm.provision :shell, run: "always", inline: <<-SH.gsub(/^\s*/,"")
  source /home/vagrant/.bash_profile
  aws s3 cp s3://bucket/sql/file /tmp/file # fail, missing credentials
  echo $(printenv | grep AWS_) # outputs blank line
SH

1 个答案:

答案 0 :(得分:1)

您以[{1}}用户身份运行配置为root用户,因此请务必通过添加vagrant

将配置作为流浪者运行
privileged: false