Ansible:没有匹配的主机

Car*_*rla 19 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
Run Code Online (Sandbox Code Playgroud)

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

ansible-playbook setup.yml 

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

PLAY RECAP ******************************************************************** 
Run Code Online (Sandbox Code Playgroud)

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

Rob*_*oth 31

您需要定义主机清单.

它的默认路径是/etc/ansible/hosts(也如helloV所述).

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

ansible-playbook setup.yml -i 192.168.10.1,
Run Code Online (Sandbox Code Playgroud)

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

ansible-playbook setup.yml -i myinventory
Run Code Online (Sandbox Code Playgroud)

哪里myinventory是列出您的主机的文件.


hel*_*loV 11

Ansible对你的主人一无所知.如果它位于动态库存中,您可以使用-i选项传递库存脚本,或者/etc/ansible/hosts为主机编辑和添加条目,如:

[myhost]
192.168.10.1
Run Code Online (Sandbox Code Playgroud)

并将playbook中的主机指定为:

hosts: myhost
Run Code Online (Sandbox Code Playgroud)