Webサーバーをセットアップするプレイブックがあります。そして、このプレイブックでは、データベースサーバーのローカルネットワークのIPアドレスを知りたいです。
私がインベントリファイルに持っているこのすべてのサーバー。
どうすればいいですか?
Hostvarsを使用しようとしましたが、ローカルサーバーのファクトしかありません。
Hostvarsを使用してリモートサーバー上の変数を参照することが可能です。たとえば、Webサーバーグループ内のサーバーでプレイを実行しているとします。次のように、プレイブックでデータベースサーバー上の変数を参照できます。
{{ hostvars['db-server.example.com']['ansible_default_ipv4']['address'] }}
これが機能するためには、現在のプレイまたはプレイブックの上位にある別のプレイですでにdb-server.example.comと話している必要があることに注意してください。 Ansible 1.8(執筆時点ではまだ開発中)は、オプションの ファクトキャッシング を実装することでこれを修正します。これにより、プレイブックの実行間でファクトを保存できます。