web-dev-qa-db-ja.com

ansibleでリモートサーバーの事実を取得する方法

Webサーバーをセットアップするプレイブックがあります。そして、このプレイブックでは、データベースサーバーのローカルネットワークのIPアドレスを知りたいです。

私がインベントリファイルに持っているこのすべてのサーバー。

どうすればいいですか?

Hostvarsを使用しようとしましたが、ローカルサーバーのファクトしかありません。

4
Falcon

ホスト変数とリモート変数

Hostvarsを使用してリモートサーバー上の変数を参照することが可能です。たとえば、Webサーバーグループ内のサーバーでプレイを実行しているとします。次のように、プレイブックでデータベースサーバー上の変数を参照できます。

{{ hostvars['db-server.example.com']['ansible_default_ipv4']['address'] }}

これが機能するためには、現在のプレイまたはプレイブックの上位にある別のプレイですでにdb-server.example.comと話している必要があることに注意してください。 Ansible 1.8(執筆時点ではまだ開発中)は、オプションの ファクトキャッシング を実装することでこれを修正します。これにより、プレイブックの実行間でファクトを保存できます。

3
Philip Wilson