Inventario dinamico sensibile: genera l'inventario con indirizzi IP con tag specifico con trattino basso anziché punto


11

Sono nuovo di Ansible. Quando utilizzo l' ec2.pyinventario dinamico per generare l'inventario, al termine dell'esecuzione del playbook, i risultati vengono visualizzati come elenco di indirizzi IP sotto un tag specifico con trattino di sottolineatura anziché punto. Ad esempio, voglio eseguire un playbook su istanze con tag specifico, mi chiedo come le altre persone lavorano con indirizzi 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 

Per indirizzo privato, ec2.ini:

hostname_variable = private_ip_address
destination_variable = private_ip_address
vpc_destination_variable = private_ip_address

I risultati di ec2.py:

 "tag_test_staging": [
    "10_80_20_47"
  ],

Per indirizzo pubblico, ec2.ini:

hostname_variable = ip_address
destination_variable = public_dns_name
vpc_destination_variable = ip_address

I risultati di ec2.py:

 "tag_test_staging": [
    "52_28_11_11"
  ],

Perché ti importa che il nome che lo script assegna a ogni host abbia caratteri di sottolineatura per caratteri non alfanumerici?
Assaf Lavie

Questa sembra essere una domanda incentrata sugli strumenti molto specifica. C'è ServerFault per questo, e sul suo argomento c'è serverfault.com/help/on-topic . Non sono sicuro di come sull'argomento qui, per niente.
Evgeny

@Evgeny, non sono sicuro di aver capito cosa intendi, a che serve http://devops.stackexchange.comse non fai domande? non è una domanda DevOps?
Berlino,

Risposte:


5

Funziona se commento l'hostname_variable, perché consente di sovrascrivere nome_inventario con una variabile ec2, invece di usare destination_variable

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

Per IP privati:

destination_variable = private_ip_address

Ahimè, sto vedendo lo stesso comportamento e commentare hostname_variable non lo corregge.
Todd Walton,

Tuttavia .... ho notato diverse volte che cambiare il file ini e rieseguire ec2.py non restituirà immediatamente le informazioni corrette. Strano AF, vero? Ma dopo averlo provato più volte, provandolo e provandolo, dopo circa 20 minuti ha iniziato improvvisamente a restituire gli indirizzi IP con punti anziché caratteri di sottolineatura! Non so.
Todd Walton,

Sai cosa posso fare se voglio creare una condizione? es. vpc_destination_variable: "{{indirizzo_ip se ec2_platform == 'windows' else private_ip_address}}"
Nimitack il

0

Ho avuto lo stesso problema. Stavo recuperando gli indirizzi IP con caratteri di sottolineatura anziché punti. Ma ho notato diverse volte che cambiare il file ini e rieseguire ec2.py non restituirà immediatamente le informazioni corrette. Una volta sono passato a private_ip_address e ha continuato a restituire private_dns_name per un po '. Questa volta, dopo essere passato a indirizzo_ip_priviso e averlo rieseguito più volte - provandolo e provandolo e provandolo - dopo circa 20 minuti ha iniziato improvvisamente a restituire gli indirizzi IP con punti anziché caratteri di sottolineatura! Non so. Strano AF, vero?


Sembra un "problema" di memorizzazione nella cache. Hai provato a modificare il parametro 'cache_max_age' in ec2.ini?
malte,

Probabilmente hai perfettamente ragione. Lo stavo guardando oggi, in realtà. È possibile eseguire "./ec2.py --refresh-cache".
Todd Walton,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.