Рейтинг:0

Ansible — как перебирать службы, присутствующие в файле инвентаризации

флаг vn

winapp.example.comЗдравствуйте, у меня есть файл инвентаризации, в котором содержатся серверы приложений Windows, веб-серверы и только соответствующие службы, которые необходимо остановить или перезапустить. Требование состоит в том, что для группы хостов должны быть остановлены только определенные службы. Например, серверы приложений следует пользоваться услугами под серверами приложений: вары

Ценю твою помощь !!!

Файл Inventory\hosts.ini содержит

[серверы приложений]
winapp1.example.com
winapp2.example.com

[серверы приложений:вары]
  Сервисы:
    - Рабочий процесс
    - Служба конфигурации
    - Служба синхронизации
    - Родительская служба конфигурации

[ведомые серверы]
winslvapp1.example.com
winslvapp2.example.com

[slaveappservers:vars]
  Сервисы:
    - Служба синхронизации
    - Родительская служба конфигурации

[веб-серверы] 
webser1.ent.wfb.bank.corp

[веб-серверы:вары]
  Сервисы:
    - Рабочий процесс
    - Служба синхронизации
    - Родительская служба конфигурации

[все серверы: дети]
серверы приложений
подчиненные серверы
веб-серверы

service_stop.yml

---
- название: демонстрация остановки службы SHRP
  хозяева: все
  сбор_фактов: ложь

  задачи:
  - имя: Приостановить службу
    win_service:
      имя: "{{ элемент }}"
      состояние: остановлено
    петля: 
      - "{{ Сервисы }}"
Рейтинг:1
флаг cn

У вас уже есть одно решение. Определите переменную с тем же именем, но со специфическими значениями группы. Используйте это одно имя переменной в играх, которые могут работать в обеих группах.

Существует несколько синтаксисов для получения значений, специфичных для группы.

  • Определение переменной в инвентаре для группы
  • В файлах group_vars рядом с плейбуком или инвентарем.
  • Выражение поиска или словарь, индексированный по имени группы.

Ваш пример первый.

флаг vn
Я думал, что предоставил имя переменной как «сервисы», чтобы сделать его общим для групп. С указанными выше настройками я получаю сообщение об ошибке, когда игра выполняется, поскольку «сервисы» не определены. Ценю твою помощь !!!
John Mahowald avatar
флаг cn
Пожалуйста, отредактируйте свой вопрос, чтобы добавить ошибку.
флаг vn
У меня есть тот же код, упомянутый выше, и когда я запустил playbook, я получил следующую ошибку. { "msg": "Недопустимые данные, переданные в "цикл", для этого требуется список, вместо этого получено это: services. Подсказка: если вы передали список/словарь только из одного элемента, попробуйте добавить wantlist=True к вашему вызову поиска или используйте q /запрос вместо поиска.", "_ansible_no_log": ноль }

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.