AnsibleにはCommandモジュールとShellモジュールがあるのですが、commandモジュールは安全な代わりに一つのコマンドしか実行できません。|
や;
なんかを使って複数のコマンドを同時に実行したい場合はShellモジュールを使いましょう。
Commandの場合はパイプ以降が解釈されてないのかechoの出力として表示されます。
% ansible node1 -i ./hosts -m command -a 'echo "Hello World" | cut -d" " -f 1' node1 | success | rc=0 >> Hello World | cut -d -f 1
Shellの場合はちゃんと想定通りの結果が返ります。
% ansible node1 -i ./hosts -m shell -a 'echo "Hello World" | cut -d" " -f 1' node1 | success | rc=0 >> Hello