Ansible: Inventaris dinamis AWS Skrip Python gagal dijalankan

Dibuat pada 19 Agu 2016  ·  2Komentar  ·  Sumber: ansible/ansible

JENIS MASALAH
  • Laporan Bug
    NAMA KOMPONEN

Inventaris Dinamis: ec2.py

VERSI ANSIBLE
ansible 2.1.0.0
Python 2.7.10
OS / LINGKUNGAN

Mac OS X 10.11.6

RINGKASAN

Menjalankan ec2.py standalone menyebabkan kesalahan impor.

LANGKAH UNTUK REPRODUKSI
  1. Unduh ec2.py skrip inventaris dinamis dan file ec2.ini seperti yang diperintahkan dalam dokumen .
  2. Jalankan skrip dengan Python 2.7
python ec2.py --list
Traceback (most recent call last):
  File "ec2.py", line 134, in <module>
    from ansible.module_utils import ec2 as ec2_utils
ImportError: No module named ansible.module_utils
HASIL YANG DIHARAPKAN

Daftar contoh

HASIL NYATA

Kesalahan di atas.

Solusi

Jika saya mengomentari baris from ansible.module_utils import ec2 as ec2_utils skrip berjalan dengan baik.

Garis itu diperkenalkan pada # 16606.

aws bug cloud

Komentar yang paling membantu

Senang mendengarnya bukan bug. Apakah ini dijelaskan di suatu tempat di dokumentasi?

Saya menemukan apa yang menyebabkannya di akhir saya: menginstal Ansible dengan brew membuat mungkin tidak tersedia untuk penerjemah Python saya.

Untuk memperbaikinya, saya menghapus Ansible dan menginstalnya lagi menggunakan pip:

brew uninstall ansible
pip install ansible

Sekarang ansible tersedia:

python -c "import ansible;print(ansible.__version__)"
2.1.1.0

dan skrip berfungsi seperti yang diharapkan.

Mungkin ada baiknya menyebutkan ini di suatu tempat di dokumentasi, atau meminta skrip menampilkan kesalahan informatif jika ansible tidak tersedia di jalur python.

Semua 2 komentar

@jonatanblue impor itu ditambahkan oleh https://github.com/ansible/ansible/commit/59e499f8f00e4068b68c147b8f3002535ad706e0 yang tampaknya merupakan upaya untuk menormalkan kode penyiapan klien boto.

Implikasinya adalah bahwa untuk menggunakan skrip inventaris, Anda harus menginstal sebuahsible pada mesin sehingga "ansible" tersedia di jalur python untuk interpreter python default Anda. Kami berencana untuk memanfaatkan lebih banyak pustaka yang memungkinkan dalam skrip inventaris dinamis dari waktu ke waktu, jadi saya tidak akan mengembalikan perubahan ini.

Senang mendengarnya bukan bug. Apakah ini dijelaskan di suatu tempat di dokumentasi?

Saya menemukan apa yang menyebabkannya di akhir saya: menginstal Ansible dengan brew membuat mungkin tidak tersedia untuk penerjemah Python saya.

Untuk memperbaikinya, saya menghapus Ansible dan menginstalnya lagi menggunakan pip:

brew uninstall ansible
pip install ansible

Sekarang ansible tersedia:

python -c "import ansible;print(ansible.__version__)"
2.1.1.0

dan skrip berfungsi seperti yang diharapkan.

Mungkin ada baiknya menyebutkan ini di suatu tempat di dokumentasi, atau meminta skrip menampilkan kesalahan informatif jika ansible tidak tersedia di jalur python.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat