Анзибль Playbook для ОС Windows или Linux - PullRequest
2 голосов
/ 20 ноября 2019

Я создал анзибль роль, которую в состоянии развернуть некоторое программное обеспечение на системах, основанных или любой ОС Windows или Linux, но у меня вопрос, развертывается на обоих наборов серверов одновременно. Вопрос, который у меня возник, касается созданной мной пьесы, которая называет эту роль. Задачи Linux не будут запускаться, если я не включу become: true, и если я добавлю это в playbook, задачи Windows не будут выполняться, потому что {"msg": "The PowerShell shell family is incompatible with the sudo become plugin"}. Простое решение проблемы - просто включить become: true для моих задач в Linux, но я надеялся, что есть лучший способ сделать это, чем это. Я думал о том, чтобы запустить условную become (как показано ниже), но я не думаю, что это сработает. Хотелось бы услышать ваши идеи.

playbook.yml

---
- hosts: all
  become: "{{ 'no' if ansible_facts['os_family'] == 'Windows' else 'yes' }}"
  roles: 
    - /path/to/role
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...