Ansible 호스트 파일에서 호스트 이름 가져오기

Ansible 호스트 파일에서 호스트 이름 가져오기

호스트 파일에서 그룹에 있는 첫 번째 호스트의 처음 8자를 가져올 수 있기를 원합니다. 그래서 아래 예에서는 변수를 할당하고 싶습니다 xx33sx01. Inventory_hostname을 사용하여 호스트를 가져올 수 있다는 것을 알고 있지만 4개를 모두 반환하므로 첫 번째 호스트와 처음 8자만 필요합니다.

Ansible 인벤토리 예시(INI 스타일):

[TEST1]
xx33sx0101.domain.com
xx33sx0102.domain.com
xx33sx0103.domain.com
xx33sx0104.domain.com

ansible-playbook /local_home/scripts/test.yml -i ~/hosts -e "target=TEST1" -K

답변1

그룹에 있는 첫 번째 호스트 이름의 처음 8자를 얻으려면 다음을 시도하십시오.

- debug:
    msg: "{{ groups[target_group][0][:8] }}"
  vars:
    target_group: TEST1

(검증되지 않은)


  • 디버그 작업이 작동하도록 하려면 물론 플레이북에서 그룹을 사용할 수 있어야 합니다. 예를 들어
- hosts: all
  tasks:
    - debug:
        msg: "{{ groups[target_group][0][:8] }}"

관련 정보