Специальный синтаксис win_shell - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь запустить модуль win_shell Ansible как специальную команду с программой «anisble» вместо «playbook».Вот синтаксис playbook:

  tasks:
      - win_shell: foo.exe
        args:
              chdir: 'C:\bar'
              executable: cmd

Я пробовал различные варианты, такие как:

ansible \* -i windows.inventory -k -m win_shell -a "foo" -a "executable=cmd"
ansible \* -i windows.inventory -k -m win_shell -a "foo" -a "args: executable=cmd"
ansible \* -i windows.inventory -k -m win_shell -a "foo" -a "args=executable: cmd"
ansible \* -i windows.inventory -k -m win_shell -a "foo" -a "args=(executable=cmd)"
ansible \* -i windows.inventory -k -m win_shell -a "foo" -a "args={{arg}}" -e '{arg: {executable: cmd} {chdir: "C:\\bar"}}'
ansible \* -i windows.inventory -k -m win_shell -a "foo" -a "args={{arg}}" -e '{arg: {executable: cmd},{chdir: "C:\\bar"}}'
ansible \* -i windows.inventory -k -m win_shell -a "foo" -a "args={{arg}}" -e '{"arg": {"executable": "cmd"},{"chdir": "C:\\bar"}}'
ansible \* -i windows.inventory -k -m win_shell -a "foo" -a "args={{arg}}" -e '{"arg": {"executable": "cmd"},{"chdir": "C:\\bar"}}'
ansible \* -i windows.inventory -k -m win_shell -a "foo" -a "args={{arg}}" -e '{"arg": {"executable": "cmd"}}'

Ни одна из этих работ.

Я могу сделать это таким образом:

ansible \* -i windows.inventory -k -m win_shell -a 'cmd /c "cd C:\bar & foo"'

... но я хочу знать, как это сделать, указав "args".

1 Ответ

0 голосов
/ 12 октября 2018

Вы должны использовать встроенный синтаксис Ansible и один аргумент -a без разделения.

Вот как задача преобразуется в аргументы CLI:

ansible \* -i windows.inventory -k -m win_shell -a 'foo.exe chdir=C:\bar executable=cmd'
...