Ansible でシェル モジュールをコマンド モジュールに置き換える方法は?

Ansible でシェル モジュールをコマンド モジュールに置き換える方法は?

ちょっとした助けが必要です。

shell以下の例では、モジュールに置き換える必要があります。しかし、パイプでは機能しないcommandので混乱しています 。command

それで、このタスクの解決策を教えてください。例:

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

各コマンドの出力は次のコマンドに依存しているため、このタスクをどのように分割すればよいでしょうか?

答え1

shellモジュールに交換する必要がありますcommand

おそらく、なぜそうするのか、何を達成しようとしているのかについての背景情報をもっと提供できるでしょう。

現時点では、man zypperあなたが試みているように

パッケージ (pa) [オプション] [リポジトリ]...

利用可能なすべてのパッケージ、または指定されたリポジトリのすべてのパッケージを一覧表示します。 に似ていますzypper search -s -t package

最初に何かを始め、その後でさらに進めていくのが好きです。


commandしかし、パイプが機能していないので混乱しています。

そうです、それがその場合であり、意図された動作です。例を参照してください


この課題の解決策を教えてください

「その解決策」というものはありませんが、最も好ましいアプローチから最も好ましくないアプローチまでの次のリストを参照することができます。

または、少なくともshellパイプ付きのコマンド(および現在の例)を使用してください。

関連情報