Sure, it'd be an astronomical amount of work to fully support Windows. 
That's definitely not going to happen in a single PR. As you mention

> it would be fantastic if we could ever get Ansible as a controller 
working on Windows but the practical realities is that this won't happen 
anytime soon

But that will never happen if PRs that fix Windows issues are rejected on 
the grounds that they may imply future Windows support

>With the introduction of WSL and WSL2 on Windows 10 there is even less of 
a reason to push for this as Ansible

Sure, but the docs also explicitly call out that as not being supported 
either 
https://docs.ansible.com/ansible/latest/user_guide/windows_faq.html#can-ansible-run-on-windows.
 
WSL2 is basically just a stripped down Linux VM so I would definitely 
expect that to work

>The link that sivel has posted explicitly states that Windows is not 
supported for the control node.

As I mentioned, not currently supported and "will never be supported" 
aren't the same thing

Either way sivel says "Changing this, adds to the misconception that we may 
support a windows controller" and now you've said "it would be fantastic if 
we could ever get Ansible as a controller working on Windows" which seem to 
contradict each other. This is why I posted to the list. It seems Ansible 
has no clear strategy here which is very confusing for potential 
contributors


On Tuesday, March 17, 2020 at 6:15:47 PM UTC-4, Jordan Borean wrote:
>
> Windows could be supported if someone did the work
>
>
> I think you are underestimating how much work this would actually require. 
> The biggest (but not the only) issue is that Ansible uses fork in it's 
> worker model and fork is not available on Windows. Changing that to use 
> threads is technically possible and there is/was some work going on to add 
> a way to specify either threading or forking in a strategy to control how 
> this works. This would solve 1 hurdle but there also remains a whole lot of 
> others not limited to
>
>    - A whole bunch of other code on the controller is designed 
>    specifically for Linux and not Windows. Things like the SSH plugin would 
>    most likely break with using the Win32 OpenSSH port
>    - Running a playbook on Windows localhost is different than Linux 
>    localhost, lookups can act differently especially something like pipe
>       - Should delegate_to: localhost automatically redirect ping to 
>       win_ping for Windows, what happens if there is no win_* equivalent 
> module 
>       or specific options aren't supported
>       - This leads into playbooks developed on Windows as a controller 
>       aren't compatible with Linux as a controller and vice versa
>       - The basic.py module util wrapper imports a few Python modules 
>    like 'grp', 'fcntl' and probably others. Without these common utilities 
>    used by modules will not work and requires either workaround or more 
>    caveats to apply to a Windows host
>       - This would need to be solved and tested before you can start 
>       running Python modules on Windows
>       - Python is riddled with lots of modules only work on X platform or 
>       specific features of this module won't work. This isn't Python's fault 
> but 
>       just due to the differences between Windows and POSIX compliant systems
>       - We don't test Ansible as a controller on Windows
>       - We could fix things as we go but without testing in CI these 
>       things will inevitably break leading to anger from people who use it 
> making 
>       no one happy
>       
>
> This is confusing because there's nothing explicitly calling out that 
>> Windows shouldn't be supported
>>
>
> The link that sivel has posted explicitly states that Windows is not 
> supported for the control node.
>
> As one of the Windows devs it would be fantastic if we could ever get 
> Ansible as a controller working on Windows but the practical realities is 
> that this won't happen anytime soon. With the introduction of WSL and WSL2 
> on Windows 10 there is even less of a reason to push for this as Ansible 
> works perfectly fine under those hosts and it allows you to run it on a 
> Windows host like you are asking.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/5dabaeec-5522-47f5-9339-2d0d4e4368d6%40googlegroups.com.

Reply via email to