Anonymous Dynamic Inventory - menghasilkan inventaris dengan alamat ip di bawah tag tertentu dengan garis bawah, bukan titik


11

Saya baru mengenal Ansible. Ketika saya menggunakan ec2.pyinventaris dinamis untuk menghasilkan inventaris, setelah playbook selesai dijalankan, hasilnya ditampilkan sebagai daftar alamat IP di bawah tag tertentu dengan garis bawah, bukan titik. Misalnya saya ingin menjalankan buku pedoman pada contoh dengan tag tertentu, saya ingin tahu bagaimana orang lain bekerja dengan alamat IP?

---
- hosts: tag_test_staging
  sudo: true
  tasks:
  - name: Make sure that we can connect to the machine
    ping:

    PLAY RECAP *********************************************************************
    10_80_20_47                : ok=0    changed=0    unreachable=1    failed=0 

Untuk alamat pribadi, ec2.ini:

hostname_variable = private_ip_address
destination_variable = private_ip_address
vpc_destination_variable = private_ip_address

Hasil dari ec2.py:

 "tag_test_staging": [
    "10_80_20_47"
  ],

Untuk Alamat Publik, ec2.ini:

hostname_variable = ip_address
destination_variable = public_dns_name
vpc_destination_variable = ip_address

Hasil dari ec2.py:

 "tag_test_staging": [
    "52_28_11_11"
  ],

Mengapa penting bagi Anda bahwa nama yang diberikan skrip masing-masing host memiliki garis bawah untuk karakter non-alfanumerik?
Assaf Lavie

Ini tampaknya menjadi pertanyaan sentris-alat yang sangat spesifik. Ada ServerFault untuk itu, dan pada topiknya ada serverfault.com/help/on-topic . Tidak yakin bagaimana pada topik di sini, jika sama sekali.
Evgeny

@ Evgeny, tidak yakin saya mengerti apa maksud Anda, apa gunanya http://devops.stackexchange.comjika Anda tidak bertanya? bukankah itu pertanyaan DevOps?
Berlin

Jawaban:


5

Ini berfungsi jika saya mengomentari hostname_variable, karena itu memungkinkan untuk menimpa inventory_name dengan variabel ec2, daripada menggunakan destination_variable

#hostname_variable = private_ip_address
#hostname_variable = ip_address
destination_variable = public_dns_name
vpc_destination_variable = private_ip_address

Untuk IP Pribadi:

destination_variable = private_ip_address

Sayangnya, saya melihat perilaku yang sama, dan mengomentari hostname_variable tidak memperbaikinya.
Todd Walton

Namun .... Saya sudah beberapa kali memperhatikan bahwa mengganti file ini dan menjalankan kembali ec2.py tidak akan segera mengembalikan informasi yang benar. AF aneh, kan? Tetapi setelah beberapa kali mencobanya dan mencobanya dan mencobanya, setelah sekitar 20 menit tiba-tiba mulai mengembalikan alamat IP dengan titik-titik bukannya garis bawah! Saya tidak tahu.
Todd Walton

Apakah Anda tahu apa yang bisa saya lakukan jika saya ingin membuat suatu kondisi? mis. vpc_destination_variable: "{{ip_address if ec2_platform == 'windows' else private_ip_address}}"
Nimitack

0

Saya memiliki masalah yang sama. Saya mendapatkan kembali alamat ip dengan garis bawah, bukan titik. Tetapi saya sudah beberapa kali memperhatikan bahwa mengganti file ini dan menjalankan kembali ec2.py tidak akan segera mengembalikan informasi yang benar. Setelah saya berubah ke private_ip_address dan itu terus mengembalikan private_dns_name untuk sementara waktu. Kali ini, setelah berganti ke private_ip_address dan menjalankannya kembali beberapa kali - mencobanya dan mencobanya dan mencobanya - setelah sekitar 20 menit tiba-tiba mulai mengembalikan alamat IP dengan titik-titik alih-alih menggarisbawahi! Saya tidak tahu. AF aneh, kan?


Kedengarannya seperti "masalah" caching. Sudahkah Anda mencoba mengubah parameter 'cache_max_age' di ec2.ini?
Malte

Anda mungkin sepenuhnya benar. Saya hanya melihat itu hari ini, sebenarnya. Anda dapat menjalankan "./ec2.py --refresh-cache".
Todd Walton
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.