AnsibleのEC2 External InventoryでEC2インスタンスの情報を取得したとき、デフォルトのままだと以下のようにIPアドレスがパブリックIPで表示されるかと思います。
$ ./ec2.py
{
"_meta": {
"ap-northeast-1a": [
"54.xxx.xxx.xxx",
"13.yyy.yyy.yyy"
],
"tag_Name_kabegiwa_ansible_server": [
"54.xxx.xxx.xxx"
],
"tag_Name_kabegiwa_ansible_client": [
"13.yyy.yyy.yyy"
]
そして、パブリックIPを設定していないインスタンスについては情報がとれていませんでした。
解決法
設定ファイルであるec2.iniのvpc_destination_variableをprivate_ip_addressに変更したところ、うまくいきました。
以下のように変更
vpc_destination_variable = private_ip_address # vpc_destination_variable = ip_address
こんなかんじで無事に表示されるようになります。
$ ./ec2.py
{
"_meta": {
"ap-northeast-1a": [
"172.140.1.1",
"172.140.1.2",
"172.140.1.3"
],
"tag_Name_kabegiwa_ansible_server": [
"172.140.1.1"
],
"tag_Name_kabegiwa_ansible_client": [
"172.140.1.2"
],
"tag_Name_kabegiwa_private": [
"172.140.1.3"
]
おわりに
以下のように両方設定を残してしまうと下にある項目の設定になってしまうようです。(パブリックIPしか表示されないような状態になってしまう)
vpc_destination_variable = private_ip_address vpc_destination_variable = ip_address

- 作者: 廣川英寿
- 出版社/メーカー: 株式会社リアルグローブ
- 発売日: 2016/05/23
- メディア: Kindle版
- この商品を含むブログを見る