# Add Windows-Control Node support

**URL:** <https://forum.ansible.com/t/add-windows-control-node-support/36248>\
**Category:** Ansible Project\
**Tags:** windows, aws\
**Created:** [January 24, 2022, 9:29pm UTC](https://forum.ansible.com/t/add-windows-control-node-support/36248 "2022-01-24T21:29:16Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Arpad\_Toth](https://avatars.discourse-cdn.com/v4/letter/a/a3d4f5/32.png) [@Arpad\_Toth](https://forum.ansible.com/u/Arpad_Toth)\
**Post date:** [January 24, 2022, 9:29pm UTC](https://forum.ansible.com/t/add-windows-control-node-support/36248/1 "2022-01-24T21:29:16Z")

</div>

Hi All,

Love the idea of ansible, but why can’t we support Windows 7/10 Control Nodes?  
What’s the point of using python in non portable way?

I can simply do Putty into linux client, Windows can also be ansible receivable.  
So there is no technical reason.

I managed to simply install all it’s requirements.txt. Which weren’t many.

First failure is that there are \>255 character lengths in install path, which is easy to fix:  
‘C:\Users\me75467\AppData\Local\Temp\pip-install-qewllma2\ansible\_d7ca3162bd034b6ebf06e7728a0f3e08\ansible\_collections/amazon/aws/tests/unit/plugins/modules/placebo\_recordings/cloudformation/client\_request\_token\_s3\_stack/cloudformation.DescribeStackEvents\_1.json’

Cheers,  
Arpad

---

<div class="post-metadata">

**Author:** ![sivel](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/sivel/32/1198_2.png) [@sivel](https://forum.ansible.com/u/sivel)\
**Post date:** [January 24, 2022, 9:44pm UTC](https://forum.ansible.com/t/add-windows-control-node-support/36248/2 "2022-01-24T21:44:22Z")

</div>

Getting it to install is the least of your problems [http://blog.rolpdog.com/2020/03/why-no-ansible-controller-for-windows.html](http://blog.rolpdog.com/2020/03/why-no-ansible-controller-for-windows.html)

---

<div class="post-metadata">

**Author:** ![Arpad\_Toth](https://avatars.discourse-cdn.com/v4/letter/a/a3d4f5/32.png) [@Arpad\_Toth](https://forum.ansible.com/u/Arpad_Toth)\
**Post date:** [January 25, 2022, 9:29am UTC](https://forum.ansible.com/t/add-windows-control-node-support/36248/3 "2022-01-25T09:29:48Z")

</div>

Simply call os.system('python3 client\_worker.py playbook.yml IP\_addr')  
to do the isolation.

This would give freedom for admin to manually start one deployment,  
most of us only manage one target at a time.

If you want to wait for results:  
[https://stackoverflow.com/questions/34572341/how-to-spawn-another-process-and-capture-output-in-python](https://stackoverflow.com/questions/34572341/how-to-spawn-another-process-and-capture-output-in-python)

or via subprocesses: [https://docs.python.org/3/library/subprocess.html](https://docs.python.org/3/library/subprocess.html)

Sounds like plug in developers misusing python.  
And portability needs to be forced for new ones.

Arpad

---

<div class="post-metadata">

**Author:** ![jborean](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/jborean/32/1525_2.png) [@jborean](https://forum.ansible.com/u/jborean)\
**Post date:** [January 26, 2022, 8:38pm UTC](https://forum.ansible.com/t/add-windows-control-node-support/36248/4 "2022-01-26T20:38:03Z")

</div>

It’s definitely not so simple, there are numerous complexities around the worker model used in Ansible and it is heavily reliant on `fork()` to provide some features that improve the performance. The use of `fork()` wasn’t chosen to annoy Windows users by not being supported there but how the worker process model was designed originally. As mentioned in the blog even if we removed the use of fork (not trivial at all) there are numerous other problems when it comes to running Ansible on Windows as a control host (all explained in the blog).

The other reason why this has become less of a problem today is the introduction of WSL on Windows. This gives Windows developers a pretty easy to use setup for running Ansible on Windows without having to completely rewrite the internals of Ansible. While it’s not native it is good enough and solves a lot of the other problems with trying to run on a non-POSIX host by being a POSIX host itself. Windows 7 users are out of luck, there’s nothing I can really say there except move to a newer OS, Windows 7 is EOL and you cannot keep expecting people to support stuff that is EOL.
