"无法解析主机名" Ansible

时间:2017-12-03 09:02:30

标签: ssh ansible ubuntu-14.04

我根据this tutorial创建了我的第一本ansible剧本,所以它看起来像这样:

---
- hosts: hostb
  tasks:
      - name: Create file
        file:
            path: /tmp/yallo
            state: touch

- hosts: my_hosts
  sudo: yes
  tasks:
      - name: Create user
        user:
            name: mario
            shell: /bin/zsh

      - name: Install zlib
        yum:
            name: zlib
            state: latest

但是,我无法确定应该将哪些主机放入主机文件中。我现在有这样的事情:

[my_hosts]
hostA
hostB

显然,它不起作用,我明白了:

ssh: Could not resolve hostname hostb: Name or service not known

那么我应该如何更改主机文件?我是ansible的新手,所以我非常感谢你的帮助!

2 个答案:

答案 0 :(得分:2)

好的,所以Ansible库存可以基于以下格式:

  • HostName => IP Address
  • HostName => DHCP or Hosts file hostname reference localhost/cassie.local
  • 创建自己的别名=> hostname ansible_host=IP Address
  • 主机组=> [group_name]

这是您可以使用的最基本的结构。

  

实施例

# Grouping
[test-group]

# IP reference
192.168.1.3

# Local hosts file reference
localhost

# Create your own alias
test ansible_host=192.168.1.4

# Create your alias with port and user to login as
test-2 ansible_host=192.168.1.5 ansible_port=1234 ansible_user=ubuntu
  

主机分组仅在检测到文件末尾或其他组时结束。因此,如果您希望拥有不属于某个组的主机,请确保它们已在组定义之上定义。

即。上例中的所有内容都属于test-group,如果你这样做,它将在所有主机上执行:

ansible test-group -u ubuntu -m ping

答案 1 :(得分:0)

ansible 在您的清单文件中区分大小写的主机名是 hostB,在您的剧本中是 hostb 我认为它显示“名称或服务未知”错误的方式

将您在剧本中的主机名更改为 hostB