Нужен синтаксис для работы с оболочкой Ansible и командным модулем - PullRequest
0 голосов
/ 04 июня 2019

Синтаксис ниже работает нормально.

---
- hosts: all

  tasks:
    - name: run this command and ignore the result
      shell: echo "The server is UP since " `uptime`

Однако, когда я изменяю модуль оболочки на командный модуль, я ожидал, что это все еще будет работать.

      command: echo "The server is UP since " `uptime`

Но он не печатает значение времени работы с командным модулем.

Можно ли использовать один и тот же синтаксис для работы как с оболочкой, так и с командным модулем?

1 Ответ

1 голос
/ 04 июня 2019

Можно ли использовать один и тот же синтаксис для работы как с оболочкой, так и с командным модулем?

Да, конечно, просто вручную выполняя работу, которая shell:собирается сделать и завернуть строку в sh -c

- set_fact:
    the_command: sh -c 'echo "The server is UP since `uptime`"'
- command: '{{ the_command }}'
- shell: '{{ the_command }}'
...