Я использую модуль win_shell для выполнения команды на удаленном хосте. Но ansible не устанавливает значение правильно (или я, конечно)
Я установил переменную, которая включает или отключает запланированные задачи на основе ввода пользователя в Ansible Tower.
tasks:
- name: disable enable tasks without ebs based on user input
win_shell: '"{{ command_to_execute }}" -TaskName "{{ task_name }}"'
пользовательский ввод в Ansible Tower:
- command_to_execute: Enable-ScheduledTask
or
- command_to_execute: Disable-ScheduledTask
Работа выполнена успешно, но ничего не активируется и не отключается. в выводе я вижу, что:
"cmd": "\"[u'Enable-ScheduledTask']\" -TaskName
\"start_something\"",
поэтому вместо
Enable-ScheduledTask
я получил
[u'Enable-ScheduledTask'] .
Почему это?





Похоже, у вас есть список из одного элемента «Enable-ScheduledTask» в вашей переменной {{ command_to_execute }}.
Самый короткий и простой способ — использовать {{ command_to_execute | first }}
Это кажется важным первым шагом, но обратите внимание, что значение
{{ command_to_execute }}заключено в"...". В PowerShell, чтобы выполнить команду, имя которой хранится в строке в кавычках, вы должны добавить&, оператор вызова:'& "{{ ...; в качестве альтернативы в этом случае просто опустите двойные кавычки.