通过Puppet config.yaml或Vagrantfile设置VM' $ PATH?

时间:2015-04-22 03:14:05

标签: vagrant puppet vagrantfile

我想通过使用我的puppet config.yamlVagrant文件(或其他一些我不知道的VM外部机制)为我的VM的$ PATH环境变量添加一条额外的路径。

这可能吗?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:0)

在Vagrant中,您可以轻松地使用shell script来提供内容。首先,创建一个脚本(在与Vagrantfile相同的文件夹中),为$PATH添加其他路径。例如,使用以下内容创建名为bootstrap.sh的文件:

export PATH=$PATH:/foo/bar
# Or if you want it for all users :
echo 'PATH=$PATH:/foo/bar' >> /etc/profile

然后在Vagrantfile中,添加此行以在启动VM时执行此脚本:

config.vm.provision :shell, path: "bootstrap.sh"

答案 1 :(得分:0)

这种方法在那里,但如果由于某种原因你在Vagrant盒子上重新运行配置,那么每次运行配置时,你最终都会在那里找到其中一条线路。为了避免这种情况:

grep -s -E "PATH=\$PATH:/foo/bar" /etc/profile || echo 'PATH=\$PATH:/foo/bar' >> /etc/profile  

我对Chef知之甚少,但Salt在这些文件中创建托管部分并在其自身处理它方面做得很好。如果厨师不做同样的事情,我会感到惊讶。