简体   繁体   English

Ansible Tower 未在 ec2-remote-facts 模块中正确注册变量

[英]Ansible Tower is not registering variable correctly in ec2-remote-facts module

The ec2-remote-facts module works correctly when I do not run it on Ansible Tower.当我不在 Ansible Tower 上运行 ec2-remote-facts 模块时,它可以正常工作。 The first example below (not using Tower) includes all of the block_device_mapping information that I use in subsequent tasks.下面的第一个示例(不使用 Tower)包括我在后续任务中使用的所有 block_device_mapping 信息。

This is a big issue I were to use Tower in the long run.从长远来看,这是我要使用 Tower 的一个大问题。 My code is the same for both examples.我的代码对于两个示例都是相同的。 Any thoughts that could lead me in the right direction.任何可以引导我走向正确方向的想法。

My only thought is that since it is not a core module, Ansible Tower is not synced to the module's most recent code perfectly.我唯一的想法是,由于它不是核心模块,Ansible Tower 没有完美地同步到模块的最新代码。 But I am baffled.但我很困惑。 Thanks!谢谢!

Ansible Version - ansible 2.2.0.0 (running on Ubuntu) Ansible 版本 - ansible 2.2.0.0(在 Ubuntu 上运行)

Ansible Tower Version - Tower Version 3.0.3 (running on Centos) Ansible Tower 版本 - Tower 版本 3.0.3(在 Centos 上运行)

---examples below---- ---下面的例子----

-Ansible (not using Tower)- -Ansible(不使用 Tower)-

ok: [localhost -> localhost] => {
"changed": false,
"instances": [
    {
        "ami_launch_index": "0",
        "architecture": "x86_64",
        "block_device_mapping": [
            {
                "attach_time": "2017-01-13T17:05:31.000Z",
                "delete_on_termination": false,
                "device_name": "/dev/sdb",
                "status": "attached",
                "volume_id": "vol-132312313212313"
            },
            {
                "attach_time": "2017-01-13T17:05:31.000Z",
                "delete_on_termination": true,
                "device_name": "/dev/sda1",
                "status": "attached",
                "volume_id": "vol-123123123123"
            },
            {
                "attach_time": "2017-01-13T17:05:31.000Z",
                "delete_on_termination": false,
                "device_name": "/dev/sdc",
                "status": "attached",
                "volume_id": "vol-123123123123"
            }
        ],
        "client_token": "",
        "ebs_optimized": false,
        "groups": [
            {
                "id": "sg-12312313",
                "name": "n123123123
            }
        ],
        "hypervisor": "xen",
        "id": "i-123123123123",
        "image_id": "ami-123123123123",
        "instance_profile": null,
        "interfaces": [
            {
                "id": "eni-123123123",
                "mac_address": "123123123"
            }
        ],
        "kernel": null,
        "key_name": "my-v123123",
        "launch_time": "2017-01-13T17:05:30.000Z",
        "monitoring_state": "disabled",
        "persistent": false,
        "placement": {
            "tenancy": "default",
            "zone": "us-east-1b"
        },
        "private_dns_name": "ip-112312312",
        "private_ip_address": "10.1.1.4",
        "public_dns_name": "",
        "public_ip_address": null,
        "ramdisk": null,
        "region": "us-east-1",
        "requester_id": null,
        "root_device_type": "ebs",
        "source_destination_check": "true",
        "spot_instance_request_id": null,
        "state": "running",
        "tags": {
            "CurrentIP": "10.1.1.1.4",
            "Name": "d1",
            "Type": "d2"
        },
        "virtualization_type": "hvm",
        "vpc_id": "vpc-123123123"
    },

Ansible Tower (notice that its missing the block_device_mapping block of code) Ansible Tower(注意它缺少 block_device_mapping 代码块)

  TASK [debug]  **********************
  ok: [localhost] => {
"db_id.instances": [
    {
        "ami_launch_index": "0", 
        "architecture": "x86_64", 
        "client_token": "", 
        "ebs_optimized": false, 
        "groups": [
            {
                "id": "sg-123123", 
                "name": "n123123123"
            }
        ], 
        "hypervisor": "xen", 
        "id": "i-123123123", 
        "image_id": "ami-123123", 
        "instance_profile": null, 
        "interfaces": [
            {
                "id": "eni-123123123", 
                "mac_address": "123123123"
            }
        ], 
        "kernel": null, 
        "key_name": "m123123", 
        "launch_time": "2017-01-13T17:05:30.000Z", 
        "monitoring_state": "disabled", 
        "persistent": false, 
        "placement": {
            "tenancy": "default", 
            "zone": "us-east-1b"
        }, 
        "private_dns_name": "ip-1123123123123", 
        "private_ip_address": "10.1.1.4", 
        "public_dns_name": "", 
        "ramdisk": null, 
        "region": "us-east-1", 
        "requester_id": null, 
        "root_device_type": "ebs", 
        "source_destination_check": "true", 
        "spot_instance_request_id": null, 
        "state": "running", 
        "tags": {
            "Name": "123123", 
            "Type": "123123"
        }, 
        "virtualization_type": "hvm", 
        "vpc_id": "vpc-123123123"
    }, 

I guess you indeed have old Ansible version on your Tower box.我猜你的 Tower 盒子上确实有旧的 Ansible 版本。

As of today, official Ansible Tower Vagrant box (ansible/tower (virtualbox, 3.0.3)) has ver 2.1.2 inside:截至今天,官方 Ansible Tower Vagrant 盒子(ansible/tower (virtualbox, 3.0.3))里面有 2.1.2 版:

[vagrant@ansible-tower ~]$ ansible --version
ansible 2.1.2.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/o overrides

And ec2_remote_facts has no block_device_mapping in this version.ec2_remote_facts在这个版本中没有block_device_mapping
So update Ansible on your Tower box or apply this patch.因此,请在您的 Tower 盒上更新 Ansible 或应用补丁。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM