当我不在Ansible Tower上运行时,ec2-remote-facts模块正常工作。下面的第一个示例(不使用Tower)包括我在后续任务中使用的所有block_device_mapping信息。
从长远来看,这是一个很大的问题。我的代码对于这两个例子都是一样的。任何可能导致我朝着正确方向前进的想法。
我唯一想到的是,由于它不是核心模块,因此Ansible Tower不能完美地同步到模块的最新代码。但我很困惑。谢谢!
Ansible Version - ansible 2.2.0.0(在Ubuntu上运行)
Ansible Tower Version - Tower Version 3.0.3(在Centos上运行)
---以下示例----
- 无法使用(不使用塔) -
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(注意它缺少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"
},
答案 0 :(得分:1)
我猜你的塔盒上确实有旧的Ansible版本。
截至今日,官方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
ec2_remote_facts
在此版本中没有block_device_mapping
因此,请更新Tower塔上的Ansible或应用this补丁。