Мне нужно использовать host_vars
в моем доступном файле для установки пакета на удаленном хосте я пытаюсь вытащить переменную по имени 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
Структура 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
чтобы соответствовать имени хоста вашего инвентаря.