Мой инвентарь yaml (среда разработки) выглядит следующим образом:
$> more inventory/dev/hosts.yml
all:
children:
dmz1:
children:
ch:
children:
amq:
hosts:
myamqdev01.company.net: nodeId=1
myamqdev02.company.net: nodeId=2
smx:
hosts:
mysmxdev01.company.net: nodeId=1
mysmxdev02.company.net: nodeId=2
intranet:
children:
ch:
children:
amq:
hosts:
amqintradev01.company.net: nodeId=1
amqintradev02.company.net: nodeId=2
smx:
hosts:
smxintradev01.company.net: nodeId=1
smxintradev02.company.net: nodeId=2
, и когда я пытаюсь пинговать (ansible -i inventory/dev -m ping all
, я получаю сообщение об ошибке:
children: | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname children:: Temporary failure in name resolution",
"unreachable": true
}
ch: | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname ch:: Temporary failure in name resolution",
"unreachable": true
}
all: | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname all:: Temporary failure in name resolution",
"unreachable": true
}
lan: | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname lan:: Temporary failure in name resolution",
"unreachable": true
}
amq: | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname amq:: Temporary failure in name resolution",
"unreachable": true
}
hosts: | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname hosts:: Temporary failure in name resolution",
"unreachable": true
}
etc...
Для устранения неполадок, когда я выполняю ansible -i inventory/dev --list-hosts all
я получил:
hosts (16):
all:
children:
dmz1:
ch:
amq:
hosts:
myamqdev01.company.net:
myamqdev02.company.net:
smx:
mysmxdev01.company.net:
mysmxdev02.company.net:
intranet:
amqintradev01.company.net:
amqintradev02.company.net:
smxintradev01.company.net:
smxintradev02.company.net:
Я думаю, что эта команда должна давать только хосты, нет?
Я не уверен, в чем проблема, но я последовал примеруиз официального документа , и я думаю, что есть проблема с моим файлом hosts.yml, но я не могу догадаться, чего мне не хватает.
ОБНОВЛЕНИЕ Когда я исправляю переменные nodeId согласнок ответу список all
работает нормально. Однако, когда я пытаюсь фильтровать по промежуточному родителю, это не работает:
ansible -i inventory/dev --list-hosts intranet
не возвращает хосты интрасети, но все.
Когда я пытаюсь: ansible -i inventory/dev --list-hosts amq
правильно возвращается только сервер amq.