简体   繁体   中英

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. The first example below (not using Tower) includes all of the block_device_mapping information that I use in subsequent tasks.

This is a big issue I were to use Tower in the long run. 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. But I am baffled. Thanks!

Ansible Version - ansible 2.2.0.0 (running on Ubuntu)

Ansible Tower Version - Tower Version 3.0.3 (running on Centos)

---examples below----

-Ansible (not using 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)

  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.

As of today, official Ansible Tower Vagrant box (ansible/tower (virtualbox, 3.0.3)) has ver 2.1.2 inside:

[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.
So update Ansible on your Tower box or apply this patch.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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