我需要使用host_vars在我的host_vars文件安装在远程主机上的包,我试图从host_vars目录名称package拉动一个variables,其中一个文件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
Dir结构:
[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
按照您的输出,库存主机名是ansi2.example.com 。
您应该更改文件名称ansi2以匹配您的库存主机名。