Один хост имеет vars многих групп

У меня есть файл инвентаризации, который выглядит так:

all:
  children:
    win:

      children:
        hi:
          hosts:
            10.50.127.18:
            10.50.127.19:

        bye:
          hosts:
            10.50.127.18:
            10.50.127.19:
    linux:
      children:
        hi:
          hosts:
            10.50.127.20:
        bye:
          hosts:
            10.50.127.20:  

в папке групповых варов у меня есть этот код привет.yml

services:
  - ls
  - pwd

пока.yml

services:
  - pwd

то в playbook у меня есть это:

- hosts: linux
  gather_facts: no
  tasks:
  - name: lalaland
    command: "{{ item }}"
    loop: "{{services}}"

но я получаю такие ошибки, как:

fatal: [10.50.127.18]: FAILED! => {"msg": "Unexpected failure in finding the lookup named '{{services}}' in the available lookup plugins"}

Можете ли вы сказать мне, что я делаю неправильно? также знаете ли вы, что если я пересек значения переменных, как в этом случае ([ls] и [ls, pwd]), я получу в списке результатов переменные [ls,ls,pwd] или [ls,pwd]?

Введение в Ansible Roles
Введение в Ansible Roles
Ansible - это отличный инструмент управления конфигурацией, который можно использовать для автоматизации настройки или развертывания на большом...
0
0
39
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

but i'm getting errors like:

Я сделал те же файлы, скопировав их содержимое из вашего вопроса, и он работает без ошибок на Ansible 2.8.

also do you know if i have crossed variable meanings, like in this case([ls] and [ls, pwd]), will i get in result list of vars [ls,ls,pwd] or [ls,pwd]?

Групповые переменные будут применяться к хосту при анализе вашего инвентаря. И подставляются одноименные переменные. Итак, поскольку в вашем инвентаре последняя группа в алфавитном порядке — «привет», ваши хосты будут иметь service = [ls, pwd].

Другие вопросы по теме