17:02:30 #startmeeting Ansible Lockdown Working Group Meeting 17:02:30 Meeting started Thu Nov 15 17:02:30 2018 UTC. 17:02:30 This meeting is logged and archived in a public location. 17:02:30 The chair is defionscode. Information about MeetBot at http://wiki.debian.org/MeetBot. 17:02:30 Useful Commands: #action #agreed #halp #info #idea #link #topic. 17:02:30 The meeting name has been set to 'ansible_lockdown_working_group_meeting' 17:03:13 here 17:03:17 lets pick up off where we left off for that last agenda and then hit the items that shepdelacreme has brought up 17:03:19 welcome treyp_ 17:03:32 #topic Galaxy 17:04:02 should we automate tags/pushes to galaxy? 17:04:40 I lean slightly to no simply because there's not an obvious clean way of doing proper semver in the build process atm 17:04:55 what would that process look like? 17:05:19 in the CI config file add ansible galaxy commands that will run if the tests pass 17:05:31 I don't think cutting a new release every time something is merged into devel makes sense 17:05:43 fyi, calendar has meeting 1h earlier 17:05:53 probalby ics file needs to be updated 17:06:00 bcoca: yeah but readme for the meeting says 12pm EST 17:06:03 DST 17:06:05 iirc it doesn't do DST 17:06:15 it doesnt 17:06:19 why you should update ics then 17:06:36 or just peg it to UTC, we'll vote on that later 17:07:00 cyberpear_ thoughts/opinions on automated tags? 17:07:15 right now seems like 2 nays 17:07:41 Seems like it should be easy to have Dev numbering system that is a sub number of main releases, but I don't actually use Galaxy so no strong opinion 17:08:02 galaxy is going to require semantic versioning to handle versions 17:08:22 cyberpear_: yeah semver can handle that but i think it'll be safer for one of us to cut a new release when it's ready 17:08:29 you are still able to use anything (commit hash, etc) for install, but version conflict management will only happen with semver 17:08:41 yep 17:08:43 on a related topic is there a way with CI to have galaxy automatically run a refresh/import when we create a new tag/release in github? 17:09:04 ¯\_(ツ)_/¯ 17:09:14 ansible-galaxy cli can be used ti push , so i guess you can automate that way 17:09:36 ok 17:09:47 shepdelacreme: well we wouldnt do that via CI b/c ci isn't trigged on a tag push 17:09:50 afaik 17:09:55 issue is credentials mgmt, i know shippable and travis have a way to handle those w/o disclosing 17:10:22 defionscode: depends, you can make tags work as commits 17:10:26 bcoca: we're using travis right now but will be moving to openstack's testing infra 17:10:42 one zuull to rule them all! 17:10:48 ha! 17:10:58 * bcoca mixes franchises 17:11:21 defionscode: AFAIK github.com/ansible-network/* releases are done via Zuul on tag, just trying to find the role for that 17:11:34 #agreed no automated tagging in CI on PR merge 17:12:09 gundalow: oh i knos it's possible but given the nature of our project it might not be the safe thing to do 'always' 17:12:25 unless you only accept 'complete' PRs 17:12:28 Sure, you could make it depending on $something 17:12:31 #idea investigate looking into triggering CI via git tag push 17:12:53 oh. github.com/ansible-network/* pushing to Galaxy is when someone tags a release, not every merge 17:13:03 gundalow: yeah that workflow is saner 17:13:09 agreed 17:13:11 on git tag, that totally works 17:13:34 https://github.com/ansible-network/zuul-config/blob/master/zuul.d/jobs.yaml#L80-L89 17:13:55 gundalow: can you #link that? 17:13:56 https://github.com/ansible-network/zuul-config/blob/master/playbooks/publish/galaxy.yaml 17:14:58 #info github.com/ansible-network/* are Galaxy repos. AFAIK Zuul is configured to push a release to Galaxy on `git tag`, see https://github.com/ansible-network/zuul-config/blob/master/zuul.d/jobs.yaml#L80-L89 and https://github.com/ansible-network/zuul-config/blob/master/playbooks/publish/galaxy.yaml as in #ansible-network for more info 17:15:17 next item, pulp builds 17:15:21 that works...we can replicate that behavior once we move to openstack and zuul 17:15:50 does it make sense to provide 'offline' packs for lockdown stuff? I dont think it'd be hard given there is already ansible_pulp 17:16:15 defionscode: galaxy aims to do that in the background, use pulp for role/content distribution, is it needed right now or can it wait for that? 17:16:22 but not sure if anyone would get value from it, mainly b/c agency users aren't really vocal on mailing list, etc 17:16:54 bcoca: not sure? i think have $FOO agency users that leverage this in air gapped places 17:17:10 I'm pretty sure Paul can do it without any help from us. Again, I just grabbed the git repo where needed 17:17:18 defionscode: just to avoid dupe effort, if you can just mirror the galaxy pulp 17:17:19 how does pulp solve this? I'm not familiar with pulp builds 17:17:21 it's more about the role being easy to store in USB/CD for transport more than the galaxy piece 17:17:32 Pulp 17:17:34 shepdelacreme: i believe it tars up the role and dependencies 17:17:38 but i dont know for sure 17:17:41 hmm ok 17:18:10 pulp is basically a 'package repo' that stores the actual packages vs references to them (previous galaxy) 17:18:33 having worked in that world...getting ansible and dependencies and role content over to the air gapped network was always a pita 17:19:18 bcoca: do you know if 'new' maser-based galaxy will have the option to pull down the pulp artifact as-is? ie, not-extracted? 17:19:23 if so, then i vote we wait 17:19:25 i would just check with galaxy team to see if their work is easy to levarage 17:19:55 defionscode: idk, ^ hence i would first talkt to the team (chouse?) and see if that can be reused before buliding your own 17:20:00 #action check with galaxy team about leveraging the future built-in pulp mechanism 17:20:04 yep ok 17:20:18 we'll hold off on deciding based on that then? work for you shepdelacreme and cyberpear_ ? 17:20:19 just seems worth checking before doing same thing 17:20:23 yep i agree 17:20:34 Yes 17:20:37 yes 17:20:40 * bcoca is lazy that way 17:20:56 #topic development experience 17:21:07 first subtopic 17:21:38 i have the MVP workings of a docker based 'tinkering' tool that allows you to run a single rule from the role against a centos container 17:21:49 which makes iterating a little easier 17:22:12 shepdelacreme: cyberpear_ is that something that would help you guys out too? if so I can make a sort of /tools dir and add that in there 17:22:44 could probably make it something you could add to $PATH even to make it even smoother 17:23:45 Not a bad idea. hacking/ 17:23:56 yeah I think that helps...as is right now I run molecule and pass it tags to run a specific rule or group of rules 17:24:09 I'd be interested to see how your solution works 17:24:22 Similar to ansible itself 17:24:34 ok cool wfm i'll put that on my todo's 17:24:50 Like right now I just run something like: molecule converge --scenario-name vagrant -- --tags RHEL-07-010118 17:24:59 #action defionscode to create hacking dir with single-rule dynamic test setup 17:25:46 molecule way isn't bad, feels a little slow b/c of the setup/tear down stuff but maybe that's cleaner? 17:25:58 ah yeah...I don 17:26:52 i was just looking at project the other day that did this well .. ansible-builder? 17:26:58 I don't run the whole cycle every time. I'll do create and then run just converge so it stays up between runs 17:27:18 ah interesting 17:27:39 bcoca: link? 17:28:03 Ansible - blender 17:28:11 ^ i think that is it 17:28:44 my googling doesnt turn up anything obvous 17:29:03 but shepdelacreme's idea seems like it would accomplish the same thing too 17:29:04 I just get ansible roles for blender render farms lol 17:29:12 i cannot find it now, but it was posted in internal slack last week 17:29:34 it would be easy to wrap molecule in a bash script to PATHify it too 17:29:52 defionscode: maybe we just need to flesh out the testing docs a bit more to document how people can iterate on specific rules? 17:30:03 using converge didnt occur to me before 17:30:19 yeah 17:30:32 it is annoying if you want the host to reset to the base/starting config though 17:30:52 cant you just destroy it at that point? 17:30:57 with docker its not a hugely long wait but with vagrant it can take forever 17:31:05 oh right 17:31:15 you havent tried converge with the docker stuff? 17:31:22 yeah it works with docker 17:31:23 molecule/docker i mean 17:31:45 #idea use molecule converge for single-rule iteration 17:32:11 #idea create bash wrapper for converge iteration 17:32:44 next item 17:33:04 cyberpear_: shepdelacreme should we re-add oscap into the CI process to further constrain pass/fail criteria? 17:33:29 in tandem with the oscap_facts module I have PR open for, we could add it in rather easily 17:33:48 * defionscode knows he stills has to update the PR to not abuse fail_json 17:33:49 Yes, plus that helps keep ssg up to date 17:33:54 I'm good with that. 17:34:06 ok 17:34:18 Curious though. It would pass/fail based on a score we set right? 17:34:23 the PITA is the fault DISA SCAP content for Rel2 17:34:27 on a % score yeah 17:34:31 at the severity level 17:34:40 (or total if we prefer) 17:34:46 but I think at severity level is better 17:35:04 Would be nice and rather cool if we could track pass/fail status of each rule. Then fail a PR if a rule goes from pass -> fail. 17:35:23 #agreed re-integrate oscap results into CI pass/fail criteria 17:35:36 #idea track pass/fail status of each rule 17:36:17 shepdelacreme: I agree, that wouldn't be hard, we'd prob's have to template a YML file and store in S3 or something...maybe in git, but i hate the idea of making commits in git from CI 17:36:57 yeah...storing the previous result in S3 could work. I dislike having to commit the results file into the repo 17:37:42 #idea store per-rule results in S3 or something similar 17:37:58 oh on that note 17:38:25 shepdelacreme: and cyberpear_ which benchmark file should we default too? I err on the side of using the DISA content vs SSG 17:38:32 but DISA stuff wont run on Centos 17:38:47 SSG stuff runs on both but it's not up to date 17:38:56 as of a cpl weeks ago anyway 17:39:19 also DISA's stuff seems faulty at the present as documented in the GH issue 17:39:20 DISA vs RHEL and ssg vs both? 17:39:55 hmm, we _could_ but that would make tracking trickier given the disparity in versions 17:40:02 like banner for example 17:40:07 would pass SSG content AFAIK 17:40:09 but fail DISA 17:41:07 I've been operating as "satisfy DISA", ignore SSG results for items DISA benchmark covers, satisfy remaining SSG 17:41:29 so you can't use the DISA xccdf file against CentOS ? 17:41:33 unless a particular rule (disa or ssg) is broken 17:41:44 you can hack the disa xccdf to run against centos 17:42:03 s/redhat-release-server/centos-release/g and s/6Server/6/g 17:42:10 yeah, not out of the box you cant because of the OS check 17:42:55 otherwise, create a bogus package called "redhat-release-server" and install it on the centos machine... 17:42:58 cyberpear: ah yeah i was operating under the assumption of the SSG STIG profile 17:43:04 i forget there is a more broad one 17:43:27 so either a patch file or a dummy rpm 17:43:48 i think i prefer the patch file 17:44:00 it's more obvious to outsiders/new-comers i'd think 17:45:15 +1 to a scripted patching of DISA benchmark 17:47:04 cyberpear: you up to take that one? make patch file, add it somewhere 17:47:40 shouldn't be hard to do since it seems you know what bits in teh xccdf need to be swapped 17:47:48 yeah, I should be able to get that 17:47:53 dope 17:48:08 #action cyberpear to create patch file to make disa xccdf use-able in centos 17:48:49 odyssey4me: mnaser either of you around? 17:49:03 defionscode: il 17:49:06 I’m 17:49:16 I’m in a cab? Hah. It’s the openstack summit this week 17:49:20 So most of us are there :) 17:49:27 ah very cool 17:49:36 also +1 to you for having a mobile client 17:49:53 mnaser: two questions im not sure if you have the answer to 17:50:05 1) any insight on getting us access to openstacks testing infra? 17:50:08 Sure. I can try. 17:50:36 Yes. That’s possible. I would try to ping clarkb on #openstack-infra or email openstack-infra mailing list 17:50:39 and 2) have you a set opinion on deferring ubuntu 16 compatibility to an ubuntu 16 stig rule given there is an upstream benchmark for that now? 17:50:50 ok 17:51:06 #action defionscode to ping clarkb on #openstack-infra/mailing-list 17:53:08 #topic domains from AH 17:53:15 shepdelacreme: this is your agenda item 17:53:43 iirc the AH team doesnt care how the content is organized, i think it's easier to maintain by severity as we do now 17:54:19 yeah sorry 17:54:35 I just wanted to get buy in before I removed it all 17:54:50 if no one is partial to the "domains" stuff in the docs I will cut it 17:55:00 cyberpear: opinions on that? i vote cut it 17:55:25 haven't looked closely. Sounds like what we currently have some (incomplete) tags for 17:55:34 no strong opinion 17:55:55 most folks applying the STIG are required to have the whole thing 17:56:03 ok...I will cut it. Adding it back in is easy enough if we decide to organize by domains/tags 17:56:09 #agreed on not having domains 17:56:30 #topic contrib stuff from AH 17:57:07 so on that, i think we wanted to keep a sort of 'extra.yml' or something to preserve backwards compat with AH but maintership/updates on that would rest with the AH team ie odyssey4me mnaser etc 17:57:21 So it seems like the AH role has some stuff that isn't in the stig and that is what the "contrib" stuff is... 17:57:48 it looks like for now the only thing in the documentation is C-00001 - Disable IPv6 17:57:55 Yeah. I think that should be okay if we have to make things so they continue to work for everyone :) 17:57:59 but there might be other contrib items that just aren't documented 17:58:37 mnaser: have you thoughts on the ubuntu 16 stuff? 17:58:52 on making it it's own standalone role since it has a STIG benchmark 17:59:11 defionscode: why not just have it in the same role with a conditional 17:59:16 That would make testing easier too 17:59:25 In upstream openstack too 17:59:47 that would explode the content to roughly 2x 18:00:00 You’ll see Ansible hardening has a single entry point 18:00:01 For people that use the STIGs for compliance/audit reasons they would want their Ubuntu hardening to follow the ubuntu STIG 18:00:06 And a rhel7stig folder 18:00:18 and would make not-obvious for ansible-galaxy based installations 18:00:21 We would add a ubuntu16stig folder and include things in that? 18:01:01 (Sorry, I really have to drop off but feel free to raise this in openstack-dev and I’ll be more than happy to clarify more over a mobile client) 18:01:09 it would not make testing easier from a oscap evaluation standpoint either 18:01:16 ok, will do 18:01:39 #action hit up openstack-dev about hardening split for ubuntu 18:02:01 #topic identifier for docs 18:02:19 shepdelacreme: you've been hacking away at that, would it be hard to just use both? 18:02:44 we can include both in the front matter yes 18:02:47 from developing the STIG CLI there has only been one instance where the vuln ID was duplicated but i forget which two STIGs taht was 18:02:48 +1 use both. The STIG is sorted by STIG-ID, but many things refer to the V-# 18:03:01 but there sort of needs to be a "primary" for sorting/viewing 18:03:28 i think with sphinx there is still a good native search utility 18:03:53 let's do both and then keep the STIG id as primary? 18:03:57 +1 18:04:03 yeah there is...for the list of rules by category or whatever though I will switch from V- to RHEL-07 if everyone agrees 18:04:04 then if someone need to do a vuln id lookup they can use search? 18:04:11 yeah 18:04:15 that's fine 18:04:20 works for me :) 18:04:22 ok agreed then 18:04:43 #agreed keep stig ID as primary but include vuln ID in front matter 18:04:53 #topic open topics 18:05:05 cyberpear: shepdelacreme anything else ya'll want to cover? 18:05:28 * cyberpear created the github orgs ansible-lockdown and ansible-lockdown-sig 18:05:29 real quick comment about my work on the docs and doc generator 18:05:44 mystery solved! 18:06:04 (btw, RHEL 8 beta dropped! Let's get started on the STIG! :P) 18:06:21 just a heads up cyberpear you may or may not get an email from Github support 18:06:51 ooooo! 18:07:04 cyberpear: can you give us access! 18:07:06 ? 18:07:10 yeah 18:07:15 we were unsure who created those orgs haha 18:07:27 i am planing to build the script to gen the scaffolding for all the stigs soon 18:07:42 shepdelacreme: whats yoru docs comment? 18:08:20 I need to standardize some of the content (like making sure all blocks: are named etc) so that the generator script can easily parse it 18:08:44 so my docs PR will include those updates if everyone is fine with lumping all those changes together 18:10:00 if the role updates are purely on a `name:` scope, then idc 18:10:15 same with tags etc 18:10:17 yeah...may include some tag fix ups as well 18:10:19 ok great 18:10:34 cyberpear, opinions? 18:11:20 generally, PRs or commits that only re-arrange what's already there should be separate from PRs/commits that make real changes. 18:11:50 that makes it easier to do archaeology to figure out why things break or why they are the way they are 18:12:30 so make it a separate commit and then it's probably fine as long as it stays a separate commit after the PR is merged. 18:13:01 cyberpear: so you consider `name:` and tag updates 'real' changes? 18:13:06 no 18:13:29 what about changing 'fix-cat1-.yml' to 'cat1.yml' 18:13:30 not familiar w/ the docs work 18:13:38 right, so if shepdelacreme PR has commits that include docs and tag/name updates then there shouldnt be a problem 18:13:53 should be fine 18:13:57 cyberpear: we're making something that piggy backs off ansible-hardenings sphinx build proces 18:14:05 docs work is all new content...doesn't change any function of the role itself 18:14:30 shepdelacreme: i think we settled that last meeting no? i think we're all good with removing the fix- prefix 18:14:45 but I'm trying to make a script that parses the content in the tasks files to build the content for each rule in the docs 18:15:16 right we did settle it...was just saying I will probably include that change in my PR 18:15:29 ah, sure 18:15:36 should have no logic impact 18:15:37 I can split that stuff out into a separate PR that doesn't include the docs stuff though 18:15:44 ok 18:16:08 thats all I have then 18:16:15 cool 18:16:39 cyberpear (or anyone else) anything you want to discuss before wrap up? 18:16:57 nothing from me. Sent those github invites. 18:17:19 dope 18:17:23 #endmeeting