У меня проблема с командой оболочки в моем сценарии Ansible. Эта команда оболочки не работает должным образом в скрипте, в то время как она отлично работает непосредственно на сервере.Escape characters in Ansible script
Вот проблемный код:
- name: export keys
shell: "export NR_INSTALL_PATH=$(which php | sed 's/\/php$//g') ; export NR_INSTALL_KEY='somekey'; export NR_INSTALL_SILENT=1; newrelic-install install"
После того как я исследовал этот вопрос, я заметил, что проблемная часть:
which php | sed 's/\/php$//g'
Этот код предполагают, чтобы получить путь к исполняемому файлу РНР, и удалите последний каталог из пути. Вместо ожидаемого результата я получаю только первый каталог пути (/bin
).
- Эта проблема связана с символами эвакуации? Может кто-нибудь сказать мне, как это исправить?
- У меня есть больше символов из исходной команды, которые мне нужно убежать?
- Есть ли способ распечатать команду bash, которая фактически была получена сервером? (Вот как я смогу узнать, что было изменено из исходной команды).
Что такое вывод 'which php'? –
У меня есть несколько выходов. Это зависит от дистрибутивов пакетов. – Omri