20:00:29 #startmeeting Windows Working Group 20:00:29 Meeting started Tue Sep 19 20:00:29 2017 UTC. The chair is jborean93. Information about MeetBot at http://wiki.debian.org/MeetBot. 20:00:29 Useful Commands: #action #agreed #halp #info #idea #link #topic. 20:00:29 The meeting name has been set to 'windows_working_group' 20:00:31 bluejeans link is https://bluejeans.com/7480904391 20:00:40 o/ 20:00:43 o/ 20:01:04 #chair nitzmahone jhawkesworth_ dag1 20:01:04 Current chairs: dag1 jborean93 jhawkesworth_ nitzmahone 20:01:32 hello 20:01:35 #info 2.4.0 has been released 20:01:47 yay for 2.4 20:02:06 nwsparks BasicTheProgram were also online 20:02:40 how did the bluejean's go? 20:02:47 Does v2.4.0 include the "become_user: SYSTEM" capability ? 20:02:58 dag1: no the PR hasn't been merged 20:03:04 will be for 2.5 once it does 20:03:05 bluejeans call is still active if you would like to join 20:03:11 (me hears Jon typing in the background, so refrains from answering that one) 20:03:31 jhawkesworth_: sorry I'm not in a position to talk, my partner is asleep right now and I don't want to wake her up 20:03:37 jborean93: no problem, it came up during the sprint 20:03:58 so let me summarize Sprint 2 quickly 20:04:16 we identified documentation issues with the different privilege issues on Windows 20:04:38 a lot of people have issues that we suspect are related to privileges/interactive session etc. 20:05:00 so it would be nice if we had integration tests that could test each of the individual rights/permissions so we can point users to that one 20:05:21 and they can test it in their environment and report back for their user/system what works and what doesn't 20:05:40 are you talking about double hop issues, certain restrictions like WUA or interactive issues? 20:05:44 all or the above? 20:06:01 but a general list of the different become/scheduled task/win_psexec, etc would already be nice to point users to to have them figure it out themselves and report back 20:06:07 jborean93: all of the above :) 20:06:10 all of the above, plus winrm's own restrictions I guess 20:06:17 yes 20:06:21 ok 20:06:32 good to know 20:06:56 I was planning on doing some doc stuff this week if nitzmahone didn't need me too much for pywinrm stuff 20:06:58 for info in the docs stuff I have a section on working around winrm restrictions. 20:07:11 I think that one was the most important set of items on my list, there are a few we have to reproduce or need more info from 20:07:14 but if you guys have a PR/wiki page with stuff already that would be great 20:07:37 jborean93: I guess we can list a few ideas, and link to relevant PRs for that 20:07:54 but I am not the person to write this :-) 20:07:55 ok, I'll try and start one up and we can all contribute to it 20:08:06 thank you 20:08:10 as in "no clue whatsoever" 20:08:41 (I don't hear Jon laughing in the background, so it's serious) 20:08:57 he just choked even 20:09:06 i have a cold! 20:09:18 yeah right :) 20:09:30 so let's move to the actual meeting 20:09:35 cool, anything else that came up in the sprint? 20:09:50 I don't think we fixed a single thing this Sprint :-) 20:10:05 but I call it a day at 24:00 CEST, so still 2 hours to go ;-) 20:10:16 I'll be on for a while yet too. 20:10:26 ah, I can extend if needed 20:10:30 a lot of the remaining issues are either quite complex to deal with, cannot really reproduce but are possible issues or somewhat environment setup issues 20:11:02 right, normally I would ask for a minimal reproducer, but in this case the minimum is there, we just can't reproduce ;-) 20:11:09 these cases 20:11:31 for the agenda the only thing that hasn't been crossed out is https://github.com/ansible/community/issues/195#issuecomment-328310659 but I thought we talked about this last week. Anything else you wanted to talk about dag1 on this? 20:12:13 Well, I wondered if reboot_required is the same thing as ansible_reboot_pending ? 20:12:44 if a task returns reboot_required, is the ansible_reboot_pending also set, or could there be different causes 20:13:08 well if we were to add that fact and update it accordingly I would have thought it would 20:13:08 like an installer making his wish known, and a windows update actually forcing the system to reboot within a certain time 20:13:19 if a reboot is required then in my mind it is pending also 20:13:43 right, but I wasn't sure if every module that returns this also updates the system's state regarding this 20:13:44 I don't think we have a way of saying 'windows is going to force a reboot on you in x mins yet' 20:13:50 it might be, I don't know Windows too well 20:14:15 I've never seen that fact, plus there isn't a single common reboot required flag that I know off 20:14:16 jhawkesworth_: well actually, if you do a win_reboot on a machine that has a reboot scheduled, it fails 20:14:32 so that's actually possible (and not necessarily related to reboot_pending I guess) 20:14:34 Some reg entries and maybe WMI can tell you but alst time I tried it was hit and miss 20:14:45 ok 20:14:56 My thought on that flag was that if we're going to update the fact, it should always be done from a shared piece of code- otherwise, you have the potential for it to "flap" 20:14:57 we can test this obviously 20:15:28 we just need to hope installs that require it also trigger that flag somewhere 20:15:34 otherwise we end up with ansible_reboot_required, ansible_reboot_pending and ansible_reboot_scheduled :-D 20:15:34 Everything I know of that truly needs a reboot can be sampled via reg 20:16:07 I am back 20:16:08 jborean93: right, and that we can test ourselves, and even expose a warning if it doesn't work as we expect 20:16:17 ok 20:17:00 BasicTheProgram - windows working group meeting - discussing https://github.com/ansible/community/issues/195#issuecomment-328310659 20:17:03 I believe nitzmahone was potentially looking at automated reboots if `reboots_required` was set on the return value, unless I am mistaken? 20:17:04 ok, let's drop this subject since we need to discuss this with the core team IMO 20:17:13 I have some ideas about how to rearchitect facts to allow for: 20:17:13 a) pluggability 20:17:13 b) granular callability 20:17:13 c) performance 20:17:21 (when we get there) 20:17:23 \o/ 20:17:55 will be interested to hear your thoughts about facts 20:18:09 I really wanted to have that discussion at AnsibleFest SF, but it requires preparation and I am not confident I see it all 20:18:55 and yes, I originally had that behavior in the win_reboot action that I scrapped before merging what we have 20:19:10 so anotherquestion ! 20:19:12 s/win_reboot/win_updates/ 20:19:22 what is the v2.5 roadmap for Windows ? 20:19:24 and looked at potentially including it in a base action 20:19:25 yeah I don't actually use current facts much so feel like I am missing how others use facts 20:19:38 * nitzmahone consults notes 20:19:46 full disclosure ! 20:20:00 - C# argspec 20:20:13 - PSScriptAnalyzer in ansible-test 20:20:18 - Pester in ansible-test 20:20:36 - Platform abstraction for mix/match connection/shell plugins 20:20:56 - Become flags 20:20:57 * dag1 hears Jon making whooping sounds 20:21:22 what is a 'become flag'? 20:21:29 That's all on my personal pet project list (other than continuing to mess with native Win32 Python Ansible controller ) 20:21:52 jhawkesworth_ you can adjust the become method flags in a particular way 20:21:56 Basically being able to set options on become like, "do a service/batch/whatever logon", "don't try to elevate", etc 20:21:57 how about a multi-threaded Ansible ? :) 20:22:01 right now it is hard coded to logon as interactive 20:22:13 dag1: That's prereq for a Windows controller- we already have a test branch 20:22:58 https://github.com/ansible/ansible/tree/threading_instead_of_forking 20:23:31 I wanted to spike out SSH and Windows but that probably will rely on the platform abstraction work so not sure if it will make it in. Also having a flag in the module that says `#Requires -become` (or something like that) so it runs in a non WinRM state 20:23:41 how about the new argument_spec and module interface, I know something was done, how far is it from being done ? 20:24:07 Yeah, if we get platform built as I expect, Win/PS/SSH will be the #1 acceptance test 20:24:15 I had a couple issues with quotes and args, I think jborean93 talked about changing how args are passed (looking for the issue) where the comment was made. 20:24:22 dag1: That was the first thing on my list up there 20:24:28 nitzmahone: I know, but Windows controller is probably not on the roadmap ;-) whereas multi-threaded Ansible does offer some advantages to Linux too 20:24:50 nitzmahone: I see 20:25:12 I still need to implement recursive subspec and a couple other things (and clean it up), but "early in 2.5" is my plan. Hoping we can convert most/all modules to use it in 2.5 as a real acid test for it. 20:25:28 that would be great 20:25:36 more joy ! 20:25:38 dag1: right- Jimi wasn't thinking Windows when he did that, but I sure was ;) 20:25:42 BasicTheProgram: it was changed here https://github.com/ansible/ansible/pull/30253 20:25:43 I'll probably find loads of errors in my playbooks 20:26:10 nitzmahone: Can we add that list to the Wiki somewhere so other people can see what's coming (or at least planned) 20:26:14 jhawkesworth_: that's the idea- it'll be great to have "bogus arg" validation at least 20:26:19 s/least/last/ 20:26:33 dag1: it'll be on the official roadmap this week I believe 20:26:41 Thanks jborean93 I didn’t see that PR 20:26:44 (not much sense in duplicating on wiki IMO) 20:27:09 Once it's in there, we can put a tasklist for "modules needing conversion/test" on the wiki 20:28:00 Roadmap is a little behind since Dylan's been on baby duty, but I think we're nailing it down this week 20:28:57 great 20:29:05 I think there's some benefit to have things in a single place, but no problem 20:29:23 we have the roadmap linked from the Wiki Plan page, people just might not find it 20:29:32 Though I guess once the roadmap's locked we could have more granular status on our wiki 20:29:52 Just don't want to be updating things in multiple places 20:30:21 I understand 20:30:33 agreed. update the roadmap if it has changed though. Stuff changes 20:32:12 Anything else to chat about today? 20:32:33 maybe we could go over https://github.com/ansible/community/wiki/Windows:-action-list and clean it up ? 20:33:15 good idea 20:33:17 it may give some food for thought for the v2.5 roadmap too, so we don't miss out on anything if the roadmap is locked :p 20:33:29 good call 20:33:39 Who's going to do the actual edits? 20:33:48 (so we're not tripping on each other) 20:33:51 yeah :) 20:34:01 Github Wiki conflict detection is non-existing :-( 20:34:07 exactly 20:34:09 I am happy to 20:34:32 so easy to implement (just keep the previous version and check it on commit) 20:35:15 Powershell coding style/syntax is on me now- I've got it working locally, just need to clean up and merge 20:35:29 (and set the initial ignore list) 20:35:53 I was going to look at refactoring some tests to speed it up. Not sure how successful I will be 20:36:04 Is "-Upstream win_oneget -- trondhindenes" still relevant ? 20:36:41 I believe parts of it is 20:36:54 Unfortunately oneget is pretty confusing from an implementation perspective 20:37:15 the chocolatey provider isn't even official 20:37:23 We merged pspackage/psmodule thing right? That's most of it, IIRC 20:37:27 * nitzmahone looks 20:37:47 I am working on a visualization for 'Work out matrix of options wrt. ConfigurRemotingForAnsible.ps1' 20:37:58 psmodule is in 20:39:04 Implement #AnsibleRequires functionality is done, I'll cross that out 20:39:06 Something else for me for "individual actions" is to merge the winrm connection plugin docs 20:39:07 `Ensure service accounts don't need NT AUTHORITY\ prepended for convenience` is done if you use the new module utils 20:39:44 jhawkesworth_: it's not- #AnsibleRequires is for req's other than module_utils 20:40:07 (eg, OS version, "module requires become", etc) 20:40:14 nitzmahone: are these docs already created and just need editing 20:40:18 ah ok I see what you mean, I'll leave that 20:40:34 what exactly are they in particular? 20:40:56 jborean93: Yeah, I wrote them last year- they're just sitting on my Google drive in a spreadsheet needing transformation to YAML 20:41:11 YAML? not RST 20:41:22 Plugin docs are all YAML 20:41:29 (like module docs) 20:41:55 `ansible-doc -t connection -a` 20:42:22 I was trying to get it done for 2.4.0, but some late-breaking Azure stuff screwed me up. 20:43:16 Maybe we could add something like "- Implement a solution for updating facts from modules granularly (?)" so we keep tracking that too 20:43:35 they get converted to rst for webpage, but 'embeded docs' are YAML 20:43:45 nitzmahone bcoca: ah ok, probably need to at those docs a bit closer 20:44:01 so bcoca is lurking again ;-) 20:44:08 he's like God 20:44:09 im always lurking 20:44:18 dont demote me!! I AM ROOT 20:44:26 :-) 20:44:43 right I think I have saved all changes discussed above 20:45:08 where are we with Windows 2016 support for testing ? 20:45:14 (And may I add Windows 10 support :p) 20:45:47 Windows 2016 (and maybe Nano ?) is becoming more and more important 20:45:49 Windows 10 CI is probably not going to happen anytime soon- we'd have to maintain images 20:45:56 yeah 20:45:59 bummer 20:46:07 slightly related to that I think there was a plan to make the s2012r2 use PS 5.1 and keep s2012 on PS 4. 20:46:12 shall I put that on the list? 20:46:17 But 2016 will, one way or another. Currently blocked on pywinrm update 20:46:51 (since it hits the HTTPS wedging problem, we'll have to do 2016 w/ NTLM or CredSSP over HTTP) 20:47:11 not a bad thing, means we test another matrix option 20:47:13 Hoping to kick out a pywinrm beta this week, so we can add 2016 with that at that point 20:47:16 Also mattclay has a (test?) PR open where he separated the different Windows targets in Shippable, I would really like that 20:47:17 exactly 20:48:06 interesting, that will kill using S2016 for us. 20:48:26 ? 20:48:43 why is that? 20:48:57 I can't imagine us not using kerberos / https 20:49:22 this is just for testing, I've been using 2016 with Kerberos locally fine 20:49:35 That's what the pywinrm beta will fix (so we can do encrypted NTLM/Kerb/CredSSP over HTTP) 20:49:37 plus nitzmahone has a HTTP Kerberos encryption PR as well floating somewhere 20:49:48 ah ok 20:50:25 Jordan got NTLM/CredSSP encryption working, and I have kerb working- we just need to merge them all together and get the necessary upstream bits shipped 20:51:06 that's great - so this is the content of next pywinrm? 20:52:05 ye 20:52:08 *yep 20:52:45 That and fixing the damned error messaging to include the SOAP fault data on 500s when present 20:53:17 Just do it ! 20:53:18 not that they are very helpful 20:53:18 Plus a few other things. We should probably move the send_input stuff in there 20:53:19 that will be good to have too. 20:54:49 alright, good stuff for the lurkers to read in the logs tonight/tomorrow ! 20:55:58 cool, nothing else pressing 20:56:00 1 20:56:02 2 20:56:03 3 20:56:21 lol- was wondering how far up we were counting ;) 20:56:26 just 3 20:56:36 plus a bit of extra time because it was pretty quick 20:56:47 cool, the tribe has spoken 20:56:50 #endmeeting