2016-05-12 7 views
6

私は、他のプレイブックを含むマスターのプレイブックを持っていたいと思います。そのプレイブックに変数を渡すことは可能ですか?含まれているプレイブックに変数を渡しますか?

含まタスクに変数を渡すために使用される通常の構文は動作しません

(下記参照)

- include: someplaybook.yml variable=value 

- include: someplaybook.yml 
    vars: 
    variable: value 

私はv2.0.2.0を実行していますよ。

+0

あなたは役割について知っていますか?正常に動作しない構文は何ですか? – Nasr

+1

私が知っている限り、変数は、プレイブック全体の実行時間の範囲内でグローバルであるため、任意のポイントで変数を定義するだけです。 – ydaetskcoR

+0

@Nasrはい私は役割について知っています - 。私は通常の構文を追加しました。 Anipalは、さまざまな型変数に対して異なるスコープを持ちます。単にset_factsを使用しても動作しません。 – CamHart

答えて

0

私が見逃しているのは引用符だけです。

- include: someplaybook.yml variable='value' 

これは私のために働くもので、あなたのためにも働くはずです。あなたが直面しているエラーを共有しない場合。

ロールのタスクにこの変数「変数」が定義されていることを確認してください。ここから、その変数に値を渡しているだけです。

+3

これはタスクが含まれています - プレイブックは含まれません。 – CamHart

+0

上記のコマンドには、プレイブックが含まれています。タスクによって意味されるものには何が含まれますか?この変数が使用されているコードを共有して、どのように使用するかについての詳細を知ることができますか? –

+2

プレイブックには、含まれているファイルに再生を含む場所が含まれます。つまり、それらのホストマシンで実行する「ホスト」マシンとロール/タスクを指定します。タスクには、実行するタスクを指定するだけです。 – CamHart

0

また、私は、あなたがこれを読んで http://docs.ansible.com/ansible/latest/playbooks_reuse.html を提案し、この場合の役割を使用してみてください、それはあなたが単一のメイン脚本で/インポート、複数のプレイブックを含めるようにしようとしている。このような場合に役立ちます。 そして、includeステートメントに値を渡すことについては、そのロールのvars main.ymlに値を追加することができます。 または、渡す変数が、単一のメインプレイブック内の前のタスクの結果である場合は、 'register'を使用して、出力を変数に保存します。ここ

- debug: msg="{{result.stdout_lines}}"

は、結果が登録された変数です。 デバッグモジュールを使用して、プレイブックに渡す内容を正確に把握します。 これが役立つことを願っています。

+1

私はこれを聞いていたときの正確な文脈を覚えていませんが、元の質問に対するコメントを読めば、これを解決する役割は使えないことがわかりました。私はすでにロールを使用していました。これはロールが扱えるものとは若干異なるユースケースでした。私は正確な細部を忘れる。 – CamHart

関連する問題