ホストを定義せずに1つのプレイブックを別のプレイブックにインポートする

ホストを定義せずに1つのプレイブックを別のプレイブックにインポートする

私はAnsibleを使って作業の1つとしてさまざまなプレイブックを含むプレイブックを作成しようとしています。

明確に言えば、このプレイブックはLinuxサーバーを展開するためのものであり、ステップの1つはgitリポジトリを複製することです。

インポート時に(import_tasks、およびinclude_tasksimport_playbook使用してみましたinclude_playbook)Ansibleは次のエラーを返します。

ERROR! conflicting action statements: hosts, gather_facts

もちろん、gitプレイブックを編集してステートメントをリモートで実行すると、インポートはhosts問題なく動作します。

ただし、git cloneは(対応するリポジトリを同期状態に保つために)独立して実行する必要があるため、対応するディレクティブもhosts含める必要があります。

私は、本質的にプレイブックをインポートしたホストではなく、プレイブックをインポートしたホストを使用してプレイブックタスクをインポートする方法を探しています。

単にgitプレイブックからホストディレクティブを削除して他のプレイブックを介して呼び出すことができますが、より簡単な方法があるかどうか疑問に思うか、正しい構文が見つからない可能性があります。

ホストなしでプレイブックの仕事をインポートする簡単な方法はありますか?

ありがとうございます!

答え1

hosts:そしてgather_facts:ポールの上にのみ存在することができる。

あなたはする必要があります

  1. ターゲットサーバーに接続する役割でプレイブックを作成します。
  2. 競合するドアを削除し、delegate_to:プレイブックの操作を含めるときに使用してください。

関連情報