Como substituir o módulo shell pelo módulo de comando no Ansible?

Como substituir o módulo shell pelo módulo de comando no Ansible?

Preciso de uma pequena ajuda.

No exemplo abaixo, preciso substituir shellpelo commandmódulo. Mas estou confuso porque commandnão está funcionando com pipe.

Então, por favor, me dê a solução desta tarefa. Por exemplo:

- name: Get the version
  become: true
  run_once: true
  shell: zypper pa | grep eric-odl | awk -F {'print $4'}
  register: odl_version

Como dividirei esta tarefa porque cada saída de comando depende do próximo comando?

Responder1

Preciso substituir shellpor commandmódulo.

Talvez você possa fornecer mais informações básicas sobre o porquê e o que você tenta alcançar.

Atualmente eu acho que de acordo com man zyppervocê tenta

pacotes (pa) [opções] [repositório]...

Lista todos os pacotes disponíveis ou todos os pacotes dos repositórios especificados. Igual a zypper search -s -t package.

primeiro e gostaria de prosseguir com algo depois.


Mas estou confuso commandse não está funcionando com pipe.

Certo, esse é o caso e o comportamento pretendido. Veja no exemplo


Então, por favor, me dê a solução desta tarefa

Não haverá "essa solução", mas você pode dar uma olhada na lista a seguir, das abordagens mais preferidas para as menos preferíveis:

Ou, pelo menos, continue com shellos comandos for com pipes (e seu exemplo como está atualmente)

informação relacionada