Неспособный - псевдоним инвентаризации доступа
Наличие файла инвентаря, например:
[my_hosts]
my_host ansible_ssh_host=123.123.123.123
my_host2 ansible_ssh_host=234.234.234.234
Я хочу собрать некоторые отладочные данные в моих шаблонах.
Я попытался собрать факты, используя ansible -m setup my_host
. Переменные ansible_hostname
, HOSTNAME
и HOST
содержат имя машинного узла, т.е. echo $HOSTNAME
, которое отличается от моего псевдонима.
Ответы
Ответ 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