[анзибль версию == 2.1.0]Запуск сценария с аргументами через анзибль
Для того, чтобы запустить скрипт, который присутствует локально на целевом сервере, мы можем использовать модуль анзибля в «команде». Следующее можно сделать легко:
- name: Executing getpkgs.sh to download packages.
command: sh "/path/to /dir/scriptName.sh" arg1 arg2 arg3 arg4
У меня есть имена скриптов и аргументы, хранящиеся в переменных переменных. Например, следующая переменная содержит все имена скриптов и аргументы, которые должны быть переданы эти сценарии:
scripts_to_execute:
- { filename: "/path/to/file/file1.sh", args: "arg11 arg12 arg13"}
- { filename: "/path/to/file/file2.sh", args: "arg21 arg22"}
- { filename: "/path/to/file/file3.sh", args: "arg31 arg32 arg33 arg34"}
И я хочу, чтобы все эти файлы, которые уже присутствуют на целевом сервере, который будет выполняться с использованием with_items. Пытаясь достичь что-то вроде следующего:
- name: Executing all files.
command: sh "{{item.filename}}" "{{item.args}}"
with_items: scripts_to_execute
Я пытаюсь передать имя сценария, за которой следует строка, содержащая все аргументы, которые должны быть переданы в сценарий. Но он рассматривает эту цепочку аргументов как один аргумент.
Вы можете написать точное сообщение об ошибке? – udondan
@udondan, Синтаксическая ошибка возникла из-за какой-то другой проблемы, я исправил ее. Отредактировал вопрос. Я пытаюсь передать несколько аргументов, но он рассматривает эту строку как единственный аргумент. Пожалуйста помоги; – Shasha99