Подтвердить что ты не робот

Неспособный - псевдоним инвентаризации доступа

Наличие файла инвентаря, например:

[my_hosts]
my_host ansible_ssh_host=123.123.123.123
my_host2 ansible_ssh_host=234.234.234.234

Я хочу собрать некоторые отладочные данные в моих шаблонах.

  • Как мне получить переменную псевдонима в playbook/template? То есть:.

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

Я попытался собрать факты, используя ansible -m setup my_host. Переменные ansible_hostname, HOSTNAME и HOST содержат имя машинного узла, т.е. echo $HOSTNAME, которое отличается от моего псевдонима.

4b9b3361

Ответ 1

Переменная, которую я искал, является встроенной функцией: inventory_hostname

Относительная документация о inventory_hostname и inventory_hostname_short содержится в главе Магические переменные и как получить информацию о других хостах.

Оригинальный вопрос: https://groups.google.com/forum/#!topic/ansible-project/Oa5YXjHecIw

Ответ 2

Вы можете просто использовать {{ ansible_ssh_host }} Например:

Инвентарь:

[my_hosts]
my_host ansible_ssh_host=127.0.0.1 my_host_alias=my_host

Playbook:

---
- 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