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



我想在配置期间使环境变量可供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'

流浪文件预配块

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

您以root用户身份运行预配,您的 bash 适用于vagrant用户,因此请确保通过添加privileged: false

config.vm.provision :shell, privileged: false, 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

相关内容

  • 没有找到相关文章

最新更新