Чтобы импортировать сертификат в хранилище ключей, я хочу получить доступ к атрибуту java/java_home
.Как получить доступ к java_home при использовании кулинарной книги повара Java
На сервере шеф-повара я могу вручную прочитать его значение. Он отображается как /usr/lib/jvm/java-7-oracle-amd64
на вкладке атрибута.
Теперь я хочу сделать то же самое в своем рецепте шеф-повара. Когда я проверить node['java]
он показывает
node['java']: {"jdk_version"=>"7", "arch"=>"x86_64", "openjdk_packages"=>[], "openjdk_version"=>nil, "accept_license_agreement"=>false, "set_default"=>true, "alternatives_priority"=>1062, "set_etc_environment"=>false, "ark_retries"=>0, "ark_retry_delay"=>2, "install_flavor"=>"oracle", "oracle"=>{"accept_oracle_download_terms"=>true}, "jdk"=>{"6"=>{"bin_cmds"=>["appletviewer", "apt", "ControlPanel", "extcheck", "HtmlConverter", "idlj", "jar", "jarsigner", "java", "javac", "javadoc", "javah", "javap", "javaws", "jconsole", "jcontrol", "jdb", "jhat", "jinfo", "jmap", "jps", "jrunscript", "jsadebugd", "jstack", "jstat", "jstatd", "jvisualvm", "keytool", "native2ascii", "orbd", "pack200", "policytool", "rmic", "rmid", "rmiregistry", "schemagen", "serialver", "servertool", "tnameserv", "unpack200", "wsgen", "wsimport", "xjc"], "x86_64"=>{"url"=>"http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin", "checksum"=>"6b493aeab16c940cae9e3d07ad2a5c5684fb49cf06c5d44c400c7993db0d12e8"}, "i586"=>{"url"=>"http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-i586.bin", "checksum"=>"d53b5a2518d80e1d95565f0adda54eee229dc5f4a1d1a3c2f7bf5045b168a357"}}, "7"=>{"bin_cmds"=>["appletviewer", "apt", "ControlPanel", "extcheck", "idlj", "jar", "jarsigner", "java", "javac", "javadoc", "javafxpackager", "javah", "javap", "javaws", "jcmd", "jconsole", "jcontrol", "jdb", "jhat", "jinfo", "jmap", "jps", "jrunscript", "jsadebugd", "jstack", "jstat", "jstatd", "jvisualvm", "keytool", "native2ascii", "orbd", "pack200", "policytool", "rmic", "rmid", "rmiregistry", "schemagen", "serialver", "servertool", "tnameserv", "unpack200", "wsgen", "wsimport", "xjc"], "x86_64"=>{"url"=>"http://download.oracle.com/otn-pub/java/jdk/7u45-b18/jdk-7u45-linux-x64.tar.gz", "checksum"=>"bea330fcbcff77d31878f21753e09b30"}, "i586"=>{"url"=>"http://download.oracle.com/otn-pub/java/jdk/7u71-b14/jdk-7u71-linux-i586.tar.gz", "checksum"=>"54899d0733d9a8697da59de79a02cc8f"}}, "8"=>{"bin_cmds"=>["appletviewer", "apt", "ControlPanel", "extcheck", "idlj", "jar", "jarsigner", "java", "javac", "javadoc", "javafxpackager", "javah", "javap", "javaws", "jcmd", "jconsole", "jcontrol", "jdb", "jdeps", "jhat", "jinfo", "jjs", "jmap", "jmc", "jps", "jrunscript", "jsadebugd", "jstack", "jstat", "jstatd", "jvisualvm", "keytool", "native2ascii", "orbd", "pack200", "policytool", "rmic", "rmid", "rmiregistry", "schemagen", "serialver", "servertool", "tnameserv", "unpack200", "wsgen", "wsimport", "xjc"], "x86_64"=>{"url"=>"http://download.oracle.com/otn-pub/java/jdk/8u25-b17/jdk-8u25-linux-x64.tar.gz", "checksum"=>"e145c03a7edc845215092786bcfba77e"}, "i586"=>{"url"=>"http://download.oracle.com/otn-pub/java/jdk/8u25-b17/jdk-8u25-linux-i586.tar.gz", "checksum"=>"b5b16247f66643727d9b6d4bc7c5efda"}}}}
Многие из атрибутов, которые я вижу через веб-интерфейс, но, к сожалению, подъезд java_home
нет.
Могу ли я прочитать это значение через рецепт шеф-повара? Или это видно только через веб-интерфейс?
Есть ли другой способ узнать местоположение Java?
Я испробовал переменную окружения $JAVA_HOME
, которая раньше работала, но в последнее время я заметил, что это также не так для клиента-шеф-повара.
Каков правильный способ импорта сертификата в хранилище ключей с помощью шеф-повара, не имея возможности узнать местоположение Java?
Как вы включаете поваренную книгу java? если вы не сделаете это правильно, вы никогда не сможете вызывать рецепты set_attribute_from_version, но в этом случае java_home не должен появляться на chef_server (если вы не говорите об одном компьютере, и это единственное решение, которое я вижу в соответствии с вашим описанием). Если я ошибаюсь, расскажите подробнее о своем списке. Чтобы ответить на один из ваших вопросов: доступен любой атрибут, видимый на интерфейсе chef_server. – Tensibai
Я думаю, что я исправил это, включив куклу java перед кулинарной книгой, которая пыталась прочитать java_home. Я не думал, что порядок будет иметь значение. – onknows
Имею значение, поскольку атрибут java_home заполняется рецептом в кучной книге java, а не файлами атрибутов, поэтому атрибут неизвестен до тех пор, пока не будет скомпилирован рецепт 'set_attributes_from_version', поэтому, если вы пытаетесь получить доступ к этому атрибуту при компиляции время от предыдущего рецепта, это не сработает. Лучшей идеей обычно является include_recipe 'java' в начале необходимого для этого cookbok, поэтому вы уверены, что всякая необходимая операция была выполнена до того, как вы попытаетесь получить к ним доступ. – Tensibai