2016-01-15 1 views
0

Чтобы импортировать сертификат в хранилище ключей, я хочу получить доступ к атрибуту 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?

enter image description here

+1

Как вы включаете поваренную книгу java? если вы не сделаете это правильно, вы никогда не сможете вызывать рецепты set_attribute_from_version, но в этом случае java_home не должен появляться на chef_server (если вы не говорите об одном компьютере, и это единственное решение, которое я вижу в соответствии с вашим описанием). Если я ошибаюсь, расскажите подробнее о своем списке. Чтобы ответить на один из ваших вопросов: доступен любой атрибут, видимый на интерфейсе chef_server. – Tensibai

+0

Я думаю, что я исправил это, включив куклу java перед кулинарной книгой, которая пыталась прочитать java_home. Я не думал, что порядок будет иметь значение. – onknows

+1

Имею значение, поскольку атрибут java_home заполняется рецептом в кучной книге java, а не файлами атрибутов, поэтому атрибут неизвестен до тех пор, пока не будет скомпилирован рецепт 'set_attributes_from_version', поэтому, если вы пытаетесь получить доступ к этому атрибуту при компиляции время от предыдущего рецепта, это не сработает. Лучшей идеей обычно является include_recipe 'java' в начале необходимого для этого cookbok, поэтому вы уверены, что всякая необходимая операция была выполнена до того, как вы попытаетесь получить к ним доступ. – Tensibai

ответ

2

Если вы используете java cookbook, то java_home должны быть доступны на node['java']['java_home']. Это то, что вы должны использовать во всех рецептах вашего шеф-повара, если они работают вместе с куковой книжкой java, которая будет заполнять это значение.

Я предполагаю, что вы не можете увидеть атрибут node['java']['java_home'] в своем осмотре, потому что вы просто не задали его как атрибут атрибута узла/среды на сервере шеф-повара.

Для переменной окружения $JAVA_HOME вы должны установить значение node['java']['set_etc_environment'] в значение true, (возможно, для JAVA_HOME в/etc/environment, по умолчанию это значение false).

+0

Вы презумпция звучит нелогично, так как значение видно на chef_server, где узел получает значения при начале запуска. – Tensibai

+0

hmm ... не уверен, почему вы говорите, что ... выход инспекции [Onno] (http://stackoverflow.com/users/202576/onno) имеет скопированную вставку, не включает java_home ... делает это ?? – gsaslis

+0

Нет. Но скриншот, так что два происходит от двух разных узлов или что-то не так. Атрибут не должен быть на сервере шеф-повара, так как кулинарная книга Java должна заполнять его (как вы уже сказали). – Tensibai