Ansible Dinamik Envanter - nokta yerine alt çizgi ile belirli etiket altında ip adresleri ile envanter oluşturun


11

Ansible'da yeniyim. ec2.pyEnvanter oluşturmak için dinamik envanter kullandığımda, çalışma kitabının çalışması bittikten sonra, sonuçlar nokta yerine alt çizgi içeren belirli bir etiket altındaki IP adresleri listesi olarak gösterilir. Örneğin, belirli etiketi olan örneklerde bir oynatma kitabı çalıştırmak istiyorum, diğer kişilerin IP adresleriyle nasıl çalıştığını merak ediyorum?

---
- 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 

Özel adres için ec2.ini:

hostname_variable = private_ip_address
destination_variable = private_ip_address
vpc_destination_variable = private_ip_address

Ec2.py sonuçları:

 "tag_test_staging": [
    "10_80_20_47"
  ],

Genel Adres için ec2.ini:

hostname_variable = ip_address
destination_variable = public_dns_name
vpc_destination_variable = ip_address

Ec2.py sonuçları:

 "tag_test_staging": [
    "52_28_11_11"
  ],

Komut dosyasının her ana bilgisayara verdiği adın alfasayısal olmayan karakterler için alt çizgileri olması neden sizin için önemli?
Assaf Lavie

Bu çok özel bir araç merkezli soru gibi görünüyor. Bunun için ServerFault ve onun konusundaki serverfault.com/help/on-topic var . Nasıl olursa olsun, burada nasıl emin değilim.
Evgeny

@Evgeny, ne demek istediğini anladığımdan emin değilim, soru sormazsan ne anlama geliyor http://devops.stackexchange.com? DevOps sorusu değil mi?
Berlin

Yanıtlar:


5

Ben host__değişken yorum yaparsanız çalışır, çünkü envanter_adı hedef_değişken yerine bir ec2 değişkeni ile geçersiz kılmaya izin verir

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

Özel IP'ler için:

destination_variable = private_ip_address

Ne yazık ki, ben aynı davranışı görüyorum ve hostname_variable yorum yapmak düzeltmez.
Todd Walton

Ancak .... Şimdi birkaç kez ini dosyasını değiştirme ve ec2.py yeniden çalışan hemen doğru bilgileri döndürmez fark ettim. Tuhaf AF, değil mi? Ancak birkaç kez denedikten ve denedikten ve denedikten sonra, yaklaşık 20 dakika sonra aniden alt çizgi yerine noktalarla IP adresleri döndürmeye başladı! Bilmiyorum.
Todd Walton

Koşul yapmak istersem ne yapabilirim biliyor musun? ör. vpc_destination_variable: "{{eğer ec2_platform == 'windows' else private_ip_address}} için
ip_adresi

0

Aynı sorunu yaşadım. Noktalar yerine alt çizgilerle ip adreslerini geri alıyordum. Ancak şimdi birkaç kez ini dosyasını değiştirmenin ve ec2.py'yi yeniden çalıştırmanın hemen doğru bilgileri döndürmeyeceğini fark ettim. Bir kez private_ip_address olarak değişti ve bir süre private_dns_name döndürmeye devam etti. Bu kez, private_ip_address'e geçip birkaç kez yeniden çalıştırdıktan sonra - denemek ve denemek ve denemek - yaklaşık 20 dakika sonra aniden alt çizgiler yerine noktalı IP adresleri döndürmeye başladı! Bilmiyorum. Tuhaf AF, değil mi?


Önbellek sorunu gibi görünüyor. Ec2.ini dosyasındaki 'cache_max_age' parametresini değiştirmeyi denediniz mi?
malte

Muhtemelen tamamen haklısın. Aslında bugün buna bakıyordum. "./Ec2.py --refresh-cache" komutunu çalıştırabilirsiniz.
Todd Walton
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.