chef - Updating $PATH with `magic_shell` Cookbook -


i created 2 cookbooks: java_kevin , maven_kevin:

cookbooks/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"     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'      value node['java_home'] end   magic_shell_environment 'path'      value "$path:" + node['java_home'] + '/bin' end  

cookbooks/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']     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"     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"     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'      value node['maven_home'] end   magic_shell_environment 'path'      value "$path:" + node['maven_home'] + '/bin' end  

after provisioning, see maven path added $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 ~]$ mvn ~/rm/apache-maven-3.2.1/bin/mvn  [vagrant@vagrant-centos65 ~]$ java /usr/bin/which: no java in (/usr/local/bin:/bin:/usr/bin:.... 

why java_home not part of final $path item?

i believe magic_shell_environment creates unique file each resource name (here, 'path' -- check /etc/profile.d/path.sh) , each time file recreated. here both of recipes attempting create same file. , path.sh file created first recipe getting overwritten second recipe.

i'm not sure how fix using magic_shell, believe answer question "why" .

see https://github.com/customink-webops/magic_shell/blob/master/providers/environment.rb


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -