2016-07-05 175 views
12

我想在Ansible上执行我的第一个远程shell脚本。我首先生成并复制了SSH密钥。这里是我的YML文件:Ansible:没有主机匹配

--- 
- 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地址),但没有改变。任何帮助?

回答

16

您需要定义主机清单。

这个的默认路径是/etc/ansible/hosts(同样由helloV表示)。

对于一个小例子,你也可以在命令行中指定产品目录:

ansible-playbook setup.yml -i 192.168.10.1, 

后面的逗号使其成为一个列表,这样ansible分析它directy。否则您可以运行

ansible-playbook setup.yml -i myinventory 

其中myinventory是一个文件列表您的主人。

+0

感谢您的回复和命令行中的最小示例 – Carla

+0

我可以同时保留主机库存/ etc/ansible/hosts还指定-i hostip吗? – Illusionist

+0

我找不到我的'/ etc/ansible/hosts'。它一直告诉我没有找到目录 –

4

Ansible不知道你的主人。如果是在动态库存,您可以使用-i选项通过库存脚本或编辑/etc/ansible/hosts并添加一个条目为您的主机,如:

[myhost] 
192.168.10.1 

,并在剧本指定主机为:

hosts: myhost 
+0

非常感谢您的回复 – Carla