Perl 6 - the future is here, just unevenly distributed

IRC log for #salt, 2018-05-07

| Channels | #salt index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 onslack joined #salt
00:03 Psi-Jack Well, I found a solution to that, sorta. Using Include methods.
00:17 zerocoolback joined #salt
00:22 zerocoolback joined #salt
00:49 stooj joined #salt
00:49 Whissi joined #salt
00:55 JacobsLadd3r joined #salt
01:28 shiranaihito joined #salt
01:56 ilbot3 joined #salt
01:56 Topic for #salt is now Welcome to #salt! <+> Latest Versions: 2017.7.5, 2018.3.0 <+> Support: https://www.saltstack.com/support/ <+> Logs: http://irclog.perlgeek.de/salt/ <+> Paste: https://gist.github.com/ <+> See also: #salt-devel, #salt-offtopic, and https://saltstackcommunity.herokuapp.com (for slack) <+> We are volunteers and may not have immediate answers
02:03 zwliu joined #salt
02:24 AvengerMoJo joined #salt
02:40 zerocoolback joined #salt
02:45 JPT joined #salt
02:46 Psi-Jack Hah.. I got caught by the vault bug on 2018.3.0
02:48 riceandbeans joined #salt
02:49 riceandbeans joined #salt
02:49 riceandbeans If you want to write new modules for salt, do they have to be in Python?
02:52 Psi-Jack Well... salt... is made in python...
02:54 sauvin_ joined #salt
02:55 riceandbeans Sure
02:56 riceandbeans And Puppet is written in Ruby, and modules are written in Puppet's DSL
02:57 riceandbeans I just started playing with Salt last night, long background with Chef and Puppet
02:57 dxiri joined #salt
02:57 Psi-Jack There is a PyDSL renderer, but again, python-centric.
02:58 riceandbeans Ok, simple enough, the documentation was unclear on a lot of things
03:00 Psi-Jack Mmmm, I just got salt working nicely with vault.
03:10 dxiri joined #salt
03:11 zwliu joined #salt
03:11 dxiri joined #salt
03:17 zerocoolback joined #salt
03:18 dxiri joined #salt
03:22 dxiri_ joined #salt
03:32 dxiri joined #salt
04:05 mrueg joined #salt
04:06 zwliu joined #salt
04:07 dxiri joined #salt
04:33 Psi-Jack Woo, got it. First use of salt+vault functional.
05:19 hoonetorg joined #salt
05:34 Psi-Jack Hmmm
05:34 Psi-Jack Is there a way to have per-minion unique pillars optionally?
05:49 darioleidi joined #salt
06:00 MTecknology Psi-Jack: What does "per-minion unique pillars optionally" mean?
06:01 Psi-Jack I figured out a method. in the top.sls, ignore_missing: True, and doing a line with hosts.{{grains.id}}, and setting up hosts/hostname/domain/tld.sls
06:01 Psi-Jack Not too purty, but works.
06:06 jesusaur joined #salt
06:06 onslack <alex> if I run a state with pillarenv=X, and in the state I use {{ salt.pillar.get('bla') }}. will it use the pillarenv I passed on the CLI or do I have to use {{ salt.pillar.get('blat', pillarenv=opts.pillarenv) }}?
06:07 Psi-Jack There's a Slack?
06:10 onslack <alex> yeah
06:12 colttt joined #salt
06:12 AvengerMoJo joined #salt
06:15 Psi-Jack Wooo... Almost got my borgbackup+borgmatic state stuff working, with per-host customization options, hence the earlier question of per-minion pillar data. :)
06:15 _jurgen_ joined #salt
06:20 briner joined #salt
06:23 briner_ joined #salt
06:25 xet7 joined #salt
06:33 jhauser joined #salt
06:37 vali left #salt
06:46 rollniak joined #salt
06:46 zwliu joined #salt
06:57 DanyC joined #salt
06:57 swa_mobil joined #salt
07:07 BHauser joined #salt
07:12 Hybrid joined #salt
07:13 briner joined #salt
07:16 Tucky joined #salt
07:33 Pjusur joined #salt
07:36 zwliu joined #salt
07:43 DanyC joined #salt
07:58 jrenner joined #salt
08:14 bdrung_work joined #salt
08:16 rollniak joined #salt
08:20 Ricardo1000 joined #salt
08:21 briner joined #salt
08:23 Psi-Jack Hmmm. Now then. Is there a specific salt-way to enable a systemd timer unit?
08:29 Psi-Jack Heh. I guess not. service.running, with enabled: True, did it when the name was blah.timer
08:33 evle joined #salt
08:36 briner joined #salt
08:44 inad922 joined #salt
08:46 xet7 joined #salt
08:51 Mattch joined #salt
09:10 stooj joined #salt
09:21 arlyon joined #salt
09:35 Naresh joined #salt
09:45 DanyC joined #salt
09:47 sugarfree joined #salt
09:48 sugarfree hello
09:50 Psi-Jack Sauvin: You're... Everywhere. LOL
09:51 sugarfree joined #salt
09:53 zerocool_ joined #salt
09:58 sugarfree I try set a boolean with this example and I got an error. Please help
09:58 sugarfree https://docs.saltstack.com/en/latest/ref/states/all/salt.states.firewall.html
09:59 FuzzyVeg joined #salt
10:00 cablekevin joined #salt
10:01 sugarfree Data failed to compile:
10:01 sugarfree Rendering SLS 'base:fw' failed: Jinja syntax error: invalid syntax for function call expression; line 1{% set ret = salt['firewall_check']('hostname', port=22, 'proto=tcp') %}
10:05 FuzzyVeg left #salt
10:30 CrummyGummy joined #salt
10:31 sugarfree please help
10:41 nicktest joined #salt
10:42 nicktest left #salt
10:43 babilen You don't call states, but execution function. In either case it would be 'firewall.check' rather than 'firewall_check'. If you want to call that state, you'd call it with salt['state.apply'] -- To give actual advice, it would be good to know what you are trying to achieve as you could just call that state directly and change your behaviour with onchanges/onfail/...
10:46 DanyC joined #salt
10:47 sugarfree @bablien: I try to set a boolean in order to use if statement ( if the port is open do this, else do that)
10:48 sugarfree @babilen : {% set ret = salt['firewall_check']('hostname', port=22, 'proto=tcp') %}
10:58 onslack <alex> 'proto=tcp' =>; proto='tcp'
10:59 onslack <alex> and salt['firewall_check'] =>; salt['firewall.check']
11:00 onslack <alex> batter yet {% salt.firewall.check('hostname', port=22, proto='tcp') %}
11:04 sugarfree onslack: tried, not work
11:07 babilen It's a state, not an execution function
11:07 babilen You call *execution functions* with salt['module.function']
11:08 babilen If you want to call a state you can: 1. Just use the state and incorporate other states with requisites (onchanges/onfail/...) 2. Use salt['state.apply']('state_module.function']
11:08 babilen Without knowing what you're trying to accomplish/do with "ret", it's hard to recommend the best approach
11:09 zer0def he already stated it, `firewall.check` state function uses `network.connect` execution function
11:11 zer0def sugarfree: try `{% set ret = salt['network.connect']('hostname', 22, proto='tcp') %}`
11:12 zer0def although clearly some more reading on saltstack's terminology and logic is in order
11:12 sugarfree I try to test if the port xx/tcp is open on minions. If open, I must execute taskA, if close I must execute taskB
11:14 inad922 joined #salt
11:14 sugarfree @zer0def, totally agree
11:15 zer0def well, better get to it, then! ;)
11:15 sugarfree zer0def: balance between time and delivery
11:16 sugarfree zer0def : I'm testing
11:16 zer0def respectably sounds more like cutting corners
11:17 sugarfree zer0def: what is the meaning of this expression ?
11:17 zer0def hint: there's a distinction for execution modules (which you can easily use in jinja) and state modules (which is how you define intended state)
11:21 sugarfree zer0def : Thank a lot. It works, I know where my mistakes comes from
11:22 babilen zer0def: Well, what is "do this" and "do that" ?
11:24 babilen Depending on the rest of the code it might be advantageous to use the firewall.check state as intended or to use salt['network.connect'] and booleans. There might even be an even better approach to the entire problem
11:24 babilen s/booleans/conditionals/
11:25 babilen I find it hard to actually recommend something without knowing the context, hence the question :)
11:30 sugarfree zer0def : if the port 443/tcp is open, I will install a software on the minion else record on a file that 443/tcp is not reachable from the minion.
11:45 briner joined #salt
11:46 hammer065 joined #salt
11:47 zerocoolback joined #salt
11:48 DanyC joined #salt
11:49 swa_work joined #salt
11:52 tys101010 joined #salt
11:59 inad922 joined #salt
12:02 zerocoolback joined #salt
12:04 inad923 joined #salt
12:08 hiroshi joined #salt
12:11 xet7 joined #salt
12:12 zer0def babilen: aside from my sloppy conduct, i'm just answering the question given the minimal context provided; i agree, more context would be useful
12:19 Nahual joined #salt
12:30 snath joined #salt
12:32 sugarfree zer0def:babilen: I agree with you
12:42 crux-capacitor joined #salt
12:48 inad924 joined #salt
12:54 edrocks joined #salt
13:22 ilbot3 joined #salt
13:22 Topic for #salt is now Welcome to #salt! <+> Latest Versions: 2017.7.5, 2018.3.0 <+> Support: https://www.saltstack.com/support/ <+> Logs: http://irclog.perlgeek.de/salt/ <+> Paste: https://gist.github.com/ <+> See also: #salt-devel, #salt-offtopic, and https://saltstackcommunity.herokuapp.com (for slack) <+> We are volunteers and may not have immediate answers
13:23 briner joined #salt
13:29 hoonetorg hi
13:30 hoonetorg are there development builds available
13:30 hoonetorg for el7 (rpm)
13:30 hoonetorg for beta builds of 2018.3.1
13:30 hoonetorg ???
13:31 hoonetorg i want to test if i'm hit by https://github.com/saltstack/salt/pull/47061 and/or https://github.com/saltstack/salt/pull/47405
13:38 onslack <gtmanfred> no, we have not branched 2018.3.1. yet.
13:38 onslack <gtmanfred> if you want to test, you will need to pip install the 2018.3 branch
13:39 nicola_pav joined #salt
13:41 nicola_pav hi all. I have a variable under /srv/pillar that is set to 11_22. when I try to access it in sls the "_" disappears.
13:42 nicola_pav while if there is a letter before or after the "_" (.e.g. 1a1_22), the "_" is there
13:42 nicola_pav any ideas please?
13:42 hoonetorg gtmanfred: will make it very dirty and copy over the changed files ;)
13:42 onslack <gtmanfred> nicola_pav, welcome to pyyaml
13:43 onslack <gtmanfred> nicola_pav <https://docs.saltstack.com/en/latest/topics/troubleshooting/yaml_idiosyncrasies.html#underscores-stripped-in-integer-definitions>
13:43 onslack <gtmanfred> you will need to double quote it
13:43 onslack <gtmanfred> ‘“1a1_22”’
13:47 nicola_pav I need to double quote it under /src/pillar? can I write sth in the sls instead?
13:49 onslack <gtmanfred> wherever you are using the _ in sls files, including top.sls, they need to be quoted if they are surrounded by numbers on both sides.
13:49 jbkc85 joined #salt
13:50 jbkc85 Hi all, another question on salt (and I appreciate all the help).  I have Vault now set up with Salt and everything works great, however the TOKEN I Am using in the 'vault.conf' under '/etc/salt/master.d' is in plain text.  Is there anyway I could reduce visibility of this particular token cred?
13:50 jbkc85 I know its owned by root, I know I can make it 440...just wondering if I can gpg encrypt it or whatever
13:51 onslack <gtmanfred> you can put it in sdb
13:51 onslack <gtmanfred> <https://docs.saltstack.com/en/latest/ref/sdb/all/salt.sdb.keyring_db.html>
13:51 onslack <gtmanfred> or put it in the env one
13:51 aanriot joined #salt
13:52 onslack <gtmanfred> whatever it is, something will still end up having to be saved in plain text somewhere, because there needs to be a password that can access the key eventually
13:52 jbkc85 I put it in the ENV one under systemd
13:52 jbkc85 right
13:52 jbkc85 Thats what I was wondering...just didn't know if there was a really good way to do it
13:52 onslack <gtmanfred> if it is gpg, you would still have to store the gpg decryption password
13:53 onslack <gtmanfred> you can put it in the Environment= in the master service dropin unit
13:53 onslack <gtmanfred> and then use the env sdb <https://docs.saltstack.com/en/latest/ref/sdb/all/salt.sdb.env.html>
13:53 onslack <gtmanfred> Whatever it is, you will end up storing it somewhee
13:53 onslack <gtmanfred> looks like you can use the yaml sdb, and gpg it <https://docs.saltstack.com/en/latest/ref/sdb/all/salt.sdb.yaml.html>
13:54 onslack <gtmanfred> just need to make sure you setup the gpg renderer <https://docs.saltstack.com/en/latest/ref/renderers/all/salt.renderers.gpg.html#module-salt.renderers.gpg>
13:55 Hybrid joined #salt
13:56 pbuell joined #salt
13:57 CrummyGummy Hi
13:57 CrummyGummy Jinja variable 'length' is undefined
13:57 CrummyGummy {% if parts|length < 4 %}
13:58 CrummyGummy any idea why that doesn't work? I'm trying to use the hostname to define the config which means I need to break up the hostname on '-'
13:59 jbkc85 gtmanfred: got the sdb/drop in already working actually.   Just wanted to see if anything else could be done to protect the token
13:59 jbkc85 So thanks for the advice :-)
14:01 nixjdm joined #salt
14:02 nicola_pav onslack: thanks a lot
14:02 nicola_pav it worked
14:07 mage__ left #salt
14:08 mage_ joined #salt
14:08 mage_ hello
14:09 mage_ does pillar merging only happens in top.sls file ?
14:09 mage_ overriding doesn't seems to work with include: - somesls
14:12 CrummyGummy https://gist.github.com/waynegemmell/f438fc28a51da3841b0b2de5d001e441
14:12 CrummyGummy That's my full file. Anyone around to assist?
14:18 mage_ why can't I override a key is an include: - somefile file ?
14:21 jbkc85 joined #salt
14:22 dxiri joined #salt
14:26 dendazen joined #salt
14:28 jbkc85_ joined #salt
14:34 mage_ it's very confusing that include: - somefile in pillar data has not the same effect as adding the file to top.sls
14:35 mage_ in terms of overriding keys
14:38 mage_ for example https://gist.github.com/silenius/b405f846c3c5274aece5a046732624a8
14:39 mage_ in version 1 the final somekey will be "456", but "123" in version 2
14:39 mage_ is it expected ?
14:40 onslack <gtmanfred> yeah, that is not how include works.
14:40 onslack <gtmanfred> top does a merge, include does not, it is meant to just include the stuff from the other .sls file
14:40 onslack <gtmanfred> same way it works in states
14:40 mage_ so it's best to not use include: in pillar files ?
14:40 mage_ what's the recommended approach ?
14:40 onslack <gtmanfred> don’t use include to try and overwrite stuff
14:41 onslack <gtmanfred> you can use include if you want, but use the top heirarchy to override it
14:41 mage_ thank you, that's what I wanted to know :)
14:41 cgiroua joined #salt
15:03 Hybrid joined #salt
15:19 Pjusur joined #salt
15:24 ecdhe joined #salt
15:27 tys101010 joined #salt
15:27 stooj joined #salt
15:33 rodr1c joined #salt
15:35 druonysus joined #salt
15:47 dezertol joined #salt
15:51 jbkc85 joined #salt
15:52 jbkc85_ joined #salt
15:54 druonysus joined #salt
16:09 RF_ joined #salt
16:12 RF_ Is there anything wrong with this state: https://pastebin.com/77CQb2hf? I am trying to attach an ENI to a running instance. It ran successfully but didn't show any logs that the ENI had been attached. The ENI was indeed not attached. I made sure the ENI was created in the same AZ as the instance.
16:16 Pjuzur joined #salt
16:20 KevinAn275773 joined #salt
16:24 KevinAn275773 joined #salt
16:30 cliluw joined #salt
16:33 RF_ Or is there an existing state that I can use to attach an additional ENI to a running instance?
16:34 KevinAn275773 joined #salt
16:40 KevinAn275773 joined #salt
16:51 Iceman7329 joined #salt
16:57 vaelen joined #salt
17:00 pjs_ left #salt
17:00 pjs joined #salt
17:11 bluenemo joined #salt
17:12 DanyC joined #salt
17:13 DanyC_ joined #salt
17:13 fraetrain joined #salt
17:33 Rubin joined #salt
17:34 bluenemo joined #salt
17:37 DanyC joined #salt
17:40 ecdhe joined #salt
17:41 Pjuzur joined #salt
17:49 dxiri joined #salt
17:51 edrocks joined #salt
17:57 DanyC joined #salt
18:05 tiwula joined #salt
18:06 H202 joined #salt
18:06 H202 hi
18:09 H202 startup_states: highstate doesn't appear to be doing anything on my windows minions
18:09 Rubin joined #salt
18:10 harkx joined #salt
18:11 Edgan RF_: I would read the code. Seems like that state should work since you can specify the network_interface_id.
18:15 DanyC joined #salt
18:16 DanyC joined #salt
18:18 zerocoolback joined #salt
18:18 zerocoolback joined #salt
18:23 DanyC_ joined #salt
18:24 jbkc85 joined #salt
18:25 jbkc85 Sorry - I apparently was booted and never saw an answer....how could I write a heredoc for salt to understand in a yaml pillar?  Currently I am using https://gist.github.com/jbkc85/760c0c492b643d9054f25113aa68f3a5
18:37 MTecknology isn't heredoc a bash thing?
18:37 MTecknology or is that posix?
18:38 MTecknology jbkc85: that looks like valid yaml to me, what's wrong with it?
18:38 onslack <gtmanfred> here doc and here strings are posix
18:38 jbkc85 it was something else actually :-(
18:39 jbkc85 So it is definitely valid :-D
18:39 jbkc85 In the rendering of the pillar it looked wrong
18:39 jbkc85 And I was having other issues, doesnt appear to be anything with the pillar though
18:39 Edgan jbkc85: looked wrong?
18:40 jbkc85 the render had a `- HEREDOC` and it was all green...so looked like an actual VALUE vs a separator of a 'here is an object and a value'
18:40 jbkc85 If that makes sense...
18:40 jbkc85 So used to the color coding being specific to what is values vs an indicator a new object is available, was thrown off at the fact that the leading '-' was the same color as the value
18:41 Edgan jbkc85: - means it is a list
18:41 jbkc85 yup...I was just thrown off that the '-' wasn't a separate color :-D
18:41 jbkc85 I thought it was being interpreted as the value
18:51 Edgan https://pastebin.com/G9vDx8Ce   My salt-ssh broke. Seems to be a problem with the roster, but nothing looks wrong.
18:58 crux-capacitor seems like grains arent syncing when highstate runs for the first time. what could cause that?
18:59 MTecknology I suspect "grains arent syncing" needs further clarification
19:02 MTecknology Edgan: are you 100% sure that the minion targeted matches something in the roster?
19:03 MTecknology and that whitespace mistake in the roster... that's not the problem, is it?
19:03 H202 i've got startup_states: highstate in my config and in the debug loc it just says "LazyLoaded state.apply" and doesn't do anything besides
19:08 MTecknology What would the functional difference be between startup_states:top and startup_states:highstate?
19:12 DanyC joined #salt
19:15 crux-capacitor MTecknology: I mean that when a system first connects, the reactor runs the highstate. According to documentation, this should automatically sync custom grains, however it is not
19:15 DanyC joined #salt
19:16 onslack <gtmanfred> how are you running the highstate from the master?, and when it first connects or when the key is accepted?
19:18 crux-capacitor the reactor is accepting the key, and then running the highstate using state.apply
19:18 onslack <gtmanfred> are you waiting for the minion to reconnect after the key is accepted?
19:20 crux-capacitor yes, once it sends the salt/minion/<MID>/start event, it gets highstated
19:20 onslack <gtmanfred> what does your highstate state look like?
19:23 MTecknology Why do I suspect you're doing minion things on the master?
19:26 H202 might the high state not running on start up have something to do with relying on my external pillar to be set up first?
19:28 onslack <gtmanfred> no, because pillars get rendered and loaded on highstate
19:28 onslack <gtmanfred> in _load_dynamic in salt.state
19:29 onslack <gtmanfred> <https://github.com/saltstack/salt/blob/2017.7/salt/state.py#L3240>
19:29 onslack <gtmanfred> and you can see above that where it syncs all custom modules
19:30 H202 i simply get no highstate now on startup on windows minions. i don't know what happens on linux minions.
19:57 H202 i think it may have something to do with the conf file
20:01 H202 yes
20:02 viq gtmanfre-: thanks to some of your advice now there's https://github.com/QubesOS/qubes-mgmt-salt-dom0-virtual-machines/pull/10 , thank you! :)
20:02 H202 i had an extra configuraiton file saved as utf8
20:02 H202 the startstate line was the first one starting with the bom byte
20:02 H202 it was being ignored....
20:02 H202 should this be considered a bug?
20:03 H202 gtmanfred do you think that is a bug?
20:05 gtmanfre- left #salt
20:06 gtmanfred joined #salt
20:06 onslack <gtmanfred> if it is bombing out on reading the config file, i would bet that you don’t have your locale setup correctly
20:07 H202 it's py3. shouldn't it be locale independent?
20:07 H202 when i saved the file as ansi it was ok again
20:07 onslack <gtmanfred> no, because the default encoding is still ascii
20:08 H202 ok
20:08 onslack <gtmanfred> python 3.7 will be the first python version to default to using utf8 encoding
20:17 DanyC joined #salt
20:19 Edgan MTecknology: yes, I even cut the roster down to one entry
20:22 MTecknology Edgan: so the whitespace mistake was only from copy/pasting?
20:25 k1412 joined #salt
20:27 DammitJim joined #salt
20:27 DammitJim I am setting up pillar data for users
20:28 DammitJim and a state to use that pillar data to configure a server
20:28 DammitJim what is the appropriate way to handle on a state the situation where there is no pillar info
20:29 DammitJim so, like if I have no password for a user, I want the state to just "clear" the password
20:32 MTecknology .get()
20:44 DammitJim and if the password is not specified? I think the state complains
20:45 brucewang joined #salt
20:45 s0undt3ch_ joined #salt
20:45 IPvSean__ joined #salt
20:46 timnz_ joined #salt
20:46 druonysuse joined #salt
20:47 simondodsley_ joined #salt
20:47 ipsecguy joined #salt
20:48 doubletwist- joined #salt
20:48 viq_ joined #salt
20:49 mbologna1 joined #salt
20:51 KingJ_ joined #salt
20:51 stewgoin_ joined #salt
20:55 aboe[m] joined #salt
20:56 sayyid9005 joined #salt
20:58 gtmanfred joined #salt
21:00 Edgan MTecknology: whitespace?
21:00 Edgan MTecknology: I don't see any stray whitespace
21:08 wonko21 joined #salt
21:18 briner joined #salt
21:20 MTecknology Edgan: a lack of whitespace, in the roster
21:30 Edgan MTecknology: Example? It seems to be an actual bug. If I use a target of '*', it works. I upgraded to Fedora 28, and I suspect some python module or something changed.
21:31 Edgan MTecknology: If it was simply a target not in the roster it should tell me that, not throw an error
21:42 MTecknology Edgan: line 2- https://pastebin.com/G9vDx8Ce
21:43 Edgan MTecknology: Found the cause
21:43 Edgan MTecknology: roster is just a title to say it is the roster file, not actual file contents. Line 2 is the beginning of the file
21:44 Edgan MTecknology: There is a function to detect if the host is reachable
21:45 stooj joined #salt
21:45 Edgan MTecknology: If I comment it out, it works and throws no error
21:48 Edgan MTecknology: Looks like some stupid code that is trying to use the target name, not the actually hostname from the roster that could be ab ip
21:50 cgiroua joined #salt
22:17 Edgan MTecknology: https://github.com/saltstack/salt/issues/47529
22:19 relidy joined #salt
22:20 onslack <gtmanfred> @edgan <https://github.com/saltstack/salt/pull/47191>
22:22 Edgan gtmanfred: Cool, but I would still argue what expand_target is trying to do is dumb. It is going based on the target not the actual host entry from the roster.
22:22 Edgan gtmanfred: Can you explain why expand_target is even a good idea?
22:23 onslack <gtmanfred> no, i had nothing to do with it, i just know that your problem should be fixed by that same thing
22:23 Edgan gtmanfred: probably, but that doesn't change the fact that I am probably running some useless code.
22:29 Edgan gtmanfred: Going to email the author of the code
22:49 Edgan gtmanfred: I suspect it is a side effect of this undesirable feature, https://github.com/saltstack/salt/issues/47532
22:56 openstacking_123 joined #salt
23:23 ymasson joined #salt

| Channels | #salt index | Today | | Search | Google Search | Plain-Text | summary