Tipo de problema:
Bug Report
Versión Ansible:
ansible 2.0.0 (devel 2963bba901) last updated 2015/10/14 15:07:35 (GMT +300)
lib/ansible/modules/core: (devel 95b10c9fdd) last updated 2015/10/14 10:52:54 (GMT +300)
lib/ansible/modules/extras: (devel 15480e3d04) last updated 2015/10/14 10:52:56 (GMT +300)
config file = /etc/ansible/ansible.cfg
configured module search path = None
Configuración de Ansible:
El problema existe incluso con la versión github de ansible.cfg
Ambiente:
MacOSX Yosemite 10.10.5
Resumen:
En el desarrollo más reciente, el uso del módulo ec2 está roto. Intentar usar incluso los ejemplos básicos de la página ec2_module produce un mensaje:
fatal: [localhost]: FAILED! => {"failed": true, "msg": "ERROR! module is missing interpreter line"}
El error ocurre incluso antes de que se analicen las opciones del módulo.
La funcionalidad se ha roto desde la confirmación 18e2ee16ef0895831ead312550eb5de44c99524c. No pude descifrar por qué esa confirmación rompió el módulo ec2.
Pasos para reproducir:
- hosts: localhost
tasks:
- ec2:
key_name: mykey
instance_type: t2.micro
image: ami-123456
wait: yes
group: webserver
count: 3
vpc_subnet_id: subnet-29e63245
assign_public_ip: yes
Resultados previstos:
Los módulos ec2 deberían funcionar como antes y permitir la creación de instancias.
Resultados actuales:
Se imprime el siguiente error y finaliza la ejecución del libro de jugadas.
fatal: [localhost -> localhost]: FAILED! => {"failed": true, "msg": "ERROR! module is missing interpreter line"}
No se puede replicar. Este error indica que el módulo no tiene la ruta requerida, pero de hecho la tiene: https://github.com/ansible/ansible-modules-core/blob/devel/cloud/amazon/ec2.py#L1
Puede deberse a un problema de ruta o de configuración. ¿Ocurre esto con otros módulos?
OSX: 10.10.2
CABEZAL probado:
PLAY ***************************************************************************
TASK [setup] *******************************************************************
ok: [localhost]
TASK [ec2 aws_secret_key=***** count=1 aws_access_key=****** group=All key_name=***** region=us-west-1 vpc_subnet_id=subnet-64e9d522 instance_type=t2.micro assign_public_ip=True image=ami-df6a8b9b wait=True] ***
changed: [localhost] => {"changed": true, "instance_ids": ["i-249c1196"], "instances": [{"ami_launch_index": "0", "architecture": "x86_64", "block_device_mapping": {"/dev/sda1": {"delete_on_termination": true, "status": "attached", "volume_id": "vol-c611fe3e"}}, "dns_name": "ec2-54-193-42-241.us-west-1.compute.amazonaws.com", "ebs_optimized": false, "groups": {"sg-f2953597": "All"}, "hypervisor": "xen", "id": "i-249c1196", "image_id": "ami-df6a8b9b", "instance_type": "t2.micro", "kernel": null, "key_name": "*****", "launch_time": "2015-10-20T05:02:16.000Z", "placement": "us-west-1a", "private_dns_name": "ip-172-31-10-161.us-west-1.compute.internal", "private_ip": "172.31.10.161", "public_dns_name": "ec2-54-193-42-241.us-west-1.compute.amazonaws.com", "public_ip": "54.193.42.241", "ramdisk": null, "region": "us-west-1", "root_device_name": "/dev/sda1", "root_device_type": "ebs", "state": "running", "state_code": 16, "tags": {}, "tenancy": "default", "virtualization_type": "hvm"}], "tagged_instances": []}
PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0
Compromiso probado: 18e2ee16ef0895831ead312550eb5de44c99524c
PLAY ***************************************************************************
TASK [setup] *******************************************************************
ok: [localhost]
TASK [ec2 aws_secret_key=***** count=1 aws_access_key=*****group=All key_name=***** region=us-west-1 vpc_subnet_id=subnet-64e9d522 instance_type=t2.micro assign_public_ip=True image=ami-df6a8b9b wait=True] ***
changed: [localhost] => {"changed": true, "instance_ids": ["i-9d911c2f"], "instances": [{"ami_launch_index": "0", "architecture": "x86_64", "block_device_mapping": {"/dev/sda1": {"delete_on_termination": true, "status": "attached", "volume_id": "vol-7468878c"}}, "dns_name": "ec2-54-193-61-87.us-west-1.compute.amazonaws.com", "ebs_optimized": false, "groups": {"sg-f2953597": "All"}, "hypervisor": "xen", "id": "i-9d911c2f", "image_id": "ami-df6a8b9b", "instance_type": "t2.micro", "kernel": null, "key_name": "*****", "launch_time": "2015-10-20T05:21:45.000Z", "placement": "us-west-1a", "private_dns_name": "ip-172-31-5-245.us-west-1.compute.internal", "private_ip": "172.31.5.245", "public_dns_name": "ec2-54-193-61-87.us-west-1.compute.amazonaws.com", "public_ip": "54.193.61.87", "ramdisk": null, "region": "us-west-1", "root_device_name": "/dev/sda1", "root_device_type": "ebs", "state": "running", "state_code": 16, "tags": {}, "tenancy": "default", "virtualization_type": "hvm"}], "tagged_instances": []}
PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0
LIBRO DE JUEGOS:
- hosts: localhost
connection: local
tasks:
- ec2:
aws_access_key: '*****'
aws_secret_key: '*****'
region: us-west-1
key_name: *****
instance_type: t2.micro
image: ami-df6a8b9b
wait: yes
group: All
count: 1
vpc_subnet_id: subnet-64e9d522
assign_public_ip: yes
Finalmente resolví el error. Tenía ec2.ini en el directorio 'biblioteca' y, por alguna razón, ansible lo estaba seleccionando cuando buscaba el módulo ec2. Cambiar el nombre de ec2.ini a ec2_dynamic_inventory.ini y ejecutar 'export EC2_INI_PATH = library / ec2_dynamic_inventory.ini' solucionó el problema.
Solo una nota, puede obtener este error si no tiene:
#!/usr/bin/python
hashbang en la parte superior de su archivo de módulo. Probablemente solo sea relevante para las personas que están desarrollando sus propios módulos. ¡Pero me hizo tropezar!
Comentario más útil
Solo una nota, puede obtener este error si no tiene:
hashbang en la parte superior de su archivo de módulo. Probablemente solo sea relevante para las personas que están desarrollando sus propios módulos. ¡Pero me hizo tropezar!