我正在使用Ansible
創建symlink
。Nexus符號鏈接不能看到install4j_java_home
這裏是我創建的任務:
---
- name: Create nexus symlink
file:
src: "/{{ lcp }}/nex/local/lib/nexus/{{ nexus_package }}/bin/nexus"
path: "/etc/init.d/nexus"
owner: root
group: root
state: link
- name: add nexus service
command: /sbin/chkconfig --add /etc/init.d/nexus
args:
chdir: /etc/init.d
- name: set nexus service level
command: /sbin/chkconfig --levels 345 nexus on
args:
chdir: /etc/init.d
- name: start nexus service
command: /sbin/service nexus start
args:
chdir: /etc/init.d
我所注意到的是,Ansible
運行爲root
。在運行我的任務時,我不得不直接指向/sbin/chkconfig
,因爲它正在查看bin
文件夾。
我有一個用戶叫nexi
,我正在運行Nexus
as。我的HOME
目錄位於/int/nex/nexi
。在這個家庭目錄中,我可以看到-rw-rw-r-- 1 nexi nexi 107 Oct 3 19:48 .install4j
。
在/etc/init.d
我可以看到我的符號鏈接創建lrwxrwxrwx 1 root root 49 Oct 2 14:20 nexus -> /int/nex/local/lib/nexus/nexus-3.4.0-02/bin/nexus
。
當我執行/sbin/service nexus start
從Ansible
,然後我得到
No suitable Java Virtual Machine could be found on your system.\nThe version of the JVM must be at least 1.8 and at most 1.8.\nPlease define INSTALL4J_JAVA_HOME to point to a suitable JVM.
你可以看到,我有一個JAVA_HOME
:
which java
/int/nex/local/lib/java/jdk1.8.0_131/bin/java
而且install4j在我HOME
爲nexi
用戶
cat .install4j
JRE_VERSION /int/nex/local/lib/java/jdk1.8.0_131 1 8 0 131
JRE_INFO /int/nex/local/lib/java/jdk1.8.0_131 0
我一直在關注Sonatype的的Nexus docs
我曾嘗試添加在/etc/.profile.d
java.sh
揭露了Java位置爲root
。雖然我不在這裏。這是我放在java.sh
export JAVA_HOME=/int/nex/local/lib/java/jdk1.8.0_131
export PATH=$PATH:/int/nex/local/lib/java/jdk1.8.0_131/bin
當我在服務器上運行'nexi'並運行'service nexus start'時,我得到了與上面相同的'INSTALL4J_JAVA_HOME'錯誤。我是否需要爲所有任務更改'JAVA_HOME'和'PATH'? –
是的,沒有。形式上是的,因爲每一個任務都會在一個單獨的會話中運行。不,因爲您可以在鏈接文檔中閱讀:「*您也可以在播放級別使用它*」 – techraf