Ansible:没有匹配的主机

时间:2016-07-05 12:20:33

标签: ansible ansible-playbook

我试图在Ansible上执行我的第一个远程shell脚本。我首先生成并复制了SSH密钥。这是我的yml文件:

---
- name: Ansible remote shell
  hosts: 192.168.10.1
  user: myuser1
  become: true
  become_user: jboss
  tasks:
    - name: Hello server
      shell: /home/jboss/script.sh

然而,当启动剧本时,结果是"没有主机匹配":

ansible-playbook setup.yml 

PLAY [Ansible remote shell
******************************************** 
skipping: no hosts matched

PLAY RECAP ******************************************************************** 

我还试过使用主机名(而不是IP地址),但没有改变。有什么帮助吗?

3 个答案:

答案 0 :(得分:27)

您需要定义主机库存。

此默认路径为def xor(x, y): ans = "" for i in xrange(len(x)): if x[i] == "0" and y[i] == "1" or x[i] == "1" and y[i] == "0": ans += "1" else: ans += "0" return ans (同样由helloV声明)。

对于最小示例,您还可以在命令行中指定库存:

/etc/ansible/hosts

尾随逗号使其成为一个列表,以便ansible直接解析它。否则你可以运行

ansible-playbook setup.yml -i 192.168.10.1,

其中ansible-playbook setup.yml -i myinventory 是列出您的主机的文件。

答案 1 :(得分:8)

Ansible对您的主人一无所知。如果它位于动态广告资源中,您可以使用-i选项传递广告资源脚本或修改/etc/ansible/hosts并为您的主机添加条目,如:

[myhost]
192.168.10.1

并将剧本中的主机指定为:

hosts: myhost

答案 2 :(得分:0)

我们必须在ansible中创建一个Inventory文件,我们需要为
提供IP地址文件的位置 按名称创建文件 /ip.txt
并在您的清单中提供上面创建的文件的路径