Я пишу доступную книгу, которая должна скомпилировать из исходного кода какой-то инструмент и установить его.
Проверяя свой playbook, я пробовал вручную запускать соответствующие команды, чтобы проверить их вывод.
Итак, в моей игровой книге я настроил это:
- name: Configure kafkacat
command: . {{ install_dest }}/configure arg1
args:
enable_json: "--enable-json"
sudo: yes
Но перед запуском playbook я запустил вручную: . /tmp/kafkacat/configure --enable-json
что должно быть эквивалентно запуску ./configure
в текущем каталоге, но команда не работает, и я получаю сообщение об ошибке.
Так как же это сделать? заранее спасибо
Нет, я не думаю, что они эквивалентны. Точка без пробела заменяет путь к текущему каталог, тогда как точка перед пробелом заставляет команды скрипта запускаться в текущем оболочка. Здесь есть хорошее объяснение: https://askubuntu.com/q/232932
Во многих случаях, в зависимости от программного обеспечения, настройка зависит от включения и заголовков, открытых из текущего рабочего каталога.
ansible поддерживает аргумент "chdir". Может быть, это решение, которое подойдет вам?