Я пытаюсь запустить проект maven из Ansible Tower, но Ansible kepps выдает ошибку 'mvn: команда не распознана', mvn работает нормально, если я делаю это вручную из командной строки на сервере Linux
У меня была похожая проблема при попытке запустить Gradle из Ansible, однако решение для этого здесь не сработало.Ранее проблема заключалась в том, что мне нужно было задавать переменные env при запуске playbook.Я пробовал это здесь, но безрезультатно.Я проверил свой путь и вижу там путь Maven.
Я воспользовался советом Zeitounator и попытался позвонить из Ansible, используя абсолютный путь, и это сработало.Но, как он упомянул, это был всего лишь тест, а не реальное решение.
- Я добавил / bin к PATH, так как он ранее отсутствовал по какой-то причине
- Я пытался изменитьMAVEN_HOME для / opt / maven / bin / как на сервере, так и в Ansible playbook
- Я убедился, что переменная M2_HOME пуста, так как я прочитал, что она может вызвать некоторые проблемы, если она там
Кажется, что Ansible не знает, где искать Maven, и я не совсем уверен, как еще донести эту информацию до него.Я чувствую, что это глупая изворотливость Ansible, которая имеет глупое простое решение, и это можно исправить, если у меня есть что-то кроме 'mvn: command not found' для работы.
Вот вызов от моегоplaybook:
- name: test mvn
shell: mvn -version
args:
chdir: /opt/jenkins/batchtest/
environment:
MAVEN_HOME: /opt/maven/
JAVA_HOME: /usr/java/jdk1.8.0_162
и вот результат получения PATH:
-bash-4.2$ echo $PATH
/bin:/usr/lib64/qt-3.3/bin:/opt/maven/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
Вот вывод из mvn -version, в котором есть что-то, чего мне не хватает
-bash-4.2$ mvn -version
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T13:49:05-06:00)
Maven home: /opt/maven
Java version: 1.8.0_202, vendor: Oracle Corporation
Java home: /usr/java/jre1.8.0_202-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.12.1.el7.x86_64", arch: "amd64", family: "unix"