Jenis Masalah:
Bug Report
Versi yang Mungkin:
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
Konfigurasi yang Mungkin:
Masalah muncul bahkan dengan versi github dari ansible.cfg
Lingkungan Hidup:
MacOSX Yosemite 10.10.5
Ringkasan:
Dalam pengembangan terbaru, penggunaan modul ec2 rusak. Mencoba menggunakan bahkan contoh dasar dari ec2_module -page menghasilkan pesan:
fatal: [localhost]: FAILED! => {"failed": true, "msg": "ERROR! module is missing interpreter line"}
Kesalahan terjadi bahkan sebelum opsi modul diuraikan.
Fungsionalitas telah rusak sejak komit 18e2ee16ef0895831ead312550eb5de44c99524c. Saya tidak bisa menguraikan mengapa komit itu merusak modul ec2.
Langkah-langkah untuk Mereproduksi:
- 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
Hasil yang diharapkan:
Modul ec2 harus berfungsi seperti sebelumnya dan memungkinkan pembuatan instance.
Hasil nyata:
Kesalahan berikut dicetak dan eksekusi pedoman berakhir.
fatal: [localhost -> localhost]: FAILED! => {"failed": true, "msg": "ERROR! module is missing interpreter line"}
Tidak dapat mereplikasi. Kesalahan ini menunjukkan bahwa modul tidak memiliki jalur yang diperlukan, tetapi kenyataannya: https://github.com/ansible/ansible-modules-core/blob/devel/cloud/amazon/ec2.py#L1
Mungkin karena masalah jalur dan / atau masalah penyiapan. Apakah ini terjadi dengan modul lain?
OSX: 10.10.2
HEAD yang diuji:
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
Komit yang Diuji: 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
PLAYBOOK:
- 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
Saya akhirnya memecahkan bug tersebut. Saya memiliki ec2.ini di 'library' -directory dan untuk beberapa alasan seorang mungkin mengambilnya ketika mencari ec2 -module. Mengganti nama ec2.ini menjadi ec2_dynamic_inventory.ini dan menjalankan 'export EC2_INI_PATH = library / ec2_dynamic_inventory.ini' memperbaiki masalah.
Sekadar catatan, Anda bisa mendapatkan kesalahan ini jika Anda melewatkan:
#!/usr/bin/python
hashbang di bagian atas file modul Anda. Mungkin hanya relevan untuk orang yang mengembangkan modul mereka sendiri. Tapi itu membuat saya tersandung!
Komentar yang paling membantu
Sekadar catatan, Anda bisa mendapatkan kesalahan ini jika Anda melewatkan:
hashbang di bagian atas file modul Anda. Mungkin hanya relevan untuk orang yang mengembangkan modul mereka sendiri. Tapi itu membuat saya tersandung!