#variables #dns #ansible #ip #hostname
#переменные #dns #ansible #ip #имя хоста
Вопрос:
Как я могу использовать значение имени хоста и IP-адреса из hosts
файла инвентаризации?
Например, у меня есть только один хост в hosts
файле с именем в качестве ПОЛНОГО доменного имени, но он зарегистрирован на DNS-сервере.
Я пробовал с некоторыми переменными, но всегда получал имя хоста. Но, нужны оба из них: (
Вывод запроса на DNS-сервер:
nslookup host1.dinamarca.com
Server: 10.10.1.1
Address: 10.10.1.1#53
Name: host1.dinamarca.com
Address: 192.168.1.10
Пример host
файла: (есть только один хост)
host1.dinamarca.com
Я вызываю службу ansible с помощью команды:
ansible-playbook --ask-pass -i hosts test.yml
Мой тестовый файл.yml:
---
- name: test1
hosts: host1.dinamarca.com
remote_user: usertest
tasks:
- name: show ansible_ssh_host
debug:
msg: "{{ ansible_ssh_host }}"
- name: show inventary_hostname
debug: var=inventory_hostname
- name: show ansible_hostname
debug: var=ansible_hostname
...
Вывод:
TASK [show ansible_ssh_host] ****************************************************************************************************************************************
ok: [host1.dinamarca.com] => {
"msg": "host1.dinamarca.com"
}
TASK [show inventary_hostname] **************************************************************************************************************************************
ok: [host1.dinamarca.com] => {
"inventory_hostname": "host1.dinamarca.com"
}
TASK [show ansible_hostname] ****************************************************************************************************************************************
ok: [host1.dinamarca.com] => {
"ansible_hostname": "host1"
}
PLAY RECAP ************************************************************************************************ *************************************************************
host1.dinamarca.com : ok=4 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Комментарии:
1. Каким вы хотите, чтобы результат был?
2. Я считаю, что
dig
поиск , как в{{ lookup("dig", inventory_hostname) }}
, — это то, что вам нужно
Ответ №1:
Вызывается Ansible fact ansible_fqdn
. Если вам нужны и имя хоста, и полное доменное имя, у вас могут быть такие задачи:
tasks:
- name: show ansible_ssh_host
debug:
msg: "{{ ansible_ssh_host }}"
- name: show inventory_hostname
debug:
msg: "{{ inventory_hostname }}"
- name: show ansible_hostname
debug:
msg: "{{ ansible_fqdn }}"