ホームオフィス用に ansible 1.9.4 を使用して、非常にハックな vm 展開環境をセットアップしようとしています。
私はかなり遠いですが、最後のステップはうまくいきません. ステージング vlan の一時的な dns 名を生成する 10loc プラグインを作成しており、その値をホストとして次の Playbook ロールに渡したいと考えています。
タスク: [localhost-eval | debug msg="{{ hostvars['127.0.0.1'].dns_record.stdout_lines }}"] *** わかりました: [127.0.0.1] => { "msg": "['vm103.local', 'vm-tmp103.local']" }
hostvars を介して、グローバル Playbook スコープでアクセスできます。
{{ hostvars['127.0.0.1'].dns_record.stdout_lines[1] }}
そして、以下に渡す必要があります:
- 名前: VM テンプレートの構成 ホスト: "{{ hostvars['127.0.0.1'].dns_record.stdout_lines[1] }}" 収集_事実: いいえ 役割: - テンプレート-vm-configure
結果は次のとおりです。
PLAY [configure vm template] **************************************************
skipping: no hosts matched
私の在庫はこのように見え、うまくいくようです。「vm-tmp103.local」をハードコーディングすると、ロールが実行されます。
[vm]
vm[001:200].local
[vm-tmp]
vm-tmp[001:200].local
よろしくお願いします。うまくいけば、誰かが私を正しい方向に向けることができます。プラン B は、構成を確定するために dns レコードを bash スクリプトに渡すことで構成されます。これは、vm を監視に追加する前にネットワーク インターフェイスを構成するだけであるためです。
編集:ホストを追加してそれらを一時グループに追加するようにプレイを変更しました - add_host: name={{ hostvars['127.0.0.1'].dns_record.stdout_lines[1] }} groups=just_vm
しかし、まだ一致しません。