與Maven打包在遠程主機上我有一個劇本完成這個任務,其中包括:不能使用Ansible
- name: Compile and package
command: './mvnw clean package'
args:
chdir: "{{workdir}}"
但我得到這個錯誤:如果我通過SSH訪問
FAILED! => {"changed": true, "cmd": "./mvnw clean package", "delta": "0:00:00.003895", "end": "2016-12-29 21:59:16.121501", "failed": true, "rc": 1, "start": "2016-12-29 21:59:16.117606", "stderr": "Error: JAVA_HOME is not defined correctly.\n We cannot execute ", "stdout": "", "stdout_lines": [], "warnings": []}
到遠程主機並執行相同的命令,它的工作原理。顯然,定義了JAVA_HOME
,但似乎Ansible無法檢測到它。
謝謝!我現在理解BASH_ENV,非交互式shell。但是我必須在哪裏定義BASH_ENV? '環境'解決方案是有益的,但想象一下,在未來,每個主機上的JAVA_HOME是不同的...... –
好吧,在/ etc/environment中加載非交互式。它的工作原理:)謝謝 –
您正在使用聲明性模型,因此應定義您的配置(並且擁有一個已知和適當的Java版本,在這種情況下必須具有正確的環境變量),而不是依賴未知狀態「 *每臺主機不同*「。 – techraf