2017-03-29 9 views
1

私は2つのファイルの違いを見つけて、メモ帳に格納する簡単な作業をしようとしています。私はシェルだけでなくコマンドでもできません。 MYSERVER タスク: 不可能:Diffコマンドを使用している可能性を使用して

  • 名前:取得違い コマンド:デフhosts.new hosts.mod レジスタ:デフ
  • 私はwrong-


    • ホストをつもりどこ提案して下さいデバッグ:var = diff.cmd

エラー - 致命的:[zlp12037]:FAILED! => {"changed":true、 "cmd":["diff"、 "hosts.new"、 "hosts.mod"]、 "delta": "0:00:00.003102"、 "end": "2017- true、 "rc":1、 "start": "2017-03-29 10:17:34.444961"、 "stderr": ""、 "stdout": "03-29 10:17:34.448063"

答えて

3

あなたの入力がどのように表示されるかわかりません。しかし、次のように解決する必要があります:

- name: "Get difference from two files" 
    command: diff filea fileb 
    args: 
    chdir: "/home/user/" 
    failed_when: "diff.rc > 1" 
    register: diff 
- name: debug output 
    debug: msg="{{ diff.stdout }}" 

いくつかの説明:何かがdiffコマンドで失敗した場合

  • 、リターンコードは、私たちは「failed_when」でこれを評価> 1です。
  • コマンドの出力を得るために、 ".stdout"要素を出力します。
  • ファイルがあるフォルダに入っていることを確認するために、 "chdir"を使用します。
+0

おかげで、それはうまく働きました。 – nishant

0

私はhosts.newまたはhosts.modを安全な制御マシンに移動します。

srcをhosts.new、destをhosts.modとして--checkと--diffを付けてコピーモジュールを実行します。この方法は、大企業全体のファイルの相違点を特定するのに最も役立ちます。

ラン:

ansible all -m copy -a "src=hosts.new dest=/tmp/hosts.mod" --check --diff -i hosts 

出力:説明について

--- before: /tmp/hosts.mod 
+++ after: /home/ansible/hosts.new 
@@ -1,5 +1,5 @@ 
host1 
+host2 
host3 
host4 
-host6 
-host99 
+host5 

test10 | SUCCESS => { 
    "changed": true, 
    "failed": false 
} 
関連する問題