What you'll learn
- Introduction
- The Demo: Reproducing "The PowerShell Shell Family Is Incompatible With the Sudo Become Plugin" Error
- Error Code
- Error Execution
- Fix Code
- Fix Execution
- Conclusion
- Why This Error Happens
- Fix Options
- Fix 1: Use `runas` become method for Windows
Introduction
The error **"the powershell shell family is incompatible with the sudo become plugin"** occurs when Ansible tries to use the `sudo` become method on a Windows host. Windows doesn't support `sudo`—it uses `runas` or doesn't require privilege escalation at all.
Welcome back to Ansible Pilot! I'm Luca Berton, and today we're diving into Ansible troubleshooting, focusing on exactly this runtime error. Join me as we explore how to reproduce, troubleshoot, and fix this incompatibility in your playbooks.
The Demo: Reproducing "The PowerShell Shell Family Is Incompatible With the Sudo Become Plugin" Error
To better understand and solve the "the PowerShell shell family is incompatible with the sudo become plugin" error, let's jump into a live Playbook.
Error Code
```yaml
incompatiblesudo_error.yml
---
- name: win_reboot module Playbook
hosts: all
become: true
tasks:
- name: reboot host(s)
ansible.windows.win_reboot:
```
Error Execution
```bash
$ ansible-playbook -i win/inventory troubleshooting/incompatiblesudo_error.yml
PLAY [win_reboot module Playbook] *********************************************************************
TASK [Gathering Facts] ****************************************************************************
fatal: [WindowsServer]: FAILED! => {"msg": "The PowerShell shell family is incompatible with the sudo become plugin"}
PLAY RECAP ****************************************************************************************
WindowsServer : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
```
Fix Code
```yaml
incompatiblesudo_fix.yml
---
- name: win_reboot module Playbook
hosts: all
become: false
tasks:
- name: reboot host(s)
ansible.windows.win_reboot:
```
Fix Execution
```bash
$ ansible-playbook -i win/inventory troubleshooting/incompatiblesudo_fix.yml
PLAY [win_reboot module Playbook] *********************************************************************
TASK [Gathering Facts] ****************************************************************************
ok: [WindowsServer]
TASK [reboot host(s)] *****************************************************************************
changed: [WindowsServer]
PLAY RECAP ****************************************************************************************
WindowsServer : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
Conclusion
In this troubleshooting guide, we successfully tackled the "PowerShell incompatible with the sudo become plugin" error in Ansible. By adjusting the playbook to disable the become plugin, we overcame the compatibility issue.
I hope this Playbooknstration helps you effectively troubleshoot and resolve similar errors in your Ansible automation journey. If you found this information valuable, don't forget to subscribe for more Ansible insights.
Why This Error Happens
This error occurs when Ansible tries to use the *