Ansible: Informe de error: el módulo ec2 está roto con "¡ERROR! Falta la línea de intérprete del módulo"

Creado en 14 oct. 2015  ·  3Comentarios  ·  Fuente: ansible/ansible

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"}
bug

Comentario más útil

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!

Todos 3 comentarios

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!

¿Fue útil esta página
0 / 5 - 0 calificaciones