Linux下可以使用become调用规则,windows下则不能调用规则

问题描述 投票:0回答:2

我有下面的代码来调用

puppet-agent
安装角色,这适用于 Linux,但是,当我使用 Windows 计算机时,它会给出
become
行错误。

如何为 Linux 和 Windows 更新以下代码。对于 Linux 包含成为,对于 Windows 排除

become

---
- hosts: all
  become: yes
  roles:
    - puppet-agent

错误信息

 fatal: [winhost]: FAILED! => {"msg": "The powershell shell family is
    incompatible with the sudo become plugin"}
ansible
2个回答
1
投票

尽管我没有可用的 Windows 盒子来测试它,但值得尝试的是,如果您使用的是 Windows,则完全

omit
become
指令:

- hosts: all
  gather_facts: yes
  
  roles:
    - role: puppet-agent
      become: "{{ true if ansible_system == 'Linux' else omit }}"

0
投票

对于 Windows,您必须使用

become_method: runas

因此您的剧本可以更新如下:

---
- hosts: all
  become: true
  become_method: runas

  roles:
    - puppet-agent

查看下面的官方文档以获取更多信息: https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_privilege_escalation.html#become-and-windows

© www.soinside.com 2019 - 2024. All rights reserved.