Perl 6 - the future is here, just unevenly distributed

IRC log for #salt, 2015-09-08

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

All times shown according to UTC.

Time Nick Message
00:11 joe_n joined #salt
00:19 pravka joined #salt
00:22 otter768 joined #salt
00:23 dthom911 joined #salt
00:27 otter768_ joined #salt
00:27 otter768 joined #salt
00:32 dthom91 joined #salt
00:42 ageorgop joined #salt
01:01 dthom91 joined #salt
01:01 bougie joined #salt
01:02 dthom91 joined #salt
01:10 tedski- joined #salt
01:12 ujjain- joined #salt
01:12 dandelo joined #salt
01:16 Jeff_ joined #salt
01:16 merik left #salt
01:18 ageorgop joined #salt
01:20 Ouzo_12 joined #salt
01:28 iggy womble: state.apply state1,state2,state3
01:29 womble iggy: Excellent, thanks.
01:30 subsignal joined #salt
01:31 dthom911 joined #salt
01:32 otter768 joined #salt
01:35 jbub joined #salt
01:36 pm90_ joined #salt
01:42 tongpu joined #salt
01:48 laax joined #salt
01:51 catpigger joined #salt
01:51 joe_n joined #salt
02:06 otter768 joined #salt
02:17 womble How do I tell salt, "reload this service if it is running and its config is changed, but don't start it if it isn't already running"?  Using `service.mod_watch` doesn't work, and if I just leave the `running: True` out of a `service` state I get the dreaded "No function declared" error.
02:18 womble Oh, and by "doesn't work", I mean that the state fails with the comment, "Unable to trigger watch for service.None"
02:20 dthom911 joined #salt
02:31 subsignal joined #salt
02:35 Hydrosine joined #salt
02:39 joe_n joined #salt
02:47 favadi joined #salt
02:47 subsignal joined #salt
02:50 sunkist joined #salt
03:01 joe_n joined #salt
03:03 forrest joined #salt
03:04 favadi joined #salt
03:08 mapu joined #salt
03:09 ageorgop joined #salt
03:10 subsignal joined #salt
03:16 dthom91 joined #salt
03:16 pravka joined #salt
03:20 Nazzy joined #salt
03:22 mapu joined #salt
03:29 pravka joined #salt
03:31 dthom911 joined #salt
03:34 iggy the "only if it was running before part is the hard part"
03:35 iggy thats not really the wqy salt is meant to run
03:36 iggy but you could put an onlyif on the configuration states and the watch that file on the service state
03:37 otter768 joined #salt
03:41 womble iggy: Yeah, it's not trivial.  Turns out the chunk of config I was fiddling with wasn't actually *triggered* by anything (any more), so I was able to gut it completely.
03:42 womble Yay for code removal!
03:49 cruatta joined #salt
03:49 laax joined #salt
03:51 dthom911 joined #salt
03:51 iggy bonus
03:55 anmolb joined #salt
03:59 fxhp joined #salt
04:05 dthom911 joined #salt
04:16 bfoxwell joined #salt
04:19 mosu_ joined #salt
04:21 evle joined #salt
04:22 Singularo joined #salt
04:27 joe_n joined #salt
04:33 anmolb joined #salt
04:34 dthom911 joined #salt
04:39 pm90_ joined #salt
04:52 ramteid joined #salt
04:56 zer0def joined #salt
05:16 tesla joined #salt
05:18 joe_n joined #salt
05:24 zerthimon joined #salt
05:30 Zachary_DuBois joined #salt
05:34 anmolb joined #salt
05:39 choke joined #salt
05:47 otter768 joined #salt
05:50 laax joined #salt
05:52 ajw0100 joined #salt
05:58 choke reading this: https://docs.saltstack.com/en/latest/ref/states/compiler_ordering.html and i don't fully understand.  Suppose in my top I have a base * state, that includes a requirements sls and a user.user_files, and user_files also includes user to create the user..
06:00 choke in fact, thats exactly what i have, but the user isn't created until the very end, and my user_files requires git, but that is installed in the requirements which is called after the user_files...
06:02 sirex joined #salt
06:03 dopesong joined #salt
06:05 katyucha joined #salt
06:14 lb1a joined #salt
06:16 anmolb joined #salt
06:17 SunPowered joined #salt
06:17 riftman joined #salt
06:20 TyrfingMjolnir joined #salt
06:20 hasues left #salt
06:23 AndreasLutro joined #salt
06:27 rome_390 joined #salt
06:27 dopesong_ joined #salt
06:30 Kurisutian joined #salt
06:34 Kurisutian Good morning :)
06:35 Kurisutian Hi babilen! Sorry I had to leave that fast yesterday... incident at work... if you'd like to continue were we left off, let me know... and thanks for the help so far :)
06:37 Norbell joined #salt
06:46 subsignal joined #salt
06:54 slav0nic joined #salt
06:54 GreatSnoopy joined #salt
07:00 Ztyx joined #salt
07:01 subsignal joined #salt
07:02 cyris212 joined #salt
07:03 cyris212 is there somewhere a guide on how to get started with salt's RESTful API?
07:09 subsignal joined #salt
07:10 Dis_ joined #salt
07:10 ingslovak joined #salt
07:11 larsfronius joined #salt
07:12 choke https://gist.github.com/ch0ke/07beb77bcca6086c8ea4  any conceivable reason why my include is being run AFTER everything else, despite that it's required for everything else as per the - require lines.
07:14 AndreasLutro could be a bug. why aren't you requiring the specific user?
07:14 babilen choke: Maybe because the user states haven't been generated at that point, I'd require specific users
07:14 Dis_ Hello, may be you can help me.
07:15 Dis_ i try to add repo on CentOS 6.7
07:15 Dis_ Here sls file:
07:15 babilen Please use one of http://refheap.com, http://paste.debian.net, https://gist.github.com, http://sprunge.us, http://dpaste.de, …
07:16 Dis_ http://pastebin.com/UcdWmznm
07:16 babilen *sigh*
07:16 * babilen gets some coffee
07:16 Dis_ And here output: http://pastebin.com/gW7bnMbQ
07:16 Dis_ pastebin - ok?
07:17 eseyman joined #salt
07:17 whytewolf pastebin is at best tolerated with distain.
07:17 Dis_ Here version-report - http://pastebin.com/Me77Rasv
07:17 choke not sure I understand what you mean..  and requiring specific users doing - user: {{username}} doesn't work either...  but including the users.sls which is where it creates the user, and requiring that should in theory generate it first
07:18 Furao joined #salt
07:18 choke I suppose it could possibly have something to do with the jinja that fills up my init.sls but not quite sure about that
07:21 Dis_ Is`s look like all is ok, but i always get error "Comment: Failed to configure repo 'test_10_2': The repo does not exist and needs to be created, but a name was not given"
07:21 AndreasLutro choke: no, if you require user: {{ user }}, that user state should always run first
07:21 choke user being the username?
07:23 AndreasLutro yes
07:23 AndreasLutro or rather
07:23 AndreasLutro either the ID of the user.present state, or the name argument of that state
07:23 clintberry joined #salt
07:24 Ztyx joined #salt
07:24 Ztyx joined #salt
07:31 pbrooko joined #salt
07:32 choke changing it to this: https://gist.github.com/ch0ke/07beb77bcca6086c8ea4  had no effect.  i added in the init.sls for users too.  oh_my_zsh_{{username}} and oh_my_zsh_theme_{{username}} are still being run before the user exists
07:37 Ztyx joined #salt
07:40 choke joined #salt
07:40 AndreasLutro dunno then, it should work fine. though in your example you have a couple of indentation errors and there's still a require - sls: users
07:41 AndreasLutro scratch a couple, there's just one
07:41 choke yeah the indentation was from my copy and paste, nothing that's actually on the master
07:42 choke i'm going to try to do something right quick, within the init and see how it goes... so i'll let ya know in about 20
07:44 pbrooko joined #salt
07:45 babilen choke: I was thinking of something like: "require: - user: users_{{ username }}_user" (assuming you use the users-formula)
07:46 babilen https://github.com/saltstack-formulas/users-formula/blob/master/users/init.sls#L56
07:46 CeBe joined #salt
07:46 kawa2014 joined #salt
07:46 pbrooko joined #salt
07:47 choke i mimicked mine off that formula but it's not exactly the same
07:47 choke but i'll try what you put and we'll see how that works
07:47 opensource_ninja joined #salt
07:48 babilen You would, naturally, only use mine if you use the same naming convention.
07:48 jagguli joined #salt
07:48 choke which I did
07:48 babilen I am curious though: What was wrong/missing/suboptimal in the users-formula? Why did you decide to maintain a fork rather than change whatever you dislike?
07:48 otter768 joined #salt
07:49 fredvd joined #salt
07:49 larsfronius joined #salt
07:49 jbrnds joined #salt
07:49 jbrnds morning (Europe)
07:49 babilen morning :)
07:50 jbrnds how does salt (file.manages) from http:// downloaded source (eg dropbox link) calculate the md5sum, when I download it (wget) and do the md5sum it is different from what salt says it is supposed to be. Weird
07:51 jagguli joined #salt
07:51 jagguli`` joined #salt
07:52 laax joined #salt
07:52 Grokzen joined #salt
07:54 babilen jbrnds: It uses hashlib.md5(...).hexdigest() apparently
07:55 colttt joined #salt
07:55 choke babilen because by me re-writing it ( i didnt even fork it, i typed it all out ) i learn better so that in the future I can look at these things and be able to know exactly what it's doing and why
07:56 opensource_ninja joined #salt
07:56 babilen Okay, you might want to use the maintained users-formula in production though
07:58 favadi joined #salt
07:59 babilen jbrnds: Mind sharing particulars on a pastebin such as http://refheap.com, http://paste.debian.net, https://gist.github.com, http://sprunge.us, http://dpaste.de, … ?
08:00 jhauser joined #salt
08:02 Dis_ thanks for help =\
08:05 choke makes sense, once I figure out how it all works together and what not... the require line didn't work either... still the stupid zsh stuff
08:06 babilen choke: Could you paste actual states and their output that exemplify the problem?
08:06 Tangresh joined #salt
08:07 choke how do i do that?  I'm editing and running salt '*' state.show_highstate on my master ( keep in mind i;ve literally been using this for like 2 days )
08:09 tangresh joined #salt
08:09 Ztyx joined #salt
08:09 babilen choke: You paste your states (the content of your files) and the output of, say, "salt 'foo' state.highstate" (or "salt 'foo' state.sls some.sls" if you don't want to run everything)
08:10 subsignal joined #salt
08:12 keimlink joined #salt
08:12 chiui joined #salt
08:12 choke atm i only have 1 state its the global state..  master is running highstate now ( ive been running state.show_highstate ) as i read in the info on compiling order
08:14 jbrnds babilen - coming up. https://dpaste.de/j3Zo with the state definition and the resulting salt log
08:14 babilen Sure, just paste everything and we will figure it out
08:14 markm joined #salt
08:16 babilen jbrnds: That's not the same file (one is readme.zip and the other KEC_fixture_ke-chain-vanilla.zip)
08:16 Xevian joined #salt
08:21 Norbell joined #salt
08:22 choke babilen https://gist.github.com/ch0ke/07beb77bcca6086c8ea4   looks to be now, an issue in the init.sls where the user group isn't being created
08:22 choke or the group isn't rather
08:22 jbrnds babilen - sorry copy/paste action -- let me update the pastebin
08:23 babilen choke: Could you add your state(s), pillar data and their configuration?
08:24 thefish joined #salt
08:24 choke yeah give me a moment.
08:25 jbrnds babilen - https://dpaste.de/y4sz#L - same behaviour. Every time the md5sum gets computed differently by salt.
08:26 choke updated
08:26 babilen choke: You are making it hard as this is code that I am familiar with, but you introduce subtle changes that alter its behaviour :(
08:28 pm90_ joined #salt
08:29 babilen choke: https://gist.github.com/ch0ke/07beb77bcca6086c8ea4#file-init-sls-L38 you are using {{ user_group }} there, but have {{ name }} on https://gist.github.com/ch0ke/07beb77bcca6086c8ea4#file-init-sls-L23
08:30 babilen Please just use the vanilla users-formula as you are introducing subtle bugs that will take us a long time to debug
08:33 choke line 12 sets user_group which is set to the same as {{ name }} so that shouldn't in theory be an issue...  If you don't want to help that's fine, i'll keep trying to figure it out on my own...   However using the prewritten, while optimal for help, isn't conducive to me learning how to do it
08:33 Ztyx joined #salt
08:33 larsfronius joined #salt
08:34 Ztyx joined #salt
08:36 AndreasLutro choke: your gist contains incorrect information... where is "justin" coming form?
08:36 AndreasLutro from*
08:37 babilen choke: Things simply don't fit together. You have a wild mix of "justing" and "test" user/groups and you didn't paste your pillar data. If you have https://gist.github.com/ch0ke/07beb77bcca6086c8ea4#file-highstate-L107 why don't you also have the corresponding user.present (for example)
08:38 babilen Things just don't fit together and I can "autocorrect" a lot of things, but that doesn't make it easier to debug this on top of the fact that you changed code that I am somewhat familiar with and have been using in production for a while.
08:38 larsfronius joined #salt
08:38 babilen s/justing/justin/
08:39 Ztyx joined #salt
08:40 choke what pillar data?  in the same gist it has top.sls.pillar and the users.sls.pillar..  in my 48 hours of knowledge, that's pillar data..  but it's all good i'll delete the gist and figure it out on my own..
08:40 choke left #salt
08:40 babilen ah, yeah
08:43 babilen I can assume that you changed "justing" to "test" in your paste, but forgot to do so in some places. But assumptions such as this are bad as I might assume things that are not in line with reality.
08:43 babilen The main issue seems to be that the group.present state is not being run *before* the user.present one which is, probably, due to wrong or missing requisites.
08:44 babilen Ah, he left :(
08:44 babilen jbrnds: Your paste does not seem to be available anymore.
08:45 pbrooko joined #salt
08:46 jbrnds babilen: https://dpaste.de/wnBj
08:46 babilen Thank you
08:48 jbrnds .. babilen it seems that everytime the md5 sum is computed differently. So even third time, when I use the suggested 'real sum' it fails (again) with a new 'real sum' proposal
08:49 babilen jbrnds: I get 5de24966ac567a3e26ed15e3e8e377c6 as checksum fwiw
08:50 jbrnds babilen - yeah me too. let me try with that one.
08:50 babilen This might be due to some idiosyncrasy of dropbox. What is the content of /vagrant/tmp/readme.zip ?
08:50 babilen Do you, at least, get the right file?
08:51 jbrnds babilen inside that file - there is a readme.txt
08:52 jbrnds I have the same behaviour using shortlinks on my synology. Let me try github aswell
08:52 sgargan joined #salt
08:53 jchen joined #salt
08:53 jchen left #salt
08:53 jbrnds babilen - it does not download and pushes it into /vagrant/tmp
08:54 babilen aye
08:55 linjan joined #salt
08:59 jagguli joined #salt
08:59 pbrooko joined #salt
09:01 jchen joined #salt
09:01 jchen left #salt
09:01 jbrnds babilen - also the readme.txt file (not the zip) with a download link https://www.dropbox.com/s/ht8bc41amrd36re/readme.txt and md5 5126701b2af70565807f329f087490ca fails with a new suggested md5 of "a9c41fd1eb6add7170a6a8a11738202a" - not saved to any dir
09:02 jbrnds2 joined #salt
09:02 anmolb joined #salt
09:03 N-Mi joined #salt
09:03 N-Mi joined #salt
09:04 babilen jbrnds: Could you, just for giggles, place the readme.zip somewhere in salt:// and use that as source: ?
09:06 laax joined #salt
09:09 jchen joined #salt
09:09 jchen left #salt
09:12 jbrnds weird behavior with the urlretrieve.
09:20 Kurisutian babilen: Would you mind helping me again to find out what's wrong with salt-ssh on Arch? Or is there not much left to do from where we stopped yesterday?I checked again with working versions on Debian, and there an older Package is used? Is there a way to downgrade to the previous version of salt?
09:20 babilen jbrnds: Please elaborate
09:21 babilen Kurisutian: Yeah, the version difference was/is pretty obvious. You can, naturally, install salt with the bootstrap script or from older packages (no idea how that translates into Arch), but I would hope that it is not the .3 → .5 upgrade that broke this
09:22 auzty joined #salt
09:30 Kurisutian babilen: I just downgraded to the previous version and it does not change anything.... so it must be something else causing trouble... :(
09:33 babilen good
09:35 _mel_ joined #salt
09:35 zerthimon joined #salt
09:36 jbrnds babilen - yep hold one. Let me arrange that salt:// link test. And giggle to see that work :)
09:41 zer0def joined #salt
09:44 anmol joined #salt
09:44 Kurisutian babilen: any other ideas on how I might fix the issue? This is how the package ist built -> https://projects.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/salt
09:45 ch0ke joined #salt
09:45 Kurisutian I don't know if there is anything wrong with the build process rather than with something else...
09:48 slav0nic joined #salt
09:49 otter768 joined #salt
09:50 babilen Kurisutian: That package is missing a dependency on the "croniter" Python module, but I doubt that that is related.
09:50 babilen Kurisutian: Furthermore: Did you install salt-raet or salt-zmq?
09:51 vieira joined #salt
09:51 Kurisutian both... currently salt-raet but I checked both....
09:53 vieira how do you manage grains (like roles, etc) in your env?
09:53 babilen Kurisutian: Okay, you shouldn't use raet. Could you purge (i.e. completely remove) your installation and reinstall salt-zmq so that configuration files are pristine
09:53 vieira I am doing it more or less like any other formula
09:54 vieira but it looks a bit dirty
09:54 mapu joined #salt
09:54 vieira also having a lot of similar pillar files where only the value changes :(
09:54 cberndt joined #salt
09:55 Kurisutian babilen: done
09:55 babilen Kurisutian: I'd also appreciate it if you could show me /etc/salt/master, /etc/salt/minion and /etc/salt/roster on one of http://refheap.com, http://paste.debian.net, https://gist.github.com, http://sprunge.us, http://dpaste.de, …
09:56 babilen The installation doesn't look too different from the Debian one though. It might very well be related to something else in Arch land, but I am not too familiar with that distribution. It would be good if another Arch user could try to reproduce your issue
09:56 jbrnds babilen https://dpaste.de/mzRd - with a salt:// link it works (as expected), with an external http(s):// it doesnt. I changed the target directory to /tmp/
09:56 babilen jbrnds: yay *sniff*
09:57 nbari joined #salt
09:58 nbari hi all, I can run this via command line:  salt '*' cmd.run 'echo `date`'
09:58 babilen vieira: I wouldn't necessarily set roles in grains as there is no point in storing that information on the minions
09:58 nbari but how to runitwithin a recipie or in a mine ?
09:58 nbari I am trying with  mine_function: cmd.run - 'echo `date`'
09:59 nbari but I am only geting `date`, like if the ` where ommited parsed
09:59 vieira babilen: how would you do it then?
09:59 vieira I am very open to new ideas :P
10:00 babilen vieira: Define roles in pillars or, even better, a suitable external pillar that allows for easy updates to the role<->minion mapping. Another approach would be to define nodegroups, but that requires the master to restart on changes.
10:03 vieira babilen: that sounds very good. could I target minions using that pillar defined role?
10:03 babilen vieira: Sure: https://docs.saltstack.com/en/latest/topics/targeting/compound.html → I@pdata:foobar
10:04 babilen vieira: The only problem you have is that you cannot target pillars by pillars (but then you shouldn't target them by grains either as that is everything but secure), so you would have to maintain a pillar<->minion-id mapping somewhere (the id is the only bit of minion information you can trust)
10:06 vieira babilen: thanks a lot! sounds good, I will look further into it
10:06 keimlink joined #salt
10:07 sgargan joined #salt
10:08 babilen vieira: If you use grains you are also in the "and how do I manage those grains?" territory which brings you back to square 1 ;)
10:08 vieira babilen: yep, that's the problem I was having hehe
10:09 babilen https://github.com/saltstack/salt/issues/23910 is probably an issue you'll soon encounter though
10:10 nbari any ideas ?
10:10 nbari how to pas raw commands when using cmd.run ?
10:11 Hydrosine salt "*" cmd.run "cat /etc/issue"
10:11 subsignal joined #salt
10:12 Hydrosine nbari i do it like that
10:13 nbari that works but my if I try to do the same within a recipie I mean a .sls I can make it wo work
10:13 nbari this is what I would like to run: echo `date +%s` - `sysctl -n kern.boottime | cut -d' ' -f 4,7 | tr ',' '.' | tr -d ' '` | bc
10:14 jbrnds babilen - for some reason the url retrieved file and the corresponding md5 sum are not consistent. It changes every download. It seems that the scope of the md5 calculations includes possibly the creation datetime?
10:14 vieira babilen: the ability to use static pillars for targeting in pillar/top.sls would be very nice, yeap
10:14 jbrnds babilen : ... https://dpaste.de/ABGD#L49,62
10:14 Hydrosine probably a case of escaping certain quote's ;p not my strongest
10:15 nbari this works:  salt '*' cmd.run "echo `date +%s` - `sysctl -n kern.boottime | cut -d' ' -f 4,7 | tr ',' '.' | tr -d ' '` | bc"
10:15 nbari but not from a .sls file
10:15 vieira babilen: it's a bit limiting to define roles and so on and not be able to use them in pillar/top.sls
10:16 Hydrosine nbari, what i would do is put the command in a little sh file and file.manage that over and run it that way. Probably not the way to go but works for me :)
10:17 sgargan joined #salt
10:19 nbari I tried with saltsstack - cmd.script: but no luck
10:23 sgargan joined #salt
10:26 nbari maybe an issue with the mines
10:28 permalac_ joined #salt
10:32 scurry joined #salt
10:32 babilen vieira: Just keep in mind that you shouldn't target sensitive data by grains as the minion can change grains data at will
10:32 babilen jbrnds: That looks like a bug, mind filing it?
10:43 joe_n joined #salt
10:47 AndreasLutro jbrnds: dropbox download links are more complicated than just a simple http get, I wouldn't be so sure it will work with file.managed
10:49 babilen jbrnds: Could you try hosting it somewhere else? The dropbox URL you are using is not actually the URL of the file (dropbox is doing fancy stuff there)
10:51 Ztyx left #salt
10:52 sgargan joined #salt
10:52 kracekumar joined #salt
10:53 kracekumar Hi, What is the flag to print time taken by the job ? My cmd is `sudo salt 'worker-*' state.highstate -l debug`
10:54 babilen kracekumar: "time salt 'worker-*' state.highstate -l debug" ;)
10:55 bluenemo joined #salt
10:55 kracekumar babilen: :-) that counts network timing as well correct ? Which will fail when minion isn't responding ?
10:55 sgargan joined #salt
10:55 AndreasLutro you don't need any flag to see time spent on highstates
10:55 babilen It simply times the process
10:57 mapu joined #salt
10:58 kracekumar Got that. Just want to see whether jid and time taken is store some where.
10:58 kracekumar *stored
10:59 laax_ joined #salt
11:03 sgargan joined #salt
11:03 eseyman joined #salt
11:04 jbrnds babilen AndreasLutro - yeah understood. Also on my synology the shortlink has the same problem. I will try hosting it as static on a website. I was looking through the salt source code to see how this link is processed - hard to find (for me).
11:11 Kurisutian babilen: Sorry for the delay, here's the Master config, the rest follows in a few seconds: https://paste.debian.net/310837/
11:11 Kurisutian here's the minion: https://paste.debian.net/310838/
11:12 subsignal joined #salt
11:12 Kurisutian and the roster: https://paste.debian.net/310839/
11:18 jbrnds babilen - via a vanilla http link (as static file served through apache) the download and install works normally. See https://dpaste.de/OuVd#L73,76,77,82,83,91,104
11:23 jbrnds if the source: http(s):// downloader in salt could mimic more 'wget' behaviour - that would be great. If you could point a bit where to look, in which source file the download is handled... I might be better in providing the feature request to handle dropbox, bit.ly, synology short links as well
11:23 AndreasLutro jbrnds: states/file.py and modules/file.py
11:23 AndreasLutro good luck though
11:28 TyrfingMjolnir joined #salt
11:41 jbrnds AndreasLutro yeah indeed - looked through them. hmm the source is used in different places will investigate
11:44 laax joined #salt
11:45 djinni` joined #salt
11:46 pm90_ joined #salt
11:47 X67r joined #salt
11:50 otter768 joined #salt
11:50 pm90_ joined #salt
11:52 JDiPierro joined #salt
11:54 tmclaugh[work] joined #salt
11:56 babilen jbrnds: https://github.com/saltstack/salt/blob/develop/salt/fileclient.py#L515 is what you are looking for
11:56 babilen (and don't we all love endless functions with comples if/elif/else blocks?)
11:57 AndreasLutro seems to be the standard in large python applications :/
11:57 briner joined #salt
11:57 babilen I was taught that this is a code smell and that you should break that up into multiple functions, but meh
11:58 babilen This is one reason why I find salt code to be quite hard to read
11:58 AndreasLutro agreed
11:58 babilen I mean they could have done a "if foo == 'swift': do_the_swift_thing(...)" and it would be much more readable
11:59 AndreasLutro I think that's hard to achieve because there's a lot of state/variables that can be changed throughout the entire function body
11:59 AndreasLutro would've been better if every state invocation was a class object instead maybe
12:01 babilen Well, you can achieve it as well with functions and currying, but meh ..
12:01 AndreasLutro hassle to add 20 kwargs to each function call
12:03 Kurisutian babilen: is it neccessary to configure the master when running salt-ssh? I thought only the roster is required and nothing else?
12:03 babilen Then hand over objects that contain the information you need .. I mean there are ways to do this nicely and "objects" don't solve that. In a way "self" is simply a dictionary with data in there as well. You can just pass that explicitly without problem.
12:03 AndreasLutro Kurisutian: you don't need to configure any master/minion with salt-ssh, but salt-ssh will read some config values from the master config
12:03 babilen Kurisutian: Yeah, I think you only need the roster
12:04 babilen But the mas .... ^^^^
12:04 babilen You don't set anything in the master config though
12:09 Kurisutian what would I have to set? Isn't there any default being used?
12:10 Kurisutian calling salt regularly does deliver something btw. although it's just the information that no minions exist.... ;-)
12:12 losh joined #salt
12:14 Grokzen Will 'saltutil.sync_all' also refresh the pillar data on a minion, or do i have to call 'saltutil.refresh_pillar' after the sync_all command?
12:15 babilen Kurisutian: Defaults are being used, yeah (which is fine)
12:16 babilen Kurisutian: Could you paste a complete console log again? (including the ssh connection attempt as root)
12:16 Kurisutian Do I have to run the salt-master daemon to use salt-ssh?
12:16 babilen There must be something fishy somewhere ...
12:16 babilen no
12:16 babilen Definitely not
12:16 Kurisutian You mean with the -ldebug option?
12:17 sgargan joined #salt
12:17 babilen Yeah, just your exact commands and a "ssh -i /path/to/the/id/file/in/roster.rsa the_user_in_roster@minion' invocation
12:18 babilen (with sudo / as root if you run salt as that user)
12:18 babilen s/salt/salt-ssh/
12:19 londo joined #salt
12:22 Kurisutian babilen: Sorry, I'm a bit confused. What do you want me to run? sudo salt-ssh -ldebug '*' test.ping ?
12:23 GreatSnoopy joined #salt
12:23 babilen Just for a single minion and the ssh login (see above)
12:23 scoates joined #salt
12:29 Kurisutian running 'sudo salt-ssh -ldebug 'ac1tesaaccshcfgmgmtmwbsac1a01' test.ping ssh -i /home/cfoeller/.ssh/id_rsa tomcat@ac1tesaaccshcfgmgmtmwbsac1a01' results in this: https://paste.debian.net/310852/
12:29 thehaven joined #salt
12:30 codehotter Why is configuration data available to every minion, even if they're not targeted? Can I use a pillar-like model instead, so that only the states relevant to a minion are visible?
12:32 SgtMalicious left #salt
12:32 Kurisutian babilen: I than also get stuck and have to ctrl+c to exit...
12:33 SgtMalicious joined #salt
12:33 Kurisutian running just ssh -i /home/cfoeller/.ssh/id_rsa tomcat@ac1tesaaccshcfgmgmtmwbsac1a01 will let me enter the target machine as user tomcat, btw. so this works as it seems
12:34 babilen Kurisutian: Those are two independent commands. Could you run "sudo ssh -i /home/cfoeller/.ssh/id_rsa tomcat@ac1tesaaccshcfgmgmtmwbsac1a01" ?
12:35 babilen codehotter: States are available to all minions (which is why you don't want to keep sensitive information there)
12:35 Kurisutian babilen: I have to enter my password to open the keyfile but after that I am connected to the server as tomcat
12:35 dyasny joined #salt
12:36 babilen Well, this is the problem then
12:37 babilen (and the sole reason why I have been asking you for the output of "ssh -i /home/cfoeller/.ssh/id_rsa tomcat@ac1tesaaccshcfgmgmtmwbsac1a01" executed as the same user you execute salt as all along)
12:37 babilen Use a key without a passphrase or ensure that you can SSH without interaction
12:38 Kurisutian Is there any way to add the key somewhere for salt to use it? Can it be added to the roster file?
12:38 babilen no
12:39 Kurisutian OK, so I need to run salt-ssh as a user? Therefore I need to configure it in /etc/salt/master, right?
12:39 AndreasLutro no
12:39 AndreasLutro just make a separate ssh key for salt-ssh specific purposes without a password
12:39 babilen No, you have to make sure that the user you run salt as can SSH to the minion without *any* interaction
12:40 babilen That is commonly being done by using a key without a passphrase
12:40 babilen Another source of problems is the host key verification step, which is being handled by passing "-i" to salt-ssh.
12:41 irctc467 joined #salt
12:41 Kurisutian I see... well, this helps me a lot! Thank you so much... I'm still learning and have to learn a lot more as I can see ;)
12:41 babilen You can, naturally, use ssh agent if you want to use passphrases, but this will be tricky with sudo
12:42 babilen Kurisutian: Just as a tip for next time: Just paste your actual commands and their entire output and don't just say "yeah, that works".
12:42 Kurisutian I will ;)
12:42 babilen I would have asked one more time to see it though
12:43 irctc467 Hi, I am working with Windows Salt Minions. I have written a simple hello_world.sls which copies a hello_world.txt file (top file associated, file_roots set, minion-key accepted). My problem is salt-call state.highstate is working (on minion) but salt 'my_minion'  state.highstate returns a "Minion did not return"
12:43 irctc467 I have detailled the question here: http://serverfault.com/questions/720878/salt-minion-did-not-return-but-salt-call-is-working
12:48 Kurisutian babilen: I removed the key and it works! Thanks again so much! :)
12:48 quasiben joined #salt
12:52 irctc467 No idea guys?
12:53 drawsmcgraw joined #salt
12:55 codehotter babilen: all information is sensitive.
12:56 codehotter babilen: If there's no need for a minion to know about other minions' states, why can they access this information?
12:57 numkem joined #salt
12:58 codehotter babilen: can I put state information in pillars?
12:58 subsignal joined #salt
13:00 homeshlice joined #salt
13:04 bhosmer joined #salt
13:05 racooper joined #salt
13:07 dexter91x joined #salt
13:10 subsignal joined #salt
13:14 dthom91 joined #salt
13:14 ferbla joined #salt
13:16 dthom911 joined #salt
13:16 kevinquinnyo joined #salt
13:20 jdesilet joined #salt
13:22 cpowell joined #salt
13:22 mschiff Hi all. Is there an easy way to make a service.running state actually a no-op? (I want to make service handling configurable via pillar, but there are lots of references to that state, so I cannot entirely remove it via jinja...)
13:24 laax joined #salt
13:24 cpowell_ joined #salt
13:25 dthom91 joined #salt
13:26 drawsmcgraw mschiff: How much work would it take to remove those references?
13:26 kevinquinnyo1 joined #salt
13:28 linjan_ joined #salt
13:29 eosinx joined #salt
13:30 kevinquinnyo joined #salt
13:33 mschiff drawsmcgraw: too much ;) would be too invasive. I wonder whether there is some state function that is always available like "noop" or "dummy" or something like that
13:33 Gardinero joined #salt
13:35 drawsmcgraw mschiff: It's possible that you can use "unless" or "onlyif" with service.running().
13:35 drawsmcgraw I haven't tested that but it might be the foothold you're looking for
13:35 laax_ joined #salt
13:36 zmalone joined #salt
13:36 sunkist joined #salt
13:36 Gardinero Hello there. Can anybody help me? I am trying to install software on a minion through a local win repository. I always get the following error message: "...reason: [Error 2] The system cannot find the file specified"
13:36 protoz joined #salt
13:36 alexlist_ joined #salt
13:36 eosinx joined #salt
13:37 murrdoc joined #salt
13:37 Gardinero Is there any troubleshooting guide for this?
13:37 iggy today, I start new Salt job (which probably means I won't be around a whole lot, good luck in my absense)
13:38 murrdoc HAHAH
13:38 murrdoc WELCOME TO THE THUNDERDOME
13:38 mschiff drawsmcgraw: onlyif sounds good. I will try that, thanks
13:39 iggy Gardinero: you might ask on the mailing list, Windows stuff isn't something we all know a terribly large amount about
13:39 drawsmcgraw mschiff: Sure thing. Let us know if that works out. I'm curious now :)
13:39 murrdoc better wear your big boy pants iggy
13:39 iggy murrdoc: pants? nobody said anything about pants?
13:39 murrdoc half pants are ok too
13:39 iggy I brought guns and underoos
13:39 eosinx joined #salt
13:39 murrdoc just dont show up in diapers
13:39 murrdoc oh jesus
13:39 murrdoc ok at least have a i love jesus sign on the underoos
13:39 murrdoc so we can explain the lack of pants
13:40 iggy will sharpie work?
13:40 protoz joined #salt
13:40 murrdoc yes
13:40 Akhter joined #salt
13:40 drawsmcgraw Gardinero: I assume you're following this doc? https://docs.saltstack.com/en/latest/topics/windows/windows-package-manager.html
13:41 drawsmcgraw It's been forever since I used it (circa version 16.x of Salt) but it worked well enough then.
13:41 Gardinero @drawsmcgraw: yes.
13:41 murrdoc but wait
13:42 drawsmcgraw Have you tried `salt my-windoze-minion pkg.list_pkgs` ?
13:42 drawsmcgraw That sounds like it can at least confirm/deny that you have packages available and configured
13:42 murrdoc why dont use u use
13:43 protoz joined #salt
13:43 murrdoc https://github.com/saltstack/salt-winrepo-ng
13:43 Gardinero Yes, I already tried that and receive a positive feedback with all installed software listed.
13:43 murrdoc its so much sexier
13:44 drawsmcgraw murrdoc: holy. crap. That is amazing.
13:44 mschiff drawsmcgraw: works! I now put some jinja stuff arround onlyif: /bin/false" and can disable this state using this
13:44 Gardinero Would that not mean, that the installer files are always downloaded from the correspondent link?
13:44 drawsmcgraw mschiff: Neat! I'll remember that next time I have such a need.
13:45 drawsmcgraw Gardinero: At a quick glance, it looks that way (assuming you're talking about that Github project)
13:45 drawsmcgraw When I did it (years ago), I hosted the files on the Salt master and generated the repo cache
13:46 Gardinero drawsmcgraw: Yes, I need to host the files on the Salt master.
13:47 drawsmcgraw Gardinero: Definitely understand that. Have you tried installing with "-l debug" at the end of the command?
13:47 drawsmcgraw Output from that *might* be helpful
13:47 qwerty joined #salt
13:47 drawsmcgraw "The system can not find the file specified" sounds like Windows speak. I'd be curious about any Salt-related output leading up to that error message.
13:49 Gardinero drawsmcgraw: I just tried that, but the error message is nearly the same. Nothing helping me further...
13:49 drawsmcgraw Gardinero:  -l trace?
13:50 TyrfingMjolnir joined #salt
13:50 drawsmcgraw Also possibly (if you're able), log into the Windows box. Open a cmd (or Powershell) prompt and try running the installation with 'salt-call'
13:50 g3cko joined #salt
13:50 dthom91 joined #salt
13:50 drawsmcgraw Gardinero: I'm assuming you've created the latest repocache?
13:51 otter768 joined #salt
13:53 Tecnico1931 joined #salt
13:53 Gardinero drawsmcgraw: -l trace does not help me either. I will try to 'salt-call' from the Windows minion. Yeah, I was changing the installer-paths in the init.sls several times and always created the latest repocache and also did a refresh for the minion.
13:54 drawsmcgraw Gardinero: If you run out of ideas (and you're able), post a link to your current configs. Something may stand out to one of us in here.
13:57 Gardinero drawsmcgraw: using "salt-call" on the windows machine gives me the same error.
13:57 drawsmcgraw And there's no more information??
13:57 drawsmcgraw Usually you get nice, chatty output with salt-call
13:59 pol joined #salt
13:59 Gardinero drawsmcgraw: All in all the error message is a little bit longer. I will collect all config & error messages and get back to you.
13:59 drawsmcgraw ok
14:00 timoguin joined #salt
14:00 Guest22996 Hello
14:00 Guest22996 I have a query on root filserver cache refrsh
14:00 Guest22996 *refresh
14:01 Guest22996 I am using a syndicated topology, and I am using Salt's default roots fileserver to push files down from the master of masters down a syndic finally to a host
14:02 ferbla_ joined #salt
14:03 Guest22996 Even though a do an explicit update fileserver, file.recurse is unable to see the freshly lais out files on master's file system
14:03 pol Since 1-2 hours, salt-cloud fails to bootstrap machines with "salt-cloud ERROR: You need to allow pip based installations". I am running 2015.5.3. Any ideas?
14:04 andrew_v joined #salt
14:04 Guest22996 Does anybody here have an idea on how I can force the fileserver cache list to be refreshed along with fileserver cache refresh ?
14:04 iggy pol: 1-2 hours? because there have been salt-bootstrap issues open about that for a while
14:04 zwi joined #salt
14:05 pol Yes interestingly only since 1-2 hours. I reprovision  a bunch of machines fully automatically on a daily basis and this suddenly happens today. The salt-master where I run the salt-cloud command remains unchanged...
14:06 desik_ joined #salt
14:06 pol iggy: I use the Ubuntu14 ppa
14:06 zwi joined #salt
14:06 iggy check the salt-bootstrap issues and see if any of them match your problem
14:06 desik_ hello
14:07 pol iggy: I already checked and also double checked the code for changes. When I run salt-bootstap.sh with the option 'stable 2015.5' it works fine again.
14:08 Heartsbane_ joined #salt
14:10 iggy it's probably not the code, it's probably the ppa
14:10 murrdoc joined #salt
14:10 Gardinero drawsmcgraw: Just for your information. I finally found out, what I have done wrong.
14:10 iggy check the issue tracker, this has either happened before or it's still happening and you're just seeing it
14:11 drawsmcgraw Gardinero: Oh?
14:11 pol iggy: that's what I thought, but looking at the ppa http urls, they all have old timestamps (older than 1-2hours, i.e. july or so)
14:12 fer_bla joined #salt
14:12 dschatz joined #salt
14:12 Gardinero drawsmcgraw: I used the wrong 'syntax' for the path in my init.sls. I thought, I could write the path as "/mnt/sdb1/..." for the installer path. No I managed to do it with "salt://". Sorry, but for me the best to learn a lot. ;)
14:13 drawsmcgraw Ah, because the installers are in the Salt file server
14:13 drawsmcgraw And yes. I've learned a *lot* by fixing broken things - most of the time broken by me :)
14:13 dschatz hi all, just getting started with salt - I get an error when deploying a state on a minion - "KeyError: git.latest" - what does this mean?
14:14 drawsmcgraw dschatz: Likely some python-git libs need installing
14:14 iggy dschatz: it usually means you're missing some optional dependency (in this case gitpython)
14:14 anmol joined #salt
14:14 dschatz ok thanks
14:14 dschatz why wouldn't git.latest depend on that?
14:14 drawsmcgraw dschatz: What iggy said. If you want more reading: https://docs.saltstack.com/en/latest/topics/tutorials/gitfs.html
14:15 debian112 joined #salt
14:15 drawsmcgraw dschatz: git.latest depends on those libs (i.e. gitpython)
14:15 kevinquinnyo joined #salt
14:15 Gardinero drawsmcgraw: Yes. I don't really know if that is necessary. But for me ok.
14:15 drawsmcgraw hey iggy (and anyone else), I remember Salt errors being more helpful. I could swear earlier versions would outright say "I don't have any Git libs installed. plz install them"
14:16 drawsmcgraw Now we get things like "key error, git.latest"
14:16 dschatz drawsmcgraw: I would have thought that by using the git.latest state - it would automatically install any packages that needs
14:16 drawsmcgraw Did I make that up? I feel like some errors have gone backwards in friendliness
14:16 murrdoc joined #salt
14:16 drawsmcgraw dschatz: Ah. That's not an unreasonable expectation.
14:17 drawsmcgraw The problem, though, is that any one of several lib will satisfy the need
14:17 drawsmcgraw s/lib/libs
14:17 drawsmcgraw And, at least for me personally, I wouldn't want Salt implicitly installing packages on my machines.
14:17 dschatz I thought that was the whole point of using states
14:18 drawsmcgraw When you specify software you want installed, yes.
14:18 drawsmcgraw But if I had (for example) dulwich on all my minions
14:18 Cyis joined #salt
14:18 drawsmcgraw And Salt wanted to install GitPython because it needed it for git.latest()
14:19 iggy drawsmcgraw: it does for some things (the fileserver does say specifically)
14:19 drawsmcgraw Now I have two (possibly conflicting) packages installed.
14:19 iggy drawsmcgraw: and other modules do
14:19 drawsmcgraw iggy: Ah, right. Okay, I must have made the problem seem worse than it is, the.
14:19 drawsmcgraw then*
14:20 iggy the problem is... do you want to see the error messages for 100+ modules/states you don't use?
14:20 dschatz drawsmcgraw: so to get the behavior I want, I could use an extend declaration to make git.latest depend on some git lib package to be installed?
14:20 murrdoc iggy
14:20 murrdoc get back to work
14:20 murrdoc MUHAHAHAHAHA
14:20 drawsmcgraw iggy: Fair enough. I guess it's always a balance.
14:20 iggy could probably do something with the loader and some special debug functions
14:21 drawsmcgraw dschatz: yes
14:21 murrdoc (i aint the boss of hickey)
14:21 murrdoc GTFBTW FOO
14:21 * murrdoc retreats slowly
14:21 iggy murrdoc: it's so early here
14:22 murrdoc u at work already ?
14:22 iggy dschatz: look at how some of the formulas work
14:22 iggy murrdoc: no, the email said be there at 930
14:22 dschatz iggy: which formulas?
14:23 iggy dschatz: a few of them,c an't remember off hand
14:23 dschatz look for what?
14:23 iggy search repo for git.latest maybe?
14:23 dschatz oh ok
14:23 zerthimon joined #salt
14:24 pol iggy: I found another thing: the file /usr/lib/python2.7/dist-packages/salt/cloud/deploy/bootstrap-salt.sh had a checksum different from the one in the apt checksum list. I re-installed the package and the file got reverted.
14:25 drawsmcgraw dschatz: For a contrived example, see http://dpaste.com/0PV74YS
14:26 manfred pol, salt-cloud -u will update that file from the salt-bootstrap repository
14:26 manfred there was a bug for a while in it that caused your error, but that was supposed to be solved I thought
14:27 dschatz drawsmcgraw: thanks. What's the reason for not just putting the require gitPython in it's own section(?) instead of in latest-code?
14:27 iggy dschatz: git-formula maybe
14:28 drawsmcgraw dschatz: Because the 'require' section only applies to the 'latest-code' state
14:28 drawsmcgraw That example has two states: one that installs GitPython, and one that clones from a Git repo
14:29 iggy use short dec style please
14:29 drawsmcgraw The state that clones the Git repo is told to "require" that the state that installs GitPython succeeded.
14:30 drawsmcgraw iggy: I'm torn on this. Do we, the community, have a "preferred" way of doing this?
14:30 iggy that should also work without the require (as Salt works top down)
14:30 drawsmcgraw iggy: True. But the point is to run only if Git is actually installed on the system.
14:30 iggy drawsmcgraw: yes, it's documented, and we converted all the formulas a while back
14:30 drawsmcgraw iggy: I believe you, but can I have a link for when I start to mention it to others?
14:31 drawsmcgraw I'm the Salt evangelist in my area and resources like that are great for back up
14:32 iggy best practices?
14:32 iggy it's somewhere
14:32 drawsmcgraw fair enough. I'll find it
14:32 clintberry joined #salt
14:32 iggy (if not, the template formula is considered documentation)
14:32 pravka joined #salt
14:33 adelcast joined #salt
14:33 dschatz drawsmcgraw: Sorry, I don't understand. What's the difference between the install-git state being required and just the package install being required?
14:34 drawsmcgraw dschatz: Have a meeting I'm about to get pulled into. I'll be back but in the meanwhile, this may help https://docs.saltstack.com/en/latest/ref/states/requisites.html
14:35 dschatz drawsmcgraw: Ok, Here is a link to style guidelines (I think) https://docs.saltstack.com/en/stage/topics/development/conventions/formulas.html#style
14:35 khris joined #salt
14:35 drawsmcgraw dschatz: Ah, nice :) Alright then. I'll set about changing how we do it.
14:35 mapu joined #salt
14:38 protoz joined #salt
14:38 murrdoc dschatz:  good link
14:38 pol manfred thank you for the hint, I will try to find a way to disable "-u" ...
14:42 viq joined #salt
14:43 RedundancyD joined #salt
14:44 programmerq joined #salt
14:47 tanta joined #salt
14:47 keltim joined #salt
14:47 keltim join #iz
14:47 Brew joined #salt
14:48 ssc left #salt
14:48 slav0nic joined #salt
14:50 keltim oops
14:50 protoz joined #salt
14:51 murrdoc joined #salt
14:54 Gareth o/
14:54 thefish left #salt
14:54 CheKoLyN joined #salt
14:55 _pravka_ joined #salt
14:55 SunPowered joined #salt
14:56 Brew joined #salt
14:56 sesh_ joined #salt
14:57 zwi joined #salt
14:57 Guest12755 Hi team
14:58 pravka_ joined #salt
14:58 protoz joined #salt
15:00 protoz_ joined #salt
15:03 protoz joined #salt
15:05 dopesong joined #salt
15:05 protoz_ joined #salt
15:05 DammitJim joined #salt
15:05 clintberry joined #salt
15:06 DammitJim how can I copy all files on a directory on my salt master to a minion?
15:06 DammitJim file.managed ?
15:06 DammitJim and list each of them 1 by 1?
15:06 eosinx left #salt
15:07 manfred file.directory might?
15:07 PeterO_ joined #salt
15:07 iggy DammitJim: file.recurse?
15:07 DammitJim yeah, I was just reading about recurse
15:07 manfred ahh yeah, that is the one, not .directory
15:10 keimlink joined #salt
15:11 sdm24 joined #salt
15:11 pm90_ joined #salt
15:12 protoz joined #salt
15:12 protoz joined #salt
15:12 DammitJim how do I do a state for 3 different minions?
15:12 DammitJim can I list them?
15:12 DammitJim I have failed to do top
15:13 sdm24 Like just to call them from the CLI?
15:13 iggy list matches or compound matches
15:13 sdm24 salt -L 'minion1,minion2...'
15:14 DammitJim I forgot I could do [1,3]
15:14 DammitJim thanks
15:14 iggy learn how to use the top file
15:16 cyborg-one joined #salt
15:17 ch0ke joined #salt
15:19 jalbretsen joined #salt
15:23 Akhter joined #salt
15:23 Furao joined #salt
15:23 bhosmer joined #salt
15:23 dthom91 joined #salt
15:24 shano joined #salt
15:26 LtLefse is it better style (in a state) to use service.running or put "- running" on its own line?
15:26 bhosmer joined #salt
15:30 iggy LtLefse: service.running
15:30 LtLefse thanks
15:30 iggy (it's called short dec style and mentioned in the docs)
15:31 pm90__ joined #salt
15:31 ageorgop joined #salt
15:32 SunPowered is there a problem referencing this in a statefile: {{ pillar.get('sunpowered:ssh_key_pub') }}
15:32 SunPowered https://gist.github.com/SunPowered/ef4780f79c011b7682c0
15:32 mrwboilers1 left #salt
15:33 SunPowered the pillar data is not found, though when run on the cmd line, the pillar reference works
15:33 Akhter joined #salt
15:33 SunPowered salt-call pillar.get sunpowered:ssh_key_pub
15:33 pm90___ joined #salt
15:35 murrdoc iggy:  u know 'fabian chong'
15:35 murrdoc dudes self merging, pushing up to master, all sorts of good stuff
15:35 SunPowered also, working manually with the pillar dict also works: pillar['sunpowered']['ssh_key_pub']
15:41 pcn SunPowered: salt['pillar.get']('sunpowered:ssh_key_pub')
15:42 djinni` joined #salt
15:42 SunPowered i see.  the reference to pillar is a standard dict, so no fancy referencing allowed
15:42 fii joined #salt
15:42 fii afternoon all
15:42 SunPowered but when calling salt's pillar.get function, it is indeed different
15:42 SunPowered thx
15:42 fii running into a really weird problem - wonder if anyone can help
15:43 fii https://paste.fedoraproject.org/264839/41726988/
15:43 pcn In the salt dictionary, the function that pillar.get references knows how to turn "foo:bar" into pillar['foo']['bar']
15:43 SunPowered pcn: can I assign a default value this way?
15:43 pcn Yeah
15:44 fii sls file is here : https://paste.fedoraproject.org/264840/44172702/
15:44 pcn SunPowered: salt['pillar.get']('sunpowered:ssh_key_pub', [])
15:44 iggy murrdoc: inform them what they are doing wrong first (still don't have a contributors rules doc)
15:44 theologian joined #salt
15:45 SunPowered of course, thx
15:45 murrdoc iggy:  we need to talk to all the contributors about rules for maintainers
15:45 fii pcn : was that meant for me please ?
15:45 murrdoc before i can say something
15:45 fii sorry
15:45 mr_const joined #salt
15:46 Fiber^ joined #salt
15:46 mr_const I've got a problem with gitfs
15:46 pcn fii: for SunPowered
15:46 fii pcn: thanks
15:47 fii any help will be appreciated please guys
15:47 dthom91 joined #salt
15:48 mr_const master's log file says UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 14: ordinal not in range(128)
15:49 SunPowered fii: I just ran into this.  try to add a - gid: {{ pillar['dev_user']['name'] }}
15:49 mr_const Comment: Recurse failed: none of the specified sources were found
15:50 SunPowered fii: For me, on a ubuntu box, if the group id was not explicitly set for a 'user.present' call, it would fail with an unhelpful error
15:51 SunPowered fii: and the 'gid' parameter can be the username
15:51 pcn fii: that's a targeting issue
15:52 otter768 joined #salt
15:52 pcn I mean if everything else works, you're just not getting the data you expect via top.sls
15:52 pcn and he's gone
15:52 pcn Or she
15:52 SunPowered poof, into the aether
15:53 SunPowered pcn: you are right, I didn't see the first pastefile
15:55 mohae_ joined #salt
15:56 mohae_ joined #salt
15:57 mr_const anyone knows, how to make gitfs work with unicode filenames?
15:57 SunPowered as a more general issue, has anyone else noted really bad search results in the docs?
15:58 Bryson joined #salt
15:59 SunPowered search the docs for something pretty simple, 'states.user'.  Which I would expect to hit the somewhat similar 'salt.states.user' docs page.   It's not even on the first page of results
16:00 SunPowered but you search good ol Google for 'salt.states.user' and it hits the right page no problem
16:00 teepark left #salt
16:00 SunPowered somehow the salt 'Custom Google Search' is breaking Google
16:02 zmalone joined #salt
16:04 pm90_ joined #salt
16:06 mschiff is there anything wrong with referencing pillar in jinja like "pillar.foo.bar" instead of salt['pillar.get']("foo:bar")
16:06 mschiff (in recent versions)
16:06 aparsons joined #salt
16:08 murrdoc i would do salt.pillar.get.<stuff>
16:12 arthoo joined #salt
16:12 manfred i like the salt['pillar.get']() cause it allows me to set a default if any link in the chain doesn't exist
16:12 colttt joined #salt
16:13 mapu joined #salt
16:14 murrdoc yup
16:14 murrdoc me too
16:14 murrdoc but the dot syntax is new hotness
16:14 rm_jorge joined #salt
16:15 khaije1 joined #salt
16:15 manfred is salt.pillar.get different than the old pillar.foo.bar?
16:15 manfred or link to where it is documented?
16:15 hasues joined #salt
16:16 khaije1 can I use the '#!yaml|gpg?' style obfuscation in a roster flat file?
16:16 hasues left #salt
16:16 arthoo Hi, I'm trying to add a ssh.set_auth_from_file into an sls but obviously have something not quite right and the only examples I can find are via the command line.
16:16 arthoo Here's what I have: http://pastebin.com/BwAxVncc
16:18 manfred arthoo: you could use the ssh_auth.present state https://github.com/saltstack/salt/blob/develop/salt/states/ssh_auth.py#L197
16:18 manfred the stuff on the command line is an execution module, for configuring it in a state file, you would want to use the state modules
16:19 manfred arthoo: that ssh_auth state module, uses the ssh.set_auth_from_file execution module to do the work, https://github.com/saltstack/salt/blob/develop/salt/states/ssh_auth.py#L296
16:19 arthoo manfred: AH!  Thank you so much!
16:19 manfred no problem :)
16:25 writtenoff joined #salt
16:26 JDiPierro joined #salt
16:27 perfectsine joined #salt
16:31 cyborglone joined #salt
16:32 KyleG joined #salt
16:32 KyleG joined #salt
16:35 nikogonzo has anyone experienced any practical limitations while using the 'sh' beacon? looking for situations where the stress of running strace on a bunch of shell processes caused pain or heartache
16:38 dexter91x joined #salt
16:39 UtahDave joined #salt
16:42 bhosmer joined #salt
16:48 DammitJim joined #salt
16:56 wendall911 joined #salt
16:57 murrdoc need a reboot beacon man
16:57 murrdoc other beacons are not useful
16:57 murrdoc :D
16:58 bhosmer_ joined #salt
17:08 sgargan joined #salt
17:08 druonysuse joined #salt
17:15 k00l joined #salt
17:15 larsfronius joined #salt
17:16 k00l hey gang, can anyone help with throwing and catching stuff through the event system ?
17:17 k00l using python
17:17 keimlink joined #salt
17:17 k00l i can get the event into the event system cuz i can see it in the bus as it goes by.
17:17 forrest joined #salt
17:17 k00l but cant get a py script to catch it on teh master side
17:18 impi joined #salt
17:20 ageorgop joined #salt
17:21 UtahDave k00l: can you pastebin what you've tried so far?
17:21 druonysus joined #salt
17:21 k00l will do one sec plz
17:23 k00l here ya go : https://gist.github.com/anonymous/d7f1c7f98271dd5bc888
17:32 UtahDave k. just a minute
17:33 UtahDave oh, what version is your salt-master and salt-minion, k00l?
17:33 k00l salt-minion 0.17.5
17:33 k00l master : salt 2015.5.3 (Lithium)
17:33 UtahDave that's probably your problem right there.
17:34 UtahDave Can you upgrade that minion?
17:34 k00l the minion ?>
17:34 druonysus joined #salt
17:34 ajw0100 joined #salt
17:34 UtahDave that minion is crazy old
17:34 k00l is it ?
17:35 k00l weird i installed it from teh docs..
17:35 whytewolf k00l: did you install it on ubuntu and not add the salt ppa?
17:36 k00l no thats the first step
17:36 whytewolf 0.17.5 is the default in ubuntu if the salt ppa is not installed
17:37 k00l kk
17:37 zmalone You need to update your repos too, after adding the ppa
17:37 zmalone Otherwise it'll work off the cache in some instances, and you'll still get 0.17
17:37 k00l ok im on 2015 now
17:38 k00l ok , i tryed it again and its still not working
17:39 UtahDave k00l: try running this on your master: sudo salt-run state.event pretty=True
17:39 UtahDave And then this on your minion:   sudo salt-call event.fire_master 'datastuff' 'testtag'
17:39 k00l ya i can see into teh event bus,, and i can see my event going thropugh
17:40 sdm24 I'm having issues storing a list in a pillar, and calling that list in a state. I'm not sure exactly where my formatting is incorrect. Gist incoming
17:40 UtahDave k00l: try removing line 14 from your gist.
17:40 k00l heres teh event : https://gist.github.com/anonymous/51fa80761e6869c81a32
17:41 k00l removing line 14 does nothing
17:41 k00l salt-minion 2015.5.3 (Lithium)
17:43 UtahDave k00l: are you trying to follow a particular documentation page or a blog post?
17:43 k00l UtahDave: just the standard docs ... https://docs.saltstack.com/en/latest/topics/event/index.html#from-python
17:44 forrest basepi: Could you ask whiteinge if the new github permissions can be set to forbid people from doing direct pushes against repos in the saltstack-formulas org? Someone just did this: https://github.com/saltstack-formulas/postfix-formula/commit/59eb3b711a9e79785982eeadeaa9bf75fea44c56
17:46 sdm24 https://gist.github.com/sdm24/2c9534c88b1eb228e4ba here is my gist. I want mariadb to create the same user for multiple hosts
17:47 cheus joined #salt
17:47 tanta joined #salt
17:47 forrest sdm24: Does this actually work? ~ db ~
17:48 forrest I've never seen that before in place of {{ db }}
17:48 sdm24 It doesn't spit errors anymore. It just prints a blank list
17:48 forrest did you already try {{ db }}?
17:48 forrest Maybe it's just jinja variable referencing I'm not familiar with
17:48 sdm24 forrest: I need to print the db name (which varies from pillar to pillar), and since it is inside a {% for %} loop, I can't put {{ db }} inside it
17:48 tanta the '~' is a concatenation operator for strings in Jinja
17:49 tanta you can do {{ variable ~ '-stuff-' ~ variable2 }}
17:49 sdm24 e.g. {% for hostname in {{ db }} %} is bad
17:49 vim-zz joined #salt
17:49 forrest Where did you find that example?
17:50 UtahDave k00l: got it for you.  just a second
17:50 sdm24 Umm I've been using it for a while to concatenate strings in jinja. Can't recall a specific example
17:50 k00l UtahDave: thanks mate.
17:50 forrest okay
17:51 sdm24 You can also use 'string1' + variable + 'string2', although ~ will automatically convert variable into a string type
17:51 UtahDave k00l: https://gist.github.com/UtahDave/27c5f1bf13f060185c64
17:51 UtahDave forrest: basebi is out of the office all week
17:51 forrest UtahDave: What a damned slacker...
17:51 UtahDave but I'll pass on the info to whiteinge.
17:52 forrest UtahDave: Sweet, thanks man!
17:52 UtahDave thank you!
17:52 sdm24 I couldn't find any examples of having a list in a pillar file, so I'm not sure how to call it in a state file
17:52 UtahDave By the way, how've you been, forrest?
17:52 forrest UtahDave: Pretty good! What about you?
17:52 UtahDave good!
17:53 otter768 joined #salt
17:53 forrest That's good, not too much traveling recently I hope
17:53 tanta if you have a list, you can iterate through the items using: {% for item in salt['pillar.get']('list', {}).iteritems() %}
17:53 tanta then each iteration will substitute the list item into the 'item' variable
17:53 forrest sdm24: Yeah I think I usually do mine a little more ghetto, where I do what tanta does inside the existing loop.
17:54 k00l UtahDave: that doesnt seem to work mate
17:54 UtahDave really?  It worked for me just now.  Are you running view_events.py with sudo?
17:55 sdm24 ok tanta, I'll try that. Thanks
17:56 UtahDave forrest: looks like that's harder to do.  salt-formulas blocks force pushes, but if a user has rights to merge pull requests they can push directly to the repo.
17:56 SheetiS joined #salt
17:56 UtahDave forrest: can't separate the two
17:57 baweaver joined #salt
17:57 mortis_ left #salt
17:57 laax joined #salt
17:57 mortis_ joined #salt
17:57 k00l its not picking up the one from my python script
17:57 k00l am i throwing it into the event bus wrong ?
17:57 forrest UtahDave: First that's dumb. Second I'm not sure why this guy is part of the org, he has 9 contributions in the last 365 days.
17:58 ksj I'm having issues trying to merge an external pillar with the main pillar. I want to render the ext pillar first, then override certain values. I've set ext_pillar_first, and tried every pillar_source_merging_strategy, but I can't get it to merge
17:58 forrest Man I thought these enhanced github perms were going to be better, pass on :( to whiteinge UtahDave.
17:58 baweaver joined #salt
17:58 GreatSnoopy joined #salt
17:59 sdm24 tanta: When I try using your method, the state runs, but the part involving the list is blank. Guess I'll have to test more
17:59 tanta if the list is blank, it means that the list is either empty or the key passed into pillar.get() is incorrect
17:59 tanta the syntax I posted sets a default empty list if the pillar.get returns empty or nil
17:59 sdm24 oh is that what the {} is for?
18:00 tanta yes, it's a default assignment
18:00 forrest UtahDave: I'm going to create an issue to note that https://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html needs to be updated with a contributing section since that's the only link from the main orgs page
18:01 k00l UtahDave: thats still not working for me mate. am i throwing the event into teh buss wrong from Py?
18:01 tanta when you have issues like that, doing a salt-call pillar.get "key" from the minion will show you the YAML tree fetched
18:01 sdm24 tanta: how can I add in a default value?
18:02 tanta for a list, you would have to pass a list object
18:02 sdm24 yeah, salt-call pillar.get shows the correct tree I want
18:02 sdm24 so {list: - default}?
18:03 sxar_ joined #salt
18:03 tanta hmm, let me test it out, one second
18:04 sdm24 ok thank you for the help
18:04 nikogonzo has anyone experienced any practical limitations while using the 'sh' beacon? looking for situations where the stress of running strace on a bunch of shell processes caused pain or heartache
18:05 k00l Can salt even catch commands from teh event bus with python ?
18:05 UtahDave k00l: well, in your example you're not sending the correct tag.
18:05 k00l UtahDave: perhaps you could explain cuz im feeling a very large discconnect from teh manual to what you showed me
18:05 CheKoLyN joined #salt
18:07 jor_ joined #salt
18:08 k00l in teh manual theres only 1 example of how to fire an event from python.. i hoped for more help for such a large system
18:10 babilen joined #salt
18:11 tanta https://gist.github.com/anonymous/47bd89bd4c06c34d8ed0 here sdm
18:11 sdm24 tanta: cool, thanks
18:11 tanta this is the proper syntax for iterating through a list, and providing a default set of values
18:12 tanta I think for an empty list, you'd use [], I am used to iterating over dictionaries which is compatible with {} and .iteritems(), but lists are handled differently
18:12 sdm24 tanta: gotcha, thanks. Now I guess comes the hard part because my list is nested under a key that is going to change
18:12 tanta then you have a loop within a loop
18:12 tanta the outer loop can iterate over the dictionary of keys, and then the inner loop can iterate over the list referenced by each key
18:13 tanta you're talking about a 'list of lists' or something like that
18:13 sdm24 yeah thats what I have now but for some reason its still not working
18:14 sdm24 https://gist.github.com/sdm24/2c9534c88b1eb228e4ba tanta: look at the pillar file at the bottom to see what I am trying to talk about
18:14 johnkeates joined #salt
18:14 UtahDave k00l: ok, figured it out. You were passing in the arguments backwards. and with a wrong tag.
18:14 k00l iw as ?
18:15 UtahDave k00l: look at the comment I made to your gist: https://gist.github.com/anonymous/d7f1c7f98271dd5bc888
18:15 k00l UtahDave: ya sry.. is there a manual that explains this in greater detail.. like how to structor a python event.fire ?
18:15 baweaver joined #salt
18:17 k00l fixed .. ok mate thnaks again !!
18:17 UtahDave k00l: you're welcome!
18:17 UtahDave back in a bit
18:17 sdm24 tanta: so my state works when I hard-code in the path "mariadb-dbs:salt:host". The problem is that the db name ('salt' in this example) is going to be different for each database
18:18 tanta https://gist.github.com/anonymous/82ebc38c0591c2da9a40
18:18 sdm24 oh now it works with the 'mariadb-dbs' ~ db ~ ':host' concatentation. I think I had unbalanced quotes or something before
18:19 tanta handling yam data structures is wacky with Jinja sometimes
18:19 tanta l
18:19 Rebus Hi, is there a way to parametrise the top.sls file e.g. with varaibles from pillar to hide the full content of the top.sls?
18:19 tanta it took me a ton of trial and error to get a better grasp on how to match the loop syntax with the YAML data structures
18:20 sdm24 tanta: thanks for all the help. I had been testing similiar things earlier, it definitely is just a lot of trial and error
18:21 khaije1 for salt-ssh, is there a way to suppress the 'do you want ot deploy the salt-ssh key?' prompt?
18:22 David_B55 joined #salt
18:24 Rebus I am looking for a way to ensure I do not deploy my complete top.sls to each an every minion, thereby disclosing my match classes or evne customer names etc. pp. - is there a way to limit the content of a top.sls sent to a minion?
18:25 tanta the iteration over 'items' in my example is iterating over the tuples of: ( 'one', ['a', 'b', 'c'] ) and ( 'two', ['d','e','f'] )
18:25 tanta using the -l debug flag with your minion runs will expose the underlying Python data structures, very useful for learning more
18:30 dthom91 joined #salt
18:32 twork i'm debugging a single state, so repeated runs of 'state.highstate' and friends gets in the way. the file i'm working on does show up with lots of diffs when i run highstate, but:
18:32 timoguin joined #salt
18:32 theologian joined #salt
18:33 twork " sudo salt-call state.single file.managed name=/etc/vsftpd.conf test=True" ...turns up no changes. i get a WARNING,  Neither 'source' nor 'contents' nor 'contents_pillar' nor 'contents_grains' was defined.
18:34 twork clearly i am confused. hint?
18:34 colon_D joined #salt
18:34 David_B55 joined #salt
18:39 CheKoLyN joined #salt
18:40 s_kunk joined #salt
18:41 coval3nce joined #salt
18:41 sdm24 twork: how are you getting the source for the file.managed? If it is pillars, are you using the same pillar env when you do salt-call
18:41 coval3nce anyone happen to know what minion settings are tweakable for “SaltReqTimeoutError: after 60 seconds. (Try 1 of 7)” ?
18:42 NightMonkey joined #salt
18:42 sdm24 twork: also, I'm not sure what your sls is like, but salt-call state.sls might be better than state.single
18:43 twork sdm24: not sure if this answers your question, but i'm not changing anything between my calls to highstand and salt.single
18:43 keimlink joined #salt
18:44 twork sdm24: i'll try state.sls. i often struggle with the distinction between the two.
18:45 sdm24 twork: I was just thinking that one issue could be state.highstate is using a different environment than state.single. Odds are they are using the same env
18:45 sdm24 twork: state.sls will run the whole specified sls file, state.single will one just one ID of a sls file
18:45 jopecko joined #salt
18:45 twork sdm24: to the best of my understanding, i only have one environment
18:46 dopesong joined #salt
18:47 twork sdm24: 'salt-call state.sls vsftpd' does fly fine. which does help a lot, thanks.
18:47 dopesong_ joined #salt
18:47 sdm24 no problem
18:48 twork sdm24: for the sake of knowing what the hell i'm doing, being able to hit a sngle element would be nice, but this gets me on my way.
18:48 sdm24 twork: I wonder if maybe your file.managed ID has a require or something, so when you run state.single, it doesn't trigger the require, so the state does nothing
18:50 andrew_v joined #salt
18:51 twork sdm24: i wondered something like that, but i don't think it is the case. just 'name', 'source', 'template', 'user', 'mode', and 'watch_in'. but maybe there's a hookup somewhere else that i don't know to look for.
18:51 twork oh and, the source is definitely changed... but i said that already
18:51 twork whatevs. i soldier along, thanks.
18:52 johnkeates left #salt
18:54 SunPowered is it better to have a salt-cloud box separate from the main master box for an organization?
18:54 SunPowered I want my cloud to be able to spin up servers for several masters
18:54 dthom911 joined #salt
18:56 drawsmcgraw SunPowered: I'd consider having each master create their own VMs
18:56 polishdub joined #salt
18:57 SunPowered drawsmcgraw: I would need to maintain copies of my cloud configs on each master then
18:58 drawsmcgraw SunPowered: Yes. There are ways around that, though.
18:58 drawsmcgraw I don't suppose you have any private Git repos?
18:58 SunPowered I do
18:58 SunPowered I could manage the cloud config as a separate repo
18:59 SunPowered so that's the best way?
18:59 Grokzen joined #salt
18:59 SunPowered ... in your opinion
19:00 drawsmcgraw *ideally* your Salt configs are a git repo
19:00 drawsmcgraw i.e. /etc/salt is the base of the repo
19:00 drawsmcgraw (minus the PKI details)
19:01 drawsmcgraw Granted, getting that set up in a currently-running environment may be non-trivial
19:01 SunPowered I am fortunate to be dealing with this pre-production
19:01 drawsmcgraw ah!
19:01 drawsmcgraw In that case
19:01 drawsmcgraw /etc/salt (be sure to .gitignore the pki directory) is a git repo
19:02 drawsmcgraw At that point, Salt is just another service with configs that need to be managed
19:02 drawsmcgraw You can use the Salt scheduler to occasionally grab the latest version of the repo
19:02 drawsmcgraw And if there are updates to the repo, the Salt master restarts to pick up the changes.
19:02 drawsmcgraw HOWEVER
19:02 drawsmcgraw I can't say I'd be comfortable with the Salt master restarting on its own.
19:03 drawsmcgraw You may have a setup that's more tolerant of that.
19:03 drawsmcgraw Now, in order to keep all the Salt masters configs in sync, just update the "salt-configs" repo, and all the masters will pick it up on their next check.
19:03 drawsmcgraw Or you can just run a 'git pull' on them to force an update.
19:03 SunPowered nice, I like that workflow
19:04 SunPowered does a salt-master run a global highstate on startup?
19:04 drawsmcgraw no
19:04 drawsmcgraw When the salt-master service starts up, you mean, right ?
19:08 quasiben joined #salt
19:12 vim-zz is there a way to watch on a change of grains? i have roles set for each minion and i want to be able to change roles dynamically, when that happen a service needs to restart
19:15 pbrooko joined #salt
19:17 babilen I wouldn't necessarily keep roles in grains (there is no reason to store that information on the minions rather than in a central location/service), but the way you would probably go about this is to simply run highstates whenever you change that (or continously), but that doesn't take care of *removing* things that were there before
19:17 babilen (say a state installed emacs and you no longer target that state emacs will still be installed)
19:17 Ahlee I wrote a _grain that returns a dict, Is there any way to .get into that dict?
19:17 Ahlee or do i need to return seperate grains to be able to match on :(
19:18 babilen Ahlee: salt['grains.get'}('first:second:third:fourth')
19:18 Ahlee babilen: from teh cli?
19:19 murrdoc same thing
19:19 SheetiS that should work from the CLI as well
19:19 murrdoc grains.get first:second:yo:mama
19:19 murrdoc also wtf with the weather man
19:19 babilen salt '*' grains.get 'first:second'
19:19 Ahlee ah, get and :
19:19 Ahlee get vs item still to this day confuses me.
19:19 Ahlee murrdoc: right?
19:19 k00l joined #salt
19:19 k00l hey all, is there anyone here still?
19:20 babilen No, you are alone
19:20 k00l sweet,
19:20 coval3nce Anyone know if there is a way to tweak the kwargs sent to this function? https://github.com/saltstack/salt/blob/c3a2355a62d685bcac0a9a435d583bb4a154f277/salt/payload.py#L301
19:20 Ahlee dang. Going to need two queries, as my grain is foo:bar:baz, bar is variable, but i really want baz
19:20 k00l i was wondering if i could have a reactor fire a state.sls command but use data supplied within the event ?
19:20 coval3nce Be nice to tweak these in order to failover to other masters quicker.
19:21 perfectsine joined #salt
19:21 Bryson joined #salt
19:21 babilen k00l: Sure, you have access to data[...]
19:22 k00l is there an example of this in the manual ?
19:22 babilen k00l: There are various examples of that in https://docs.saltstack.com/en/latest/topics/reactor/
19:23 k00l babilen: thanks for the help mate.
19:23 amcorreia joined #salt
19:24 babilen k00l: Note that you can raise your own events and supply arbitrary data with https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.event.html#salt.modules.event.fire_master (execution module) and https://docs.saltstack.com/en/develop/ref/states/all/salt.states.event.html#salt.states.event.send
19:25 TyrfingMjolnir joined #salt
19:25 babilen (not sure if you need that, but then I don't know what you are trying to achieve)
19:30 Bryson joined #salt
19:33 k00l babilen: kool, ill read that too LOL.. thanks again for the help
19:33 baweaver joined #salt
19:33 vim-zz babilen: what do u mean by setting roles in a central location, can u point me to a term i should google?
19:33 cberndt joined #salt
19:34 babilen vim-zz: I mean that there is no reason to save the roles a minion should be configured for *on* the minions (in a distributed manner) rather than in a datasource on the master. Pillars are one way to achieve that.
19:35 babilen (and external pillars if you keep that information in, for example, a database)
19:35 vim-zz babilen: thanks, i'll look into it
19:39 babilen vim-zz: And you also have the problem of managing grains in the first place (you hardly want to login to each minion and set them manually). Grains are, IMHO, for information about a minion in the sense that they describe various, rather immutable, aspects of the environment a minion lives in (name, network, hardware, virtualisation, ....).
19:40 babilen Grains are also inherently insecure in that a minion can tell the master anything it wants and if you target sensitive states, configuration or data based on them and do not trust your minions at the same time you might have a problem.
19:41 tanta I upload grains to S3, and then encode the URL + sha1 hash within pillar. the minion fetches its own grains and can verify that the checksum matches
19:41 babilen They might make perfect sense for this use case though and are the only datasource in salt that is available everywhere, so they definitely have their use (and this is fine if you trust your minions and have a sensible method of managing the grains themselves)
19:41 laax joined #salt
19:42 tanta it's not a perfect method but it works
19:42 babilen tanta: I am speaking about a malicious attacker that has the ability to change the grains on a minion to get the master to send it information that it shouldn't have access to
19:42 babilen tanta: Any particular reason why you don't use pillars for that information in the first place?
19:43 tanta to keep certain values out of version control
19:43 k00l babilen:  where do put the reactors ?.. right in teh master config file ?.. i fuigerd they would have there own dir same as pillar and such
19:43 babilen vim-zz: But to answer your question: Salt simply uses the current information in grains to do whatever has been configured for them. I am not sure if specific events are being fired if grains change, but you might want to look into that.
19:44 sdm24 so a random question about ext_pillar and the example docs. https://docs.saltstack.com/en/latest/topics/development/external_pillars.html#example-configuration Is the example here just echoing "arg": "value" and then writing that to a pillar?
19:45 babilen k00l: I use the salt-formula to configure my master and put them in https://github.com/saltstack-formulas/salt-formula/blob/master/pillar.example#L109 which generates suitable configuration in the master config at /etc/salt/master.d/reactor.conf via https://github.com/saltstack-formulas/salt-formula/blob/master/salt/files/master.d/reactor.conf
19:46 k00l babilen: LOL.. im not sure what that means.
19:47 k00l babilen: LOL.. Im a n00b at salt
19:47 babilen sdm24: No, that echoes "{"arg": "value"}" and parses that as json which results in a pillar that would look like this in yaml: "arg: value"
19:47 tanta babilen, I run in a masterless setup, so a lot of the security concepts in my environment are fundamentally different
19:48 babilen tanta: Sure
19:48 tanta the reasoning behind the partitioning of data into pillar/grains is basically non-sensitive data goes into Pillar and version control
19:49 tanta sensitive data goes into Grain and is accessible only to privileged instances
19:49 sdm24 babilen: ah I got it. Thanks
19:49 babilen k00l: Yes, you configure reactors in the master config (or any file that ends in .conf in /etc/salt/master.d/ if you don't change the https://docs.saltstack.com/en/develop/ref/configuration/master.html#default-include setting)
19:49 Bryson joined #salt
19:50 k00l rock on, ok.
19:50 k00l babilen: thanks.
19:50 ekristen joined #salt
19:51 babilen k00l: Salt formulas are collection of states that configure a specific service. They exist for many services such as MySQL, Postfix, Apache, ... and also for salt itself. If you use this formula it will install and configure salt according to settings in your pillar. This is detailed in https://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html for example
19:52 laax joined #salt
19:52 babilen k00l: It is perfectly fine to not use formulas for the time being and simply write the salt configuration yourself. In that case you can have the "reactors: - ... - ... - ...." bit in either /etc/salt/master or any file that matches the glob /etc/salt/master.d/*.conf
19:52 babilen k00l: I like to keep them seperately in /etc/salt/master.d/reactors.conf and I would recommend that file
19:52 k00l yes i have the reactors.conf file in the master.d folder now
19:53 babilen Make that /etc/salt/master.d/reactor.conf
19:53 k00l babilen: yes i have the reactors.conf file in the master.d folder now
19:53 babilen cool
19:53 babilen (don't forget to restart the master)
19:53 k00l babilen: yes thats where i put it .. so now im just trying to get it to respond.
19:53 k00l ahhh
19:54 otter768 joined #salt
19:54 pdayton joined #salt
19:56 babilen tanta: Wait, sensitive data goes into grains and non-sensitive into pillars? That is *exactly* the other way round .. why don't you keep sensitive informtion in pillars also?
19:56 tanta I could do it either way
19:56 tanta when there's no master, the difference between 'grain' and 'pillar' is mostly arbitrary
19:56 babilen Yeah, but pillars are specific to minions and therefore suitable for sensitive data
19:57 tanta is there a way to force the minion to re-read pillar data from disk?
19:57 babilen But you are right in that the distinction is quite arbitrary in a masterless setup, yeah
19:58 babilen tanta: https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.saltutil.html#salt.modules.saltutil.pillar_refresh comes to mind
20:01 k00l babilen: shouldent i see the master reacting to the tag in the event bus ?
20:03 cyborg-one joined #salt
20:04 colttt joined #salt
20:05 babilen k00l: I think you see that in the master log
20:05 k00l where is that ?
20:05 babilen /var/log/salt/master (but you might want to run the master manually with "salt-master -ldebug" for now)
20:10 apple joined #salt
20:11 pdayton joined #salt
20:13 tanta joined #salt
20:15 k00l babilen: humm.. its not really helpfull.. i cant seem to determin if the sls is executing on teh minions or not
20:17 larsfronius joined #salt
20:18 dthom911 joined #salt
20:22 pdayton joined #salt
20:23 k00l Nothing in the lpgs, nothing on teh command line, nothing in the event bus.. hummmm.. reactors kinda suck
20:24 sdm24 you might need to turn up the loglevel on your master
20:24 k00l i know that the even is being sent cuz i can see it in my event bus.
20:24 k00l but nothing from the reactors
20:29 druonysus joined #salt
20:33 k00l still nothing from teh reactor.. i must be doing it wromg
20:34 k00l dam i wish there were some better docs for this progrm
20:35 k00l does anyone kwo the simpelest way to test a reactor ?
20:35 k00l does it have to run a sls file .. can it just run the test.ping cmd ?
20:35 perfectsine joined #salt
20:36 how2role joined #salt
20:37 dthom911 joined #salt
20:37 |Fiber^| joined #salt
20:37 drawsmcgraw k00l: You can do a local.test.ping, yeah
20:37 drawsmcgraw (at least I think that's the syntax)
20:38 k00l so replace the sls line with that ?
20:38 drawsmcgraw you have a local.state.sls right now?
20:38 k00l no
20:38 how2role how do you guys implement roles with salt?  do you just match on the server name?
20:39 drawsmcgraw k00l: Can you post your current configs/file?
20:39 k00l which one ?
20:39 dthom911 left #salt
20:39 sdm24 how2role: our server names are pretty arbitrary, so we manually add servers to lists in pillar/top.sls
20:40 drawsmcgraw your master config pertaining to reactor. Let's start with that
20:40 nikogonzo how2role: "roles" can also be implemented via something called grains, very similar to puppet facts
20:41 k00l thats the reactor.conf file
20:41 drawsmcgraw That'll work. What's that look like?
20:41 k00l very simple
20:42 drawsmcgraw Also, like someone else mentioned, you'll get a lot of good stuff with increasing the master service to 'log_level: debug'
20:42 k00l https://gist.github.com/anonymous/539830bf8a3d1c8250cc
20:42 Bryson joined #salt
20:43 drawsmcgraw k00l: Okay, do you see anything along the lines of "gathering reactors for tag testtag" in the master logs when you fire your event
20:43 drawsmcgraw ?
20:44 k00l im looking
20:47 k00l no i dont see that is the log
20:47 k00l wait !!..
20:47 k00l drawsmcgraw: yes i do
20:48 drawsmcgraw okay, good
20:48 drawsmcgraw See anything *else* following those lines?
20:49 drawsmcgraw i.e. something along the lines of running the reactor file /srv/salt/git.sls ?
20:49 drawsmcgraw Also, we'll probably want to see the contents of /srv/salt/git.sls eventually
20:50 k00l all that git stuff is just pkg.installed and i tested it and it works
20:50 drawsmcgraw k00l: Better to see the contents. The state files you write for reactor are written differently than 'regular' state files.
20:51 k00l drawsmcgraw: found this
20:51 k00l 2015-09-08 20:46:46,555 [salt.utils.process][INFO    ][3902] Process <class 'salt.utils.reactor.Reactor'> (3954) died with exit status None, restarting...
20:51 drawsmcgraw Yeah I'm guessing the 'git.sls' file isn't written correctly
20:51 k00l drawsmcgraw: ohhhhhhhh i didnt knwo that !!.. i though i could just run a stat file !
20:51 davisj Anyone here ever try running 'salt-call --local --pillar-root=/some/path ...'? Did it work?
20:51 drawsmcgraw k00l: Right :) You write them a bit differently
20:52 drawsmcgraw k00l: See the 'simple reactor' on this page: https://docs.saltstack.com/en/latest/topics/reactor/#mapping-events-to-reactor-sls-files
20:52 sxar_ joined #salt
20:53 drawsmcgraw There are (good!) reasons why it's different. For now, though, just know that you write them differently
20:53 baweaver joined #salt
20:55 Akhter joined #salt
20:55 * davisj wonders if he has misconstrued the purpose of the salt-call --pillar-root option.
20:55 notnotpe_ joined #salt
20:55 sxar joined #salt
20:55 tercenya joined #salt
20:55 babilen k00l: If you want your minion to run a state (from a reactor) you'd use something like: "
20:55 pm90__ joined #salt
20:55 qybl joined #salt
20:56 babilen foo: local.state.sls: - tgt: 'someminion' - arg: foo.bar.baz
20:56 babilen That would execute the foo.bar.baz state on your minion
20:56 DammitJim joined #salt
20:57 pm90___ joined #salt
20:57 dkrae joined #salt
20:57 babilen You essentially target a specific execution function to your minion by using {local,cmd}.module.function (so local.cmd.run or cmd.cmd.run for https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.cmdmod.html#salt.modules.cmdmod.run for example)
20:58 k00l ok guys thanks for the help.. im gonna do some more reading and get back when i have more questions.. u guys rock thanks for the help
20:58 voileux joined #salt
20:59 shano joined #salt
21:02 babilen k00l: You might want something like this: https://www.refheap.com/109326, but then I don't quite see the point why you would do that via reactors. You could just as easily target that SLS to that minion in the states's top.sls and run a highstate
21:03 babilen But you might want to read a bit more and play around with various things. You might find it advantageous to raise the log level to debug while you play with this and "tail -f" them while you tinker with events
21:03 ingslovak joined #salt
21:03 babilen err, {{ data['id'] }} naturally
21:08 johnkeates joined #salt
21:10 johnkeates left #salt
21:11 aphor joined #salt
21:11 k00l babilen: i have raised the level to debug, that was helpfull thanks again for that
21:15 aphor This may be more of a GitHub question, but I think it is a Salt release management question: It looks like all the GitHub Blocker issues for Beryllium release are linux dependency packaging and repository hosting which are closed.
21:16 aphor Is Beryllium release imminent?
21:17 whytewolf they released rc4 like last week. as well as a note that they will note change the 2015.8 version. so i would say. the end is nigh
21:18 whytewolf s/will note/will not/
21:18 * babilen is still waiting for .5 packages ;)
21:18 whytewolf packages smackages
21:18 babilen And naturally we get another YYYY.MM with completely different months
21:19 babilen Well, month. Just one, still off though.
21:19 * aphor quivers with anticipation
21:19 whytewolf I really wish they would drop the year.month.patchlevel versioning.
21:20 aphor whytewolf: +1
21:20 babilen Well it is $YEAR_WE_ARE_QUITE_SURE.$MONTH_IS_A_TOTAL_GUESSTIMATE_USUALLY_WRONG.$patchlevel_spot_on
21:20 whytewolf LOL
21:21 whytewolf wait till they aim for dec. then year will also be compleatly off
21:21 babilen No idea why they don't just start a 'beryllium' branch and then cut the release from that and determine the version *when they release and therefore know which date it is*
21:21 aphor This whole packages thing makes me twist my face, since I'm using Salt to implement continuous deployment....
21:21 whytewolf because that would make sense. babilen
21:22 whytewolf and every program i have ever seen has at least one thing that doesn't make any sense
21:22 aphor I like the FreeBSD notion of three streams: CURRENT (head), STABLE (branch merged from head), RELEASE (branch merged from STABLE)
21:23 babilen Same with Debian (stable, testing, unstable, experimental with specific codenames that change (jessie, stretch, sid, rc-buggy))
21:24 aphor SPICY, Medium, and mild
21:24 aphor (to totally abuse the seasonings metaphor)
21:24 babilen It doesn't matter, but the crystal ball approach to versioning is just .. off
21:25 whytewolf it is eye twitch inducing.
21:25 aphor I just want the new DigitalOcean API fixes in salt-cloud :(
21:25 k00l so can i use pkg.installed in a reactor ?
21:25 drawsmcgraw aphor: wait what?
21:26 drawsmcgraw k00l: Yes. It would look like 'local.pkg.installed'
21:26 drawsmcgraw aphor: What's wrong with the DO API in salt-cloud?
21:26 dthom91 joined #salt
21:26 k00l drawsmcgraw: local.pkg.installed would that still install remotly on teh selected minion ?
21:26 babilen k00l: No, you can't. You can call https://docs.saltstack.com/en/develop/ref/modules/all/salt.modules.aptpkg.html#salt.modules.aptpkg.install though (an execution function *not* the state, if you want the state see above)
21:27 drawsmcgraw k00l: yes, because you also have to specify the 'target', which is the minion(s) that should run the pkg.installed()
21:27 babilen k00l: So that would make if cmd.pkg.install or local.pkg.install
21:27 babilen But why on earth would you want to install packages via the reactor?
21:27 UtahDave aphor: yeah, we're likely tagging the Beryllium release in the morning, pending a couple last minute things we're cleaning up.  Then we'll give packagers some time to get packages together.
21:28 aphor drawsmcgraw: some stuff chokes using 5.5, like DNS I think.. I forgot. The 2015-08 release seemed just around the corner so I zoned out for a few weeks.
21:28 drawsmcgraw I agree with babilen. The Reactor system is *very* handy but I wonder what k00l is trying to get done
21:28 k00l i have clients that will place orders on teh front end.. so i want to have custom installer run for each client
21:28 drawsmcgraw aphor: That wouldn't happen to cause problems with, say, creating multiple instances with a mapfile, would it?
21:28 k00l something that segerates the data and install from each other
21:29 drawsmcgraw For *months*, new droplets in DO made with the -P flag and a mapfile take upwards of 10-20 minutes to report back to the Salt master
21:29 aphor drawsmcgraw: yeah, that's the sauce I'm craving.
21:29 babilen k00l: I would much rather keep the information which "products" (i.e. states) a custoer has "bought" in a database, access that database as external pillar and then generate top.sls dynamically.
21:29 babilen *customer
21:30 drawsmcgraw aphor: Do you have links/issues/anything you can point me to?
21:30 drawsmcgraw I thought this was a DO problem.
21:30 aphor drawsmcgraw: DO is cheap, so I just stop holding my breath, and take a little walk around the room/office.
21:30 whytewolf sounds like a perfect use case for customer tops even
21:30 k00l ummmmm, yeah that doesnt sound complex ata ll LOL
21:30 whytewolf custom even
21:30 babilen whytewolf: Or that, yeah
21:30 drawsmcgraw I've nearly filed an issue with them over this
21:30 babilen whytewolf: custom customer tops ;)
21:31 drawsmcgraw aphor: Yeah, same here. So is the problem with DO or is there an issue with salt-cloud in DO?
21:31 k00l how do i get the master to do teh install once a order has been placed in teh DB
21:31 cliluw joined #salt
21:31 aphor drawsmcgraw: I was going to open tickets, but I found stuff that looked like my issues were covered so I was like "That was easy!" and just forgot about it until I started getting antsy about the 2015-08 release slippage.
21:31 aphor
21:31 babilen k00l: In which scenario?
21:31 drawsmcgraw When the droplets take forever to check in, I've confirmed that they just don't have network access by logging into them via the console in my browser.
21:32 k00l babilen: the one u preposed
21:32 dthom91 joined #salt
21:32 babilen k00l: Ah, sorry, missed the "placed in the db" -- You would, essentially, trigger a highstate from the master. That can be done in very different ways, but firing an event that triggers a cmd.state.highstate would be appropriate
21:33 babilen k00l: Also spend some time thinking about approaches to "undo" things in case a customer no longer pays for something.
21:34 k00l babilen: thats easy we can just del the dir.. its not complex software
21:34 pm90_ joined #salt
21:34 babilen ack
21:34 k00l lol.. ya sry its all internal stuff
21:34 aphor drawsmcgraw: last time I looked at v.2015-05-05, I vaguely remember a mishmash of old/new DO API code and not everything was implemented yet.
21:35 drawsmcgraw aphor: Ohhhh, you mean making the do_v2 driver feature complete with do_v1 ?
21:35 babilen k00l: That's okay .. we all have to live off something ;)
21:35 drawsmcgraw I'm talking about issues with droplets taking over 10 minutes to create,bootstrap, and check in with the master
21:35 pm90__ joined #salt
21:35 aphor drawsmcgraw: if I can't do everything with the v2 API in Be release, you just made me cry!
21:36 drawsmcgraw aphor: I had just assumed it *was* feature complete. I've been using it for a couple months now
21:36 drawsmcgraw Hell, I updated my DO article on salt-cloud to use the v2 api
21:36 aphor Creating a DO Droplet in their web UI takes ~15 minutes.
21:36 drawsmcgraw aphor: *THAT'S* what I'm having issues with. *why* does it take ~15 minutes?
21:36 drawsmcgraw Used to be ~2
21:37 drawsmcgraw I've tried different regions, too. NYC(2|3), San Fran....
21:37 aphor drawsmcgraw: good, fast, cheap (pick TWO)
21:37 drawsmcgraw aw fer chrissake
21:37 drawsmcgraw I need a hipster sticker. "I used Digital Ocean when they were quick"
21:37 aphor I think they are victims of their own success.
21:38 drawsmcgraw It would seem
21:38 drawsmcgraw I haven't seen anything coming from them outright admitting that they're overwhelemed.
21:38 drawsmcgraw But it's hard not to think that
21:39 alemeno22 joined #salt
21:41 aphor I can tolerate 2 hours of DO slowness if I can open a beer and there's a reasonable expectation that all my stuff will be up and running.
21:42 drawsmcgraw Where's my 'sad panda' emoji.....?
21:42 aphor My guess is that they run VMs at one priority and provisioning jobs at a subordinate priority, so whatever IO they are doing on the back end is queued behind everyone else's unit tests.
21:43 andrew_v joined #salt
21:44 aphor The other thing I suspect is that aged perl wizards wrote all their stuff in Ruby.
21:45 drawsmcgraw aphor: I just died a little on the inside
21:45 drawsmcgraw I had glibly assumed they were running with a custom (forked?) Openstack
21:45 aphor Y'know, we don't know why it fails sometimes so we wrapped it in a retry loop and that seems to work.
21:45 drawsmcgraw I'm not sure if I really want to see what they're running... or if I really *don't* want to see
21:45 drawsmcgraw lol
21:48 rcurrah joined #salt
21:49 fredvd joined #salt
21:49 aphor Here's a peek under the DO skirt:
21:49 aphor https://www.digitalocean.com/company/careers#technical-operations-engineer
21:50 rcurrah hey does anyone know how to set the log level 'quiet' for the salt python api? Similar to the salt-call option -l LOG_LEVEL.
21:50 aphor Chef, Puppet, Ruby
21:52 murrdoc ruby
21:52 murrdoc explains it all
21:54 drawsmcgraw aphor: Not sure if I should thank you or....
21:54 aphor Ruby is where all the perl developers went.
21:54 drawsmcgraw Y'know, I try really hard to not talk smack about Ruby. But every time I encounter it.....
21:54 baweaver was perl developer, can confirm
21:54 baweaver it's ok
21:54 baweaver we talk smack about python
21:54 holler_ joined #salt
21:54 drawsmcgraw I've used some great tools written in Ruby
21:55 otter768 joined #salt
21:55 holler_ hello, I am using salt as provisioner with vagrant and I suddenly cant build my box.. it just stops provisioning without any indication of what is going wrong! http://dpaste.com/23FKMG1
21:55 drawsmcgraw baweaver: Are there drinking games involving how many times the 2.x vs 3.x point comes up?
21:55 aphor I've seen some great stuff in perl too, non-representative sampling.
21:55 murrdoc i like perl
21:55 baweaver drawsmcgraw: we had to stop
21:55 holler_ vagrantfile http://dpaste.com/09SWFWV
21:55 murrdoc when i write it
21:55 murrdoc not when i have to read it
21:55 baweaver after the 10th engineer dropped from Alcohol poisoning
21:55 holler_ anyone have idea of what is going on?
21:55 drawsmcgraw baweaver: :D
21:56 baweaver we have a bingo card mainly corresponding to PEP guidelines and 2/3 shenanigans
21:56 baweaver hopefully our 2 -> 3 is cleaner with Ruby
21:56 drawsmcgraw hah
21:56 murrdoc do u have developers who randomly go PEP someone elses code
21:57 drawsmcgraw holler_: Looks like it stopped after restarting the minion....?
21:57 murrdoc cos i do that
21:57 druonysus joined #salt
21:57 baweaver we just fail their Jenkins builds until they play nice.
21:57 drawsmcgraw holler_: all those "LazyLoaded nested.output" lines are.... interesting.
21:58 holler_ drawsmcgraw: why would this happen?
21:58 pm90_ joined #salt
21:59 murrdoc baweaver:  +1
21:59 baweaver ESPECIALLY in Ruby
21:59 murrdoc i pep it once in a while
21:59 murrdoc ignore their pylintrc
21:59 murrdoc FUHGET YO OPINIONS
21:59 murrdoc :)
22:00 baweaver There are no opinions
22:00 baweaver only Zuul
22:00 murrdoc zuul
22:00 murrdoc from the guys who gave u " oh it works in the new version "
22:01 baweaver what I do give Python is that the community has settled style debates.
22:01 drawsmcgraw holler_: Very good question. I'm afraid I don't know, off the top of my head
22:01 dthom91 joined #salt
22:01 baweaver Ruby, not so much.
22:01 manifold joined #salt
22:01 whytewolf can't we all just get along and pick on PHP
22:01 drawsmcgraw I remember someone mentioning in here, earlier today, about having problems with the salt-bootstrap script
22:01 baweaver I just come from Scheme / Lisp / Haskell so Ruby feels a lot friendlier.
22:01 holler_ well great, so now I am blocked from working by salt
22:01 holler_ ugh
22:01 drawsmcgraw holler_: I'd try changing your salt-boostrap incantation to use a specific version
22:02 holler_ ok
22:02 drawsmcgraw i.e. one or two versions back. Say, 2015.5.0 or so
22:02 holler_ any idea of a good one?
22:02 holler_ ok
22:02 drawsmcgraw I don't know off the top of my head how to tell it to do that. Hoping you can find it relatively easy
22:03 dthom91 joined #salt
22:05 rcurrah garrr nvm figured out i just had to modify the opts dict
22:13 ajw0100 joined #salt
22:18 sgargan joined #salt
22:24 bhosmer joined #salt
22:29 iggy murrdoc: I know, I started on that document a while back, never got it done
22:39 gtmanfred joined #salt
22:40 jor retry_dns: 0 # the docs say "Set to zero if the minion should shutdown and not retry.". But what's actually happening is that it will just try to connect to 127.0.0.1 on a failed dns...?
22:42 zmalone joined #salt
22:43 ajw0100 joined #salt
22:46 vexati0n joined #salt
22:46 vexati0n is there a way to use Salt to remotely change a minion's IP address?
22:48 womble That sounds like a recipe for... excitement.
22:49 gtmanfred depends, if you have more than one network, and you aren't changing the one that connects to the salt master, should be good :P
22:50 baweaver joined #salt
22:50 dwfreed joined #salt
22:52 InAnimaTe joined #salt
22:52 szhem joined #salt
22:53 64MADSQIT joined #salt
22:53 pravka joined #salt
22:54 adelcast does anyone knows when does the validate function runs on a beacon?
22:55 adelcast I have a beacon that is working great so far, I implemented the validate function, but doesn't seem to do much...even if the only content is "return False"  I still don't see any consequence (or the result of my log.info)
22:56 gtmanfred what version of salt are you on?
22:56 adelcast 2015.5
22:56 adelcast 2015.5.5 to be precise
22:57 murrdoc joined #salt
22:58 gtmanfred i don't believe the 2015.5 beacon used validate
22:58 adelcast ah, ok, that would explain it then
22:58 gtmanfred here is where it does it in 2015.8
22:58 gtmanfred https://github.com/saltstack/salt/blob/develop/salt/modules/beacons.py#L103
22:59 gtmanfred and develop i guess
22:59 anotherZero joined #salt
23:00 adelcast ah, excellent, exactly what I was looking for....since I am looking to upstream my change (network settings beacon for things like ip changes, etc) I am going to try it on master or 2015.8
23:00 adelcast thanks a bunch
23:02 druonysus joined #salt
23:05 cberndt joined #salt
23:10 kermit joined #salt
23:11 X67r_ joined #salt
23:12 murrdoc joined #salt
23:18 X67r joined #salt
23:18 baweaver joined #salt
23:21 dthom91 joined #salt
23:23 dthom911 joined #salt
23:24 zemm joined #salt
23:34 sgargan joined #salt
23:43 joe_n joined #salt
23:45 alemeno22 joined #salt
23:48 joe_n joined #salt
23:55 otter768 joined #salt
23:57 aristedes joined #salt

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