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"
  ],

스크립트가 각 호스트에 제공하는 이름에 영숫자가 아닌 문자에 밑줄이 있다는 것이 왜 중요합니까?
Assaf Lavie

이것은 매우 구체적인 도구 중심의 질문 인 것 같습니다. 이에 대한 ServerFault가 있으며 그 주제에 serverfault.com/help/on-topic이 있습니다. 여기서 어떻게 주제에 대해 잘 모르겠습니다.
Evgeny

@Evgeny, 나는 당신이 무엇을 의미하는지 이해하지 못하며, http://devops.stackexchange.com질문하지 않으면 요점은 무엇 입니까? 그것은 DevOps 질문이 아니십니까?
베를린

답변:


5

destination_variable을 사용하는 대신 inventory_name을 ec2 변수로 대체 할 수 있기 때문에 hostname_variable을 주석 처리하면 작동합니다.

#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

아아, 나는 같은 행동을보고 있으며 hostname_variable을 주석 처리해도 문제가 해결되지 않습니다.
Todd Walton

그러나 .... 이제 여러 번 ini 파일을 변경하고 ec2.py를 다시 실행해도 올바른 정보가 즉시 반환되지는 않습니다. 이상한 AF? 그러나 여러 번 시도하고 시도하고 시도한 후 약 20 분 후에 갑자기 밑줄 대신 점으로 IP 주소를 반환하기 시작했습니다! 난 몰라
토드 월튼

조건을 만들고 싶을 때 어떻게해야하는지 알고 있습니까? 예 : vpc_destination_variable : "{{ec2_platform의 경우 ip_address == 'windows'else private_ip_address}}"
Nimitack

0

나는 같은 문제가 있었다. 점 대신 밑줄로 IP 주소를 다시 가져 왔습니다. 그러나 몇 번이나 ini 파일을 변경하고 ec2.py를 다시 실행해도 올바른 정보가 즉시 반환되지는 않습니다. 일단 private_ip_address로 변경하고 잠시 동안 private_dns_name을 반환했습니다. 이번에는 private_ip_address로 변경하고 여러 번 다시 실행 한 후 시도하고 시도한 후 약 20 분 후에 갑자기 밑줄 대신 점으로 IP 주소를 반환하기 시작했습니다! 난 몰라 이상한 AF?


캐싱 "문제"처럼 들립니다. ec2.ini에서 'cache_max_age'매개 변수를 변경하려고 했습니까?
malte

당신은 아마 완전히 맞을 것입니다. 나는 오늘 그것을 실제로보고있었습니다. "./ec2.py --refresh-cache"를 실행할 수 있습니다.
Todd Walton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.