Jestem nowy w Ansible. Kiedy używam ec2.py
dynamicznej inwentaryzacji do generowania ekwipunku, po zakończeniu playbooka wyniki są wyświetlane jako lista adresów IP pod określonym znacznikiem z podkreśleniem zamiast kropki. Na przykład chcę uruchomić playbook na instancjach z określonym znacznikiem, zastanawiam się, jak inne osoby pracują z adresami 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
W przypadku adresu prywatnego ec2.ini:
hostname_variable = private_ip_address
destination_variable = private_ip_address
vpc_destination_variable = private_ip_address
Wyniki z ec2.py:
"tag_test_staging": [
"10_80_20_47"
],
W przypadku adresu publicznego ec2.ini:
hostname_variable = ip_address
destination_variable = public_dns_name
vpc_destination_variable = ip_address
Wyniki z ec2.py:
"tag_test_staging": [
"52_28_11_11"
],
http://devops.stackexchange.com
jeśli nie zadajesz pytań? czy to nie jest pytanie DevOps?Odpowiedzi:
Działa, jeśli skomentuję zmienną nazwa_hosta, ponieważ pozwala na zastąpienie nazwy_zasobu zmienną ec2 zamiast używania zmiennej_docelowej
W przypadku prywatnych adresów IP:
źródło
Miałem ten sam problem. Otrzymywałem adresy IP z podkreśleniami zamiast kropek. Ale już kilka razy zauważyłem, że zmiana pliku ini i ponowne uruchomienie ec2.py nie zwróci natychmiast poprawnych informacji. Kiedyś zmieniłem na private_ip_address i przez jakiś czas zwracał private_dns_name. Tym razem po zmianie na adres prywatny_ip i ponownym uruchomieniu go kilka razy - próbując i próbując - i po około 20 minutach nagle zaczął zwracać adresy IP kropkami zamiast podkreślników! Nie wiem. Dziwny AF, prawda?
źródło