Tad*_*dhg 2 shell environment-variables vagrant
我正在运行Vagrant 1.8.5,它使用这样的格式在配置时支持Vagrantfile中的环境变量
config.vm.provision:shell,path:"bootstrap.sh",env:{"MYSQL_DB_USERNAME"=>"django","MYSQL_DB_PASSWORD"=>"supersecretpasswordwasreplaced"}
但是,我希望这些环境变量在up没有配置时,或者当我通过SSH连接到服务器来完成工作时也可用.我能找到的显而易见的方法是
config.ssh.forward_env以便它们可供配置器和SSH使用.有没有更好的办法?
我不确定最好的终极方式 - 我不时会看到这个问题和讨论.
在我的config.ssh.forward_env中重复它们,以便它们可供配置器和SSH使用.
好吧,它听起来像是一个很好的解决方案,但有一些缺点,我已经在这个问题中讨论过了
就个人而言,当我需要设置env变量时,我会将它们添加到.profile文件中:
config.vm.provision "shell", privileged: false, inline: <<-SHELL
echo "export MYSQL_DB_USERNAME = django" > /home/vagrant/.profile
echo "export MYSQL_DB_PASSWORD = supersecretpasswordwasreplaced" > /home/vagrant/.profile
SHELL
Run Code Online (Sandbox Code Playgroud)
它们将在您登录时可用.
乍一看,这个答案似乎与得票最高的答案相似。但是,请仔细查看第二个上的重定向运算符echo
config.vm.provision "shell", env: {"DOCKERHUBID"=>ENV['DOCKERHUBID'], "DOCKERHUBPASS"=>ENV['DOCKERHUBPASS']}, inline: <<-SHELL
echo "export DOCKERHUBID=$DOCKERHUBID" > /home/vagrant/.profile
echo "export DOCKERHUBPASS=$DOCKERHUBPASS" >> /home/vagrant/.profile
SHELL
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2809 次 |
| 最近记录: |