Ansible Inventory问题:SSH主机名解析失败致主机不可达
问题根源
你在inventory.ini里的[cluster]组配置错误,直接把master和worker当成主机名写进去了。Ansible默认会将组内的条目解析为单个主机,而非其他组,所以它尝试连接名为master的主机,自然会出现解析失败的错误——因为你的网络里根本没有叫master的机器,只有名为nuc1、nuc2的主机属于master组。
修复步骤
把[cluster]改成组包含语法[cluster:children],这样Ansible就会把master和worker识别为子组,而非独立主机。同理,[worker]也需要改成[worker:children],否则它会把CPU、GPU当成主机名去解析:
修正后的inventory.ini关键部分:
[all:vars] ansible_user=root # 用 :children 标识这是包含子组的组 [cluster:children] master worker [master] nuc1 nuc2 [worker:children] CPU GPU [CPU] server ... [GPU] server1 ... server2 ...
验证修复
执行以下命令确认cluster组包含的主机是否正确:
ansible cluster --list-hosts
正常输出应该列出nuc1、nuc2、server、server1、server2这些实际主机,而非master、worker。
内容的提问来源于stack exchange,提问作者Guillaume
相关产品推荐
相关产品推荐

