20:00:01 <nitzmahone> #startmeeting Ansible Windows Working Group 20:00:01 <zodbot> Meeting started Tue Feb 8 20:00:01 2022 UTC. 20:00:01 <zodbot> This meeting is logged and archived in a public location. 20:00:01 <zodbot> The chair is nitzmahone. Information about MeetBot at https://fedoraproject.org/wiki/Zodbot#Meeting_Functions. 20:00:01 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic. 20:00:01 <zodbot> The meeting name has been set to 'ansible_windows_working_group' 20:00:04 <nitzmahone> bah 20:00:09 <nitzmahone> #chair jborean93 20:00:09 <zodbot> Current chairs: jborean93 nitzmahone 20:00:13 <nitzmahone> #agenda https://github.com/ansible/community/issues/644 20:00:36 <nitzmahone> Looks like nothing new for today, so 20:00:38 <nitzmahone> #topic open floor 20:00:38 <jborean93> yo 20:00:41 <nitzmahone> hey hey 20:01:11 <nitzmahone> We'll wait until 5 after for any topics 20:01:13 <jborean93> I've got nothing interesting to share. I believe I've stabilised the tests in a.w and c.w which is nice 20:01:18 <nitzmahone> woot 20:01:51 <nitzmahone> Oh, and in case briantist is around, mattclay has a fix for the validate-modules when only PS modules are present issue merged to devel 20:02:01 <briantist> hello! 20:02:12 <nitzmahone> (though apparently there's something weird with the backport for 2.12) 20:02:13 <briantist> yeah I saw that fix, happy to see it (and the backport!) 20:02:16 <briantist> oh nooo 20:02:22 <nitzmahone> We'll get it sorted 20:02:50 <nitzmahone> Just relying on the implicit collection loader startup from pluginloader wasn't good enough since it needs to customize the collection path 20:03:04 <nitzmahone> (was the gist, IIRC) 20:03:28 <briantist> the mssql collection is coming along, currently testing with the pwsh_runner plugin directly in the linux runners, against a sqlserver container 20:03:34 <nitzmahone> nice 20:03:47 <briantist> I have some ideas for adding in windows tests too, with the windows runners + WSL 20:04:06 <nitzmahone> we can't run WSL on server though, and it takes a while to install + reboot on client 20:04:22 <nitzmahone> So there's a significant cost to adding WSL testing, though it is possible 20:04:47 <briantist> it works in GitHub runners, and there's a nice action to configure it; my tests with debian WSL on 2022 continue to be crashing when runing ansible command though, have not figured out why yet 20:05:12 <briantist> https://github.com/briantist/gha-junk/actions/runs/1810147132 20:05:25 <briantist> https://github.com/briantist/gha-junk/blob/main/.github/workflows/wsl.yml 20:05:29 <nitzmahone> Yeah, I thought nobody had solved the WSL-on-2022 problem enough to get it functional yet 20:05:40 <nitzmahone> (and MS was like "go away, not supported") 20:05:49 <briantist> oh? 20:06:03 <nitzmahone> Are you doing WSL1 or WSL2? 20:06:06 <briantist> oops, correct workflow link: https://github.com/briantist/gha-junk/blob/try/.github/workflows/wsl.yml 20:06:19 <briantist> WSL1 is th eonly one supported on server as far as I know 20:06:21 <nitzmahone> (I think WSL1 works, but WSL2 is nogo) 20:06:23 <nitzmahone> aha 20:06:40 <briantist> and these are VMs without VinV anyway so WSL2 could not work 20:06:41 <nitzmahone> but yeah, maybe good enough 20:07:06 <jborean93> let's just hope you don't need a reboot :) 20:07:09 <nitzmahone> Yeah, I put together a gist for how to enable WSL2 on our Win10/Win11 ansible-test VMs 20:07:15 <briantist> so far seems good enough, except 2022+debian / other Windows or other distro is ok, slow to start of course, 20:07:29 <nitzmahone> But it takes ~5min to get the VM up, bits installed, and rebooted 20:07:37 <briantist> GitHub started pre-installing the WSL feature in 2019 runners, so that a rbeoot is not necessary 20:07:53 <briantist> still have to set up a distro, but no reboot needed 20:08:06 <nitzmahone> nice- our devtools group needs WSL2 for some testing, so I just wanted to make sure it was possible 20:08:08 <jborean93> That's nice, I remember some crazy setup in the Appveyor days to get it running and it was not fun 20:08:19 <nitzmahone> and totally unsupported (probably still is) 20:08:33 <briantist> this guy did great work to make it a lot easier: https://github.com/Vampire/setup-wsl 20:08:34 <nitzmahone> But hey, it's CI, so long as it works... 20:10:15 <nitzmahone> Our AZP VMs have nested virt enabled, so WSL2 works fine- just requires either a pre-customized image (which we try to avoid) or passing a custom startup script blob (which was what my test did) 20:10:16 <briantist> I am wondering if the issues with debian/2022 are going to rear their head with other combos when trying to run stuff more intensive... the runners only have 7 GB of RAM. WSL1 is much lighter on RAM than WSL2 though... so we'll see 20:10:39 <briantist> that's cool! definitely a lot more flexibility using AZP directly 20:12:10 <nitzmahone> Passing this script blob to ansible-core-ci on a stock `windows/10` or `windows/11` VM lights it up: https://gist.github.com/nitzmahone/714a6fd9ceea1e08b21b0cdbbbb7090a 20:12:45 <jborean93> > Set-StrictMode -Version 2.0 20:12:45 <jborean93> boo-urns :) 20:12:47 <nitzmahone> (it replaces the normal bootstrap config we use for WinRM and still calls that one) 20:12:53 <nitzmahone> :P 20:13:08 <briantist> lol boo-urns 20:13:40 <briantist> nice use of `Register-ScheduledJob` 20:14:02 <nitzmahone> Yeah, that was a PITA, but at least I can rely on those cmdlets being available now :D 20:15:34 <nitzmahone> I was also bummed we had to roll a new credential, but the Azure agent runs as SYSTEM, which broke a bunch of stuff 20:16:07 <nitzmahone> that script is very much not production-ready, but just wanted to ensure it was possible 20:16:09 <briantist> heh, same thing in my GHA workflow 20:16:16 <briantist> well, not same, doesn't run as system 20:17:34 <briantist> but don't have the admin password and need creds from wsl to use over psrp 20:17:36 <briantist> https://github.com/briantist/gha-junk/blob/try/.github/workflows/wsl.yml#L33-L37 20:17:47 <nitzmahone> Heh, I was recently revisiting my foreign-arch GHA-runner on Windows/arm64- whee 20:18:18 <briantist> once that stdin/stdout pypsrp stuff is ready and in ansible, I won't need that anymore I reckon 😅 20:18:25 <nitzmahone> Can't you just force-reset the existing user's password? 20:18:33 <briantist> haha maybe?? 20:18:46 <nitzmahone> Meh, at least this way you know exactly what you have... 20:18:57 <briantist> seems easier to just add a new one, no idea if resetting would mess up the agent runner app 20:19:00 <nitzmahone> I've done that before for remote-debug in GHA runners 20:19:03 <nitzmahone> yeah 20:19:19 <briantist> remote debug in GHA runners? tell me more 👀 20:19:30 <nitzmahone> IIRC the agent runner isn't `Administrator`, they create their own user, but I could be remembering wrong 20:19:50 <nitzmahone> (I run mine as a `runner` user I create) 20:20:13 <nitzmahone> Oh, there are various tricks for getting into them with ssh and RDP reflectors 20:20:53 <nitzmahone> Trying to debug problems by iteratively running changes is for the birds 20:20:58 <briantist> that would really help me get to the bottom of this debian/2022 thing... 20:21:31 <briantist> I should just stop burning hours on that and use ubuntu, but Debian seems to get set up like a full minute quicker, so it would be nice to use.. 20:22:25 <nitzmahone> Have you use ngrok before? 20:22:35 <briantist> nope 20:22:45 <briantist> googling... 20:23:15 <briantist> is there website down or is that some problem with my connection? 20:23:18 <briantist> their* 20:23:20 <nitzmahone> Take a look at it- some people have wrapped it up in actions for interactive debug on Linux hosts, works great... I borrowed similar techniques to get it working on Windows awhile back, but dunno if it still does: https://github.com/nitzmahone/debug-via-ssh 20:23:39 <nitzmahone> (ngrok.com is working for me from here) 20:23:55 <jborean93> slow but also works for me 20:24:18 <briantist> cool, thanks! 20:24:19 <nitzmahone> Basically you have your workflow install/configure an ngrok tunnel 20:24:45 <nitzmahone> It's "frowned upon", but so long as you're not using it for mining or something, they should leave you alone 20:25:04 <nitzmahone> (and sometimes it's the only way to figure out what wacky shiz they've done) 20:25:43 <nitzmahone> then you have your workflow just block and dump the ngrok config, where you can RDP/SSH/whatever to the worker through the reflector 20:26:02 <nitzmahone> It's a lot harder than it was for Appveyor, but still possible 20:26:10 <briantist> definitely going to take a look at that 20:26:26 <nitzmahone> It's a game changer if you've been relying on iterative pushes to diagnose stuff :D 20:26:58 <nitzmahone> Blows my mind that there's no officially-supported mechanism for this kind of debug 20:27:06 <nitzmahone> (but maybe a licensing thing or something, who knows) 20:28:08 <nitzmahone> Welp, if nothing else, we'll wrap it up for this week! 20:28:50 <jborean93> I'm all good 20:29:08 <nitzmahone> til next week then, thanks all! 20:29:11 <nitzmahone> #endmeeting