host_vars 在 ansible 中不起作用

host_vars 在 ansible 中不起作用

我需要host_vars在我的 ansible 文件中使用它在远程主机上安装一个包,我试图从 package文件host_vars所在的目录中提取一个名称变量ansi2,该目录是远程机器的主机名,我的主要 yaml 文件的名称是service.yml并驻留在/etc/ansible...

---
 - hosts: all
   become: yes
   ignore_errors: yes
   gather_facts: no
   tasks:

   - name: install vim
     yum: name={{ package }} state=present

目录结构:

[root@ansi1 ansible]# pwd
/etc/ansible
[root@ansi1 ansible]#
[root@ansi1 ansible]# ls -l ansi2/host_vars/
total 4
-rw-r--r-- 1 root root 19 Jun 13 08:15 ansi2
[root@ansi1 ansible]#


[root@ansi1 ansible]# cat ansi2/host_vars/ansi2
---
package: "vim"

错误:

TASK [install vim] *************************************************************
task path: /etc/ansible/service.yml:7
fatal: [ansi2.example.com]: FAILED! => {
    "failed": true,
    "msg": "the field 'args' has an invalid value, which appears to include a variable that is undefined. The error was: 'package' is undefined\n\nThe error appears to have been in '/etc/ansible/service.yml': line 7, column 6, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n   tasks:\n   - name: install vim\n     ^ here\n"
}
...ignoring

答案1

根据您的输出,库存主机名是ansi2.example.com
您应该更改文件名ansi2以匹配您的库存主机名。

相关内容