我创建了两本食谱:java_kevin 和 maven_kevin:
食谱/java_kevin/recipes/default.rb
node.default['user'] = 'vagrant'
node.default['user_home'] = '/home/' + node['user']
node.default['my_dir'] = node['user_home'] + '/my'
node.default['vagrant'] = '/vagrant'
node.default['java_home'] = node['my_dir'] + '/jdk1.7.0_51'
# Install Java 7 RPM
execute "install_oracle_java7" do
command "rpm -ivh --prefix=" + node['my_dir'] + " jdk-7u51-linux-x64.rpm"
cwd node['vagrant']
creates node['java_home']
end
magic_shell_environment 'JAVA_HOME' do
value node['java_home']
end
magic_shell_environment 'PATH' do
value "$PATH:" + node['java_home'] + '/bin'
end
食谱/maven_kmm/recipes/default.rb
node.default['user'] = 'vagrant'
node.default['user_home'] = '/home/' + node['user']
node.default['my_dir'] = node['user_home'] + '/my'
node.default['maven_download_dir'] = node.default['user_home'] + '/apache-maven-3.2.1-bin.tar.gz'
# Download Maven 3.2.1
remote_file node['maven_download_dir'] do
source "http://www.bizdirusa.com/mirrors/apache/maven/maven-3/3.2.1/binaries/apache-maven-3.2.1-bin.tar.gz"
checksum "aaef971206104e04e21a3b580d9634fe"
end
execute "unpack_and_uncompress_maven" do
command "tar -zxvf " + node['maven_download_dir']
cwd node['user_home']
creates node['user_home'] + '/apache-maven-3.2.1'
end
execute "move_maven_to_my_dir" do
command "mv " + node['user_home'] + '/apache-maven-3.2.1' + " " + node['my_dir']
cwd node['user_home']
creates node['my_dir'] + '/apache-maven-3.2.1'
end
node.default['maven_home'] = node['my_dir'] + '/apache-maven-3.2.1'
magic_shell_environment 'M2_HOME' do
value node['maven_home']
end
magic_shell_environment 'PATH' do
value "$PATH:" + node['maven_home'] + '/bin'
end
配置完成后,我只看到 Maven 路径已正确添加到$PATH
:
[vagrant@vagrant-centos65 ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/my/apache-maven-3.2.1/bin:/home/vagrant/bin
[vagrant@vagrant-centos65 ~]$ which mvn
~/rm/apache-maven-3.2.1/bin/mvn
[vagrant@vagrant-centos65 ~]$ which java
/usr/bin/which: no java in (/usr/local/bin:/bin:/usr/bin:....
Why was JAVA_HOME
不属于决赛的一部分$PATH
item?
我相信 magic_shell_environment 为每个资源名称创建一个唯一的文件(此处为“PATH” - 检查 /etc/profile.d/PATH.sh),并且每次都会重新创建该文件。这里你的两个食谱都试图创建相同的文件。第一个配方创建的 PATH.sh 文件很可能被第二个配方覆盖。
我不确定如何使用 magic_shell 解决此问题,但我相信这就是您问题“为什么”的答案。
see https://github.com/customink-webops/magic_shell/blob/master/providers/environment.rb https://github.com/customink-webops/magic_shell/blob/master/providers/environment.rb
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)