2014-04-10 4 views
24

같은 인벤토리 파일 갖는Ansible - 액세스 재고 별명

[my_hosts] 
my_host ansible_ssh_host=123.123.123.123 
my_host2 ansible_ssh_host=234.234.234.234 

내가 내 템플릿의 일부 디버그 정보를 수집하고자합니다.

  • 플레이 북/템플릿의 별칭 변수에 어떻게 액세스합니까? 즉이 :

    debug: msg=Myhost is {{ ansible_host_alias }} 
    # Myhost is my_host 
    # Myhost is myhost2 
    

나는 ansible -m setup my_host를 사용하여 사실을 수집하기 위해 노력했다. ansible_hostname, HOSTNAMEHOST 변수에는 컴퓨터의 호스트 이름 (예 : echo $HOSTNAME)이 내 어시스턴트와 다릅니다.

+1

이 ansible_ssh_host'가 2.0에서 ansible_host' '에 찬성 중지되었습니다'주의하십시오. ([docs] (http://docs.ansible.com/ansible/intro_inventory.html#hosts-and-groups)). 마찬가지로 ansible_ssh_user와 ansible_ssh_port는 ansible_user와 ansible_port가됩니다. 이러한 짧은 변수는 이전 버전의 Ansible에서 경고없이 무시됩니다. – Kyr

답변

12

당신은 단지 예를 들어 {{ ansible_ssh_host }}를 사용할 수 있습니다

재고 :

[my_hosts] 
my_host ansible_ssh_host=127.0.0.1 my_host_alias=my_host 

각본 :

--- 
- name: My Good playbook 
    user: ubuntu 
    hosts: all 

    tasks: 
    - name: My message 
     debug: msg="Myhost is {{ ansible_ssh_host }}" 

    - name: My message bogus 
     debug: msg="My host alias is {{ my_host_alias }}" 

실행 :

$ ansible-playbook -i inventory play.yml 

PLAY [My Good playbook] ******************************************************* 

GATHERING FACTS *************************************************************** 
ok: [my_host] 

TASK: [My message] ************************************************************ 
ok: [my_host] => { 
    "msg": "Myhost is 127.0.0.1" 
} 

TASK: [My message bogus] ****************************************************** 
ok: [my_host] => { 
    "msg": "My host alias is my_host" 
} 

PLAY RECAP ******************************************************************** 
my_host     : ok=3 changed=0 unreachable=0 failed=0 
+0

고마워,하지만 별칭을 얻고 싶습니다. (그래서 출력은 'my_host'가되어야합니다.) IP 주소가 아닙니다. 배경은 다음과 같습니다. 기존 인프라를 안전하게 유지하려고 노력하고 있으며 IP 주소 만 가지고 있습니다. 어떤 작업에서는 템플릿에 통계를 쓰는 서버에 대한 정보를 모으고 있으므로 별칭을 템플릿에 넣고 싶습니다. – ProfHase85

+0

내 편집 내용을 확인하려면'my_host_alias' 변수를 사용하십시오 – Rico

+0

감사합니다.이 솔루션에 대한 문제는 중복성입니다. 별칭을 두 번 정의하려고합니다. (별칭에 대한 기본 변수가 있는지 여부를 알고 싶었지만 아무 것도없는 것처럼 보입니다.) – ProfHase85