2017-11-20 1 views
0

vmware_guest 모듈을 사용하여 일련의 VM을 만듭니다.호스트 이름과 IP 주소 패턴이 모두있는 인벤토리

어쨌든 호스트 이름과 IP 주소 모두에 패턴을 사용합니까?

예를 들어 나는 호스트 이름 5 개 마스터 VM을 만들려면/IP와 같은 :

  • master110.123.0.1
  • master210.123.0.2
  • master310.123.0.3

그래서 다음과 같은 뭔가 재고 YAML : 또한 all: children: Elvis: children: masterNodes: hosts: master[1-5]: ansible_host: 10.123.0.[1-5] slaveNodes: hosts: slave[1-10]: ansible_host: 10.124.0.[1-10]


, 특정 parent:child 그룹에 대한 작전을 실행하는 방법이 있나요? Elvis:masterNodes 만 재생하려면 어떻게해야합니까? 예를 들어 같은 인벤토리에 다른 상위 하위 그룹이있는 경우 Bono:masterNodes

답변

1

어쨌든 호스트 이름과 IP 주소 모두에 패턴을 사용할 수 있습니까?

번호 대신 Ansible는 인벤토리를 생성하는 스크립트를 실행 할 수 있습니다 - 분명히 이르면 July 2013에서 명확되었다 파이썬에서 IP 주소 (와 함께 재고 호스트 이름을 채우기 루프를 구현하는 사소한,하지만 누군가가 제안한 동일한 스레드에서 a workaround).

또한 특정 상위 : 하위 그룹에 대한 재생 목록을 실행하는 방법이 있습니까?

아니요. 불가능한 인벤토리에 계층 구조가 없습니다. 네임 스페이스는 평평합니다. 하위 그룹이 없습니다. Ansible은 호스트/그룹 세트에서 작동합니다.

실제로 동일한 이름을 가진 별개 (하위) 그룹을 가질 수 없습니다. 해당 (하위) 그룹의 내용이 병합됩니다. 따라서 Elvis에 그룹 masterNodes이 포함되어 있고 hosts:Elvis 선언으로 재생을 실행하면 masterNodes에 정의 된 모든 호스트에서 실행됩니다 (Bono:masterNodes 포함).

관련 문제