Ansible Dynamic Inventory - генеруйте інвентар з ip-адресами під певним тегом із підкресленням замість крапки


11

Я новачок у Ansible. Коли я використовую ec2.pyдинамічний інвентар для генерування рекламних ресурсів, після закінчення запуску ігрової книги результати відображаються у вигляді списку IP-адрес під певним тегом із підкресленням замість крапки. Наприклад, я хочу запустити ігрову книгу в екземплярах із певним тегом, мені цікаво, як інші люди працюють з 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 

Для приватної адреси, ec2.ini:

hostname_variable = private_ip_address
destination_variable = private_ip_address
vpc_destination_variable = private_ip_address

Результати роботи ec2.py:

 "tag_test_staging": [
    "10_80_20_47"
  ],

Для публічного звернення, ec2.ini:

hostname_variable = ip_address
destination_variable = public_dns_name
vpc_destination_variable = ip_address

Результати роботи ec2.py:

 "tag_test_staging": [
    "52_28_11_11"
  ],

Чому для вас важливо, що ім'я, яке дає сценарій кожному хосту, має підкреслення для не буквено-цифрових символів?
Ассаф Лав'є

Це здається дуже специфічним питанням, орієнтованим на інструментарій. Для цього є ServerFault, і його тематика існує serverfault.com/help/on-topic . Не впевнений, наскільки тут тема, якщо взагалі.
Євгеній

@ Євгеній, не впевнений, я розумію, що ти маєш на увазі, в чому сенс, http://devops.stackexchange.comякщо ти не задаєш питань? це не питання DevOps?
Берлін

Відповіді:


5

Він працює, якщо я коментую ім'я хоста_переменного, тому що він дозволяє переосмислити ім'я інвентаря змінною ec2, замість того, щоб використовувати destinavariable

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

Для приватних IP-адрес:

destination_variable = private_ip_address

На жаль, я бачу таку саму поведінку, і коментуючи ім'я хоста_переменного не виправляє це.
Тодд Уолтон

Однак .... Я вже кілька разів помічав, що зміна файлу ini та повторний запуск ec2.py не одразу поверне правильну інформацію. Дивний AF, правда? Але після декількох разів спробувавши його та спробувавши, приблизно через 20 хвилин він раптом почав повертати IP-адреси з крапками, а не підкресленнями! Я не знаю.
Тодд Уолтон

Чи знаєте ви, що я можу зробити, якщо хочу зробити умову? наприклад, vpc_destination_variable: "{{ip_address if ec2_platform == 'windows' else private_ip_address}}"
Nimitack

0

У мене було те саме питання. Я повертав ip адреси з підкресленнями, а не крапками. Але я вже декілька разів помічав, що зміна файлу ini та повторний запуск ec2.py не одразу поверне правильну інформацію. Одного разу я змінив на private_ip_address, і він деякий час повертався до private_dns_name. Цього разу, змінивши на private_ip_address та повторно запустивши його кілька разів - спробувавши його та спробувавши - приблизно через 20 хвилин він раптом почав повертати IP-адреси з крапками, а не підкресленнями! Я не знаю. Дивний AF, правда?


Звучить як "проблема" кешування. Ви намагалися змінити параметр 'cache_max_age' в ec2.ini?
мальте

Ви, мабуть, абсолютно праві. Я просто дивився на це сьогодні, власне. Ви можете запустити "./ec2.py --refresh-cache".
Тодд Уолтон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.