OS support contribution guidelines

18 views
Skip to first unread message

Nick Venenga

unread,
Mar 17, 2020, 4:03:54 PM3/17/20
to Ansible Project
What host operating systems does Ansible accept PRs for? I got hit with a hard no here https://github.com/ansible/ansible/pull/65381#issuecomment-600250171 that sounds like anything Windows related it out of the question. I see various vague references to reserving the right to only support Linux but then I see other places referencing MacOS and *BSD. I tried to find development guidelines to no avail. Is there an official policy or does it just depend on maintainers mood?

James Cassell

unread,
Mar 17, 2020, 5:02:46 PM3/17/20
to Ansible List, Ansible Development List
I was disappointed to see that decision. I know lots of folks would like to run ansible on a Windows controller and it's unfortunate that RH is forcing it to be done in a fork, but as they say [1], "it's not a democracy," and they're pushing it to be more of a RH-only project. (IIUC, it's no longer possible to add non-namespaced modules or plugins, and best you can do is community.general.my_module.)


V/r,
James Cassell


[1] https://meetbot.fedoraproject.org/ansible-meeting/2020-03-17/ansible_core_public_irc_meeting_https:github.comansiblecommunityissues528.2020-03-17-19.01.log.html#l-60

Matt Martz

unread,
Mar 17, 2020, 5:09:15 PM3/17/20
to ansible...@googlegroups.com

> This includes Red Hat, Debian, CentOS, macOS, any of the BSDs, and so on. Windows is not supported for the control node.

Windows is only supported as the OS for managed nodes.  There are no plans to support Windows as a control node.

On Tue, Mar 17, 2020 at 3:04 PM Nick Venenga <nij...@gmail.com> wrote:
What host operating systems does Ansible accept PRs for? I got hit with a hard no here https://github.com/ansible/ansible/pull/65381#issuecomment-600250171 that sounds like anything Windows related it out of the question. I see various vague references to reserving the right to only support Linux but then I see other places referencing MacOS and *BSD. I tried to find development guidelines to no avail. Is there an official policy or does it just depend on maintainers mood?

--
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-proje...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/01811128-bbc0-4ec8-9be0-7c5423657d48%40googlegroups.com.


--
Matt Martz
@sivel
sivel.net

Nick Venenga

unread,
Mar 17, 2020, 5:59:53 PM3/17/20
to Ansible Project
Obviously Windows isn't supported as a control host since it doesn't work. This has nothing to do with contribution guidelines. Windows could be supported if someone did the work but it sounds like that would be rejected regardless. This is confusing because there's nothing explicitly calling out that Windows shouldn't be supported and previous PRs seem open to the idea if community members are willing to do the work


On Tuesday, March 17, 2020 at 5:09:15 PM UTC-4, Matt Martz wrote:

> This includes Red Hat, Debian, CentOS, macOS, any of the BSDs, and so on. Windows is not supported for the control node.

Windows is only supported as the OS for managed nodes.  There are no plans to support Windows as a control node.

On Tue, Mar 17, 2020 at 3:04 PM Nick Venenga <nij...@gmail.com> wrote:
What host operating systems does Ansible accept PRs for? I got hit with a hard no here https://github.com/ansible/ansible/pull/65381#issuecomment-600250171 that sounds like anything Windows related it out of the question. I see various vague references to reserving the right to only support Linux but then I see other places referencing MacOS and *BSD. I tried to find development guidelines to no avail. Is there an official policy or does it just depend on maintainers mood?

--
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...@googlegroups.com.

Jordan Borean

unread,
Mar 17, 2020, 6:15:47 PM3/17/20
to Ansible Project
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.

Nick Venenga

unread,
Mar 17, 2020, 6:56:48 PM3/17/20
to Ansible Project
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

Matt Davis

unread,
Mar 18, 2020, 8:32:32 PM3/18/20
to Ansible Project
This thread hits on a number of discussions that have been happening for years- rather than trying to recap them here, I wrote a blog post about it: http://blog.rolpdog.com/2020/03/why-no-ansible-controller-for-windows.html

On another note: it bothers me that there's perception that Ansible is a "Red Hat only" project. It's true that those of us that are paid by Red Hat to work on Ansible have to pick and choose carefully where we spend our time, and that the concerns of paying customers (including keeping the underlying codebase reasonably stable) often take priority over shiny things. At the end of the day, Red Hat can't possibly capital-S-support everything, and we have to be really careful about large contributions or projects that are potentially destabilizing (especially when they involve things we currently have no way to test).

One of the major purposes of the move to collections is to get us out of the community's way in this regard. Rather than applying overly-harsh filters to all contributions in the name of capital-S-supportability and releasing at a relatively slow cadence, community-owned collections will be able to apply whatever quality rules they like, apply whatever compatibility policies they like, and release on whatever schedule they like, while still having a way to be part of a "batteries included" community Ansible distribution. For the collections that are capital-S-supported by Red Hat, the requirements for getting contributions accepted will still remain pretty high, but anyone is free to release their own version of that content themselves with whatever changes they like, while still enjoying the stability of the core Ansible engine itself.

We're also working to further plugin-ify and democratize even more of the "guts" of the Ansible engine in future releases. That doesn't directly address this case, but a number of others around first-class target support for many things that aren't Windows or POSIX, and will also probably knock down a few more of the barriers to a hypothetical native-Windows Ansible.

-Matt Davis (@nitzmahone)

Nick Venenga

unread,
Mar 24, 2020, 8:00:48 AM3/24/20
to Ansible Project
Thanks!
Reply all
Reply to author
Forward
0 new messages