Perl 6 - the future is here, just unevenly distributed

IRC log for #salt, 2014-04-29

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

All times shown according to UTC.

Time Nick Message
00:00 zain has anyone attempted to attach a larger EBS root volume to an instance with salt-cloud? the instances that I spin I'm using "block_device_mappings" to set "Ebs.VolumeSize" to 500gb for /dev/sda1, but upon booting, my instances are un-ssh-able (Connection refused)
00:03 anuvrat joined #salt
00:05 jimklo_ joined #salt
00:06 ajolo joined #salt
00:11 fridiculous zain, i'm getting hte same issue
00:12 patrek from wich version does gitfs_remotes with mountpoint work?
00:13 jeff joined #salt
00:13 jeff joined #salt
00:14 mgw has anyone had issues with http_proxy env var on Ubuntu 14.04?
00:14 mgw salt-minion uses the exec su -c trick to pick it up, but it seems to not work on Trusty
00:16 rome joined #salt
00:25 monokrome joined #salt
00:27 scalability-junk joined #salt
00:29 doanerock joined #salt
00:31 ajw0100 joined #salt
00:31 __number5__ mgw: python2 or python3
00:31 rome joined #salt
00:33 mgw 2
00:33 mgw __number5__: I think it's some change in how su is handled
00:33 mgw I changed it to "su - -c …" and it works
00:33 mgw to activate a login shell
00:34 mgw __number5__: wait… does salt-minion work with python3?
00:34 mgw at any rate, the default version of python on the system is 2.7.6
00:35 __number5__ it should work with both 3 and 2.7
00:38 schimmy joined #salt
00:39 happytux_ joined #salt
00:43 schimmy joined #salt
00:48 swa_work joined #salt
00:50 DaveQB joined #salt
00:53 andrej How do I extract a string from a list in jinja?
00:54 andrej I have a grain that, when the template gets rendered, comes out as ['123.123.123.123'].  I just want 123.123.123.123 ...
00:54 zain joined #salt
00:55 Eugene .items()
00:55 andrej Thanks Eugene ... and if I only need 1 element?
00:56 andrej I.e., the list only has 1 element?
00:58 rome joined #salt
01:00 andrej Hmmm...
01:00 __number5__ .items()[0]
01:00 andrej Rendering SLS "base:spl_ufw.add_minion" failed: Jinja variable 'list object' has no attribute 'items'; line 7
01:02 ajw0100 joined #salt
01:03 __number5__ andrej: actually you can use first(['123.1.1.1']), http://jinja.pocoo.org/docs/templates/#first
01:04 andrej Thanks __number5__ - I'll try that
01:04 __number5__ np
01:08 leslie joined #salt
01:08 leslie left #salt
01:12 elfixit1 joined #salt
01:21 andrej Hummmm ... I don't know how or why (no config changes made), but my master seems broken :(
01:22 andrej When I start if from the command-line interactively with -l trace it just stis there on [DEBUG   ] Configuration file path: /etc/salt/master
01:22 andrej and that's it
01:22 andrej minions don't talk to it
01:23 andrej is spawns no network sockets
01:23 andrej nothing
01:24 redondos joined #salt
01:29 xzarth joined #salt
01:30 anuvrat joined #salt
01:34 andrej OK, I'm stumped ... it's not writing anything to the log, either
01:34 andrej the disk is not full
01:34 andrej how do I find out what it's doing?
01:38 ajw0100 joined #salt
01:43 rollietikes joined #salt
01:46 ckao joined #salt
01:50 war2 joined #salt
01:51 andrej Ugh ... too many inodes in use
01:52 patrek andrej: you can stop it and restart it with salt-master -l debug (-d if you want to daemonized it).
01:52 andrej salt's cache ate them
01:52 andrej patrek - I know - that's what I did
01:55 ajolo_ joined #salt
01:58 ajolo__ joined #salt
01:59 meteorfo_ joined #salt
02:01 ajw0100 joined #salt
02:02 meteorfo_ joined #salt
02:06 tyler-baker joined #salt
02:07 kermit joined #salt
02:11 Networkn3rd joined #salt
02:13 mway joined #salt
02:17 mway just curious, would anyone else see any value in adding a 'base' dict with implicit merge to salt.modules.grains.filter_by()?  I'm finding myself wanting to share some values between several families without explicitly declaring them every time, and since the convention is to use the merge kwarg for pillar data, there isn't a good way to handle this without repeating logic all over the place in formula maps (for example)
02:18 mway so, in addition to 'default', you'd have 'base', which would have the filtered family/default merged into it (eg take precedence) automatically.
02:18 mway I may just be in edge case/bad use land, so feel free to point that out as well.
02:22 meteorfo_ joined #salt
02:24 Nexus_x1 joined #salt
02:26 war2 joined #salt
02:29 whiteinge mway: +1 please open an issue
02:29 homelinen joined #salt
02:30 whiteinge it's annoying to repeat common values
02:30 rome joined #salt
02:33 faldridge joined #salt
02:35 alunduil joined #salt
02:44 rome joined #salt
02:47 sroegner joined #salt
02:48 rome joined #salt
02:54 mgw joined #salt
02:54 andrej And now that I cleaned up the inode issue ...
02:54 andrej back to my jinja question :)
02:55 TyrfingMjolnir joined #salt
02:57 micko joined #salt
03:01 mway what was the question?
03:02 mway andrej: sorry, meant to mention.  what was the question?
03:04 catpigger joined #salt
03:05 gq45uaethdj26jw6 joined #salt
03:14 andrej Ooops
03:15 andrej mway : I have trouble understanding jinja's way of dealing with variables
03:15 andrej I made two mistakes
03:16 andrej I futzed w/ a template file, and forgot to make a backup.
03:16 andrej Now I can't get it to work again
03:16 possibilities joined #salt
03:16 andrej whiteinge helped me initially w/ tieing a reactor & state sls together
03:17 andrej but the evaluation of pillar data is now broken
03:17 andrej and instead of adding a new minions IP to its iptables rule-set my server adds its own IP
03:18 jalaziz joined #salt
03:18 andrej I am trying to debug the issue, and can't understand why "{% set new_minion = salt['pillar.get']('new_minion') %}" is valid, but "    - comment: {% salt['mine.get']( new_minion  , 'grains.items') %}" gives me a syntax error that the tag salt is unknown
03:19 mway you need to use {{ }} syntax if you're going to output values
03:20 andrej Around the whole expression?
03:20 mway also, 'new_minion' is a dict key, so it needs to be quoted in the call to mine.get(), and if you're going to default to something, make sure it's the proper type as well (e.g., if you wanted the grains.items dict, don't quote it, but if you wanted the literal string 'grains.items', then it's fine as-is)
03:20 andrej so instead of {% I use {{?
03:20 mway yep
03:21 andrej ta - I'll try that
03:21 mway np
03:27 andrej Hmmm ... no error, but not the desired result :(
03:27 andrej http://pastebin.com/U0VN4da2
03:27 andrej http://pastebin.com/tZnPzQXF
03:29 Ansem joined #salt
03:30 mway try removing the quotes around new_minion in {{ salt['mine.get']('new_minion', 'grains.items') }}
03:30 andrej ok - ta
03:32 andrej Right ... that now prints a dict of dicts :) ... now I need to access the correct element ;}
03:33 mway you may be able to use the same dot notation syntax as (for example) salt['pillar.get']('foo.bar.baz') with salt['mine.get'](), I'm not 100% sure though, give it a shot - if not, you can always set the result of mine.get() to a variable and use that dict as needed
03:36 war2 joined #salt
03:38 travisfischer joined #salt
03:43 andrej Assuming I have {'hostname': { 'grain1' : '1inside','grain2':'2inside', 'grain3':'3inside'}} ... how do I extract 3inside?
03:43 mway hostname.grain3 would be the dot notation
03:44 andrej Cool ... looks so easy, all of a sudden
03:44 andrej will try that
03:45 mway so if new_minion contains hostname, something like salt['mine.get']('{0}.grain3'.format(new_minion), 'grains.items') - if that works, awesome - if not, just set salt['mine.get'](new_minion, 'grains.items') to a variable and just access var['grain3'], etc
03:45 ajolo joined #salt
03:47 Luke joined #salt
03:48 andrej The first version gives no error, but no result, either.
03:49 mway yeah, that might be just because dot notation might not work with mine.get(), haven't used that myself, so either double check the expected dict nesting and make sure the keys match up, or give the second a shot
03:51 andrej Hmmm ... I think the dict nesting is the problem.  I need to use the minion name to get to the actual values
03:52 mgw joined #salt
03:52 andrej It tells me that dict has no attribute main_ip
03:53 mway can you pastebin the mine data?
03:54 malinoff joined #salt
03:54 andrej can do ... but I just made progress :) .... - comment: {{ var[new_minion]['main_ip'] }}
03:54 andrej this outputs the IP as a list member
03:54 andrej Now I just need to make that a string, and I'm sorted ;}
03:55 mway as a list member - meaning it gives you ['x.x.x.x'] instead of 'x.x.x.x'?
03:55 andrej yah
03:56 andrej I really need x.x.x.x ... w/o any single quotes, otherwise iptables barfs
03:56 mway depending on how you expect that data to vary between minions (if at all), you could just grab the first value: var[new_minion]['main_ip'][0]
03:56 andrej cool
03:57 andrej And no, I don't expect any variation ...
03:57 andrej main_ip is an artifical grain that I stick into the mine via script. Each client always only ever has ONE main_ip
03:57 andrej YESSSS!
03:57 redondos joined #salt
03:57 andrej Thank you so much - you saved my sanity :}
03:58 mway awesome!  anytime, glad we got it sorted out
03:59 andrej I think I will need lots more of examples before I actually undertand what you just did :}
04:00 doanerock joined #salt
04:01 mway at that level it's pretty much just basic python inside a jinja context, but with salt in general, once it starts to click, you'll be able to put on your wizard hat in no time
04:03 jimklo joined #salt
04:04 gamedna joined #salt
04:04 nmistry joined #salt
04:05 Gordonz joined #salt
04:10 andrej Heh
04:10 andrej I can only hope :}
04:12 andrej Something completely unrelated: are there any recommendations for the FS set-up of where /var/cache/salt resides?
04:12 Gordonz joined #salt
04:12 andrej I ran out of inodes on that today
04:12 andrej which is not a good state
04:17 mikemar10 joined #salt
04:17 pdayton joined #salt
04:17 Corey andrej: That's a neat trick.
04:17 Corey andrej: How many nodes?
04:19 schimmy joined #salt
04:20 ajw0100 joined #salt
04:21 Networkn3rd joined #salt
04:23 Ryan_Lane joined #salt
04:25 bhosmer joined #salt
04:27 smcquay joined #salt
04:27 redondos joined #salt
04:28 war2 joined #salt
04:29 pdayton joined #salt
04:29 war2 joined #salt
04:30 l0x3py joined #salt
04:30 druonysuse joined #salt
04:30 druonysuse joined #salt
04:37 redondos joined #salt
04:37 yusuket joined #salt
04:37 redondos joined #salt
04:47 yusuket_ joined #salt
04:48 sroegner joined #salt
05:01 xl1 joined #salt
05:08 ggoZ joined #salt
05:10 jimklo joined #salt
05:11 jimklo joined #salt
05:14 anuvrat joined #salt
05:17 gw joined #salt
05:17 gw joined #salt
05:23 ipalreadytaken joined #salt
05:25 garthk joined #salt
05:32 dimeshake jkjkj
05:33 CeBe joined #salt
05:35 war3 joined #salt
05:42 garthk joined #salt
05:45 Katafalkas joined #salt
05:46 Katafalkas Hey, How do you use salt-cloud select_query ? cant figure out
05:47 Ryan_Lane1 joined #salt
05:53 war2 joined #salt
05:55 smcquay joined #salt
05:56 picker joined #salt
05:59 war3 joined #salt
06:09 garthk joined #salt
06:23 ravibhure joined #salt
06:27 schimmy joined #salt
06:31 schimmy1 joined #salt
06:33 TyrfingMjolnir joined #salt
06:43 mikkn I'm getting this error when running a highstate on the saltmaster itself: http://hastebin.com/arucosabir.txt
06:46 mikkn I don't have any branches, tags or anything. It's a pretty new repository with only 3 commits in it...
06:49 sroegner joined #salt
06:51 mikkn Actually it may be another repository, but I'm still confused I'll admit
06:55 Kenzor joined #salt
06:59 ml_1 joined #salt
07:03 harobed_ joined #salt
07:06 slav0nic joined #salt
07:06 slav0nic joined #salt
07:11 Malatop joined #salt
07:11 elsmorian joined #salt
07:12 Malatop hello
07:13 Malatop can i use glob with file.copy?
07:13 garthk joined #salt
07:14 Malatop it seems that i cannot copy a directory like typically i use cp -r (nix recursive) for directory that has files in it
07:14 nmistry_ joined #salt
07:15 Malatop i got this error: Failed to copy "/path/of/src/" to "/path/of/dst/"
07:17 elsmorian1 joined #salt
07:27 mikkn Malatop: Does the destination exist? If so you may want to use force: True
07:27 mikkn Though, I have not used file.copy, to be honest.
07:28 TyrfingMjolnir joined #salt
07:28 alunduil joined #salt
07:31 ipalreadytaken joined #salt
07:33 mekstrem joined #salt
07:37 Malatop mikkn: i dont want to overwrite. i just want to copy the files once
07:42 ndrei joined #salt
07:54 sverrest joined #salt
07:56 ggoZ joined #salt
07:57 giannello joined #salt
08:00 nadley joined #salt
08:07 alunduil joined #salt
08:09 pdayton joined #salt
08:09 marnom joined #salt
08:11 TyrfingMjolnir joined #salt
08:15 scarcry joined #salt
08:18 pdayton joined #salt
08:20 garthk joined #salt
08:23 pdayton1 joined #salt
08:26 topochan joined #salt
08:32 crooton joined #salt
08:37 giantlock joined #salt
08:40 jayfk joined #salt
08:40 harobed__ joined #salt
08:47 jcsp joined #salt
08:50 sroegner joined #salt
08:52 viq Malatop: how about file.recurse ?
08:59 istram joined #salt
09:10 istram hi everyone! I'm trying to find out if there is any possibility how to get reactor to call equivalent of salt-call? Docu says that reactor now uses only runners and LocalClient, however I'd love to make a master execute action upon event without having to make him his own minion.
09:10 elsmorian1 left #salt
09:11 che-arne joined #salt
09:20 CeBe joined #salt
09:24 Nexpro1 joined #salt
09:28 gildegoma joined #salt
09:33 istram joined #salt
09:34 bhosmer joined #salt
09:49 ndrei joined #salt
09:50 TyrfingMjolnir joined #salt
10:01 gtmtech joined #salt
10:01 gtmtech Hi all
10:02 nmistry joined #salt
10:02 gtmtech I'd like to invite anyone to check out salthiera > https://github.com/gtmtechltd/salthiera
10:02 gtmtech It allows you to have encrypted data as part of your pillar information, and even store data items as entire files (e.g. for binary DER files for example)
10:02 malinoff Ruby, really?
10:02 gtmtech Hope its of use
10:03 gtmtech The readme states it'll be ported to python soon
10:03 gtmtech but external pillars it kind of doesn't matter too much as they're called as external entities anyway
10:04 gtmtech Aaaaaaanyway, it fills in some gaps that pillar doesn't offer
10:04 gtmtech ~500 downloads so far which is weird as I haven't told anyone about it, so I'm guessing people are searching for "salt" and "hiera" anyway
10:04 gtmtech Feel free to post any issues etc.
10:04 viq yeah, eg cert distribution
10:17 Malatop joined #salt
10:18 Malatop viq: yes, file.recurse works. but that copying file from master to minion. how about copying files from another folder in a same server?
10:20 ndrei joined #salt
10:22 garthk joined #salt
10:23 pdayton joined #salt
10:31 viq Oh. cmd.run rsync ?
10:36 topochan joined #salt
10:37 garthk joined #salt
10:38 topochan joined #salt
10:39 Malatop viq: how do i translate that into sls file?
10:44 viq Malatop: http://docs.saltstack.com/en/latest/ref/states/all/salt.states.cmd.html
10:46 Malatop viq: thanks!
10:50 sroegner joined #salt
10:51 ccase joined #salt
11:11 Katafalkas joined #salt
11:20 elfixit1 joined #salt
11:29 rmnuvg joined #salt
11:35 garthk joined #salt
11:41 jrdx joined #salt
11:43 munhitsu_ salt practices question - is there a good pattern to ship you own module/state same way as formula?
11:52 sgviking joined #salt
11:54 ndrei joined #salt
11:59 topochan joined #salt
12:00 faldridge joined #salt
12:02 garthk joined #salt
12:08 bastion1704 joined #salt
12:14 pdayton joined #salt
12:21 Kenzor joined #salt
12:28 toastedpenguin joined #salt
12:29 war2 joined #salt
12:29 scott_w joined #salt
12:32 rofl____ any salt-ssh gurus here?
12:33 rofl____ doesnt seem like salt-ssh likes to install pkg.installed via sources and pointing to a salt:// reference
12:34 gadams999 joined #salt
12:36 jaimed joined #salt
12:37 djaime joined #salt
12:38 jslatts joined #salt
12:38 mway joined #salt
12:39 rome joined #salt
12:40 smurfy_ joined #salt
12:44 mpanetta joined #salt
12:51 sroegner joined #salt
12:54 rome joined #salt
12:54 Networkn3rd joined #salt
12:55 ndrei joined #salt
12:56 ipmb joined #salt
13:03 bhosmer joined #salt
13:05 seme joined #salt
13:05 rome joined #salt
13:07 rygyonthefly joined #salt
13:09 rome joined #salt
13:16 che-arne joined #salt
13:18 racooper joined #salt
13:20 doanerock joined #salt
13:22 Ryan_Lane joined #salt
13:22 vejdmn joined #salt
13:25 gq45uaethdj26jw6 joined #salt
13:25 cheus joined #salt
13:27 bastion1704 joined #salt
13:27 GradysGhost joined #salt
13:29 it_dude joined #salt
13:29 mapu joined #salt
13:31 mapu joined #salt
13:32 faldridge joined #salt
13:32 rome joined #salt
13:33 topochan joined #salt
13:33 Katafalkas joined #salt
13:35 acabrera joined #salt
13:38 dcolish joined #salt
13:42 workingcats joined #salt
13:42 elfixit1 joined #salt
13:45 fedgoat joined #salt
13:45 nthcode joined #salt
13:47 quickdry21 joined #salt
13:50 Katafalk_ joined #salt
13:53 rome joined #salt
13:54 it_dude joined #salt
13:56 sandbender1512 joined #salt
13:56 happytux joined #salt
14:03 jordan joined #salt
14:04 ekristen joined #salt
14:05 workingcats_ joined #salt
14:05 mapu joined #salt
14:06 happytux joined #salt
14:07 workingcats_ joined #salt
14:08 rome_ joined #salt
14:09 tyler-baker joined #salt
14:10 GradysGhost joined #salt
14:13 Kenzor joined #salt
14:13 sroegner joined #salt
14:13 Voziv how would I check if a pillar key exists?
14:13 gq45uaethdj26jw6 joined #salt
14:14 viq Voziv: https://github.com/jesusaurus/hpcs-salt-state/blob/master/apt/sample.pillar https://raw.githubusercontent.com/jesusaurus/hpcs-salt-state/master/apt/repo/distro
14:14 gadams999 joined #salt
14:15 mgw joined #salt
14:16 Voziv viq: I see, thanks
14:16 ajprog_laptop joined #salt
14:17 viq Voziv: also I think jinja can check if something is defined, or empty, or stuff like that
14:18 Voziv Yeah that's more along the lines of what I was looking for
14:19 mrj joined #salt
14:20 Nazzy joined #salt
14:20 Nazzy joined #salt
14:24 Nazca__ joined #salt
14:24 jeremyBass1 joined #salt
14:26 GradysGhost joined #salt
14:27 munhitsu_ Voziv: {% if 'bla' in mydictionary %}.... {% endif %}
14:27 ml_1 joined #salt
14:29 thedodd joined #salt
14:30 bhosmer joined #salt
14:31 diegows joined #salt
14:31 Bandikoto joined #salt
14:31 bhosmer joined #salt
14:38 yano joined #salt
14:40 Katafalkas joined #salt
14:41 N-Mi is there any real world example showing how to access data in minion's pillar using salt mine ?
14:42 Voziv What's the difference between {%- and {% ?
14:44 viq Voziv: {%- will strip blank lines
14:45 Voziv Is that needed for an sls file?
14:45 viq Can't say
14:45 ajolo joined #salt
14:46 ajprog_laptop Voziv: I don't strip out blank lines in my sls file
14:48 ajprog_laptop N-Mi: I have done it, because of the sensitive settings it contains I don't want to publish it. But I can answer questions and/or help with what you have
14:48 Voziv Last question hopefully, is there a way to have multiple if conditions? {% 'blah' in mydictionary AND 'blah2' in mydictionary['blah'] %} ?
14:49 babilen Voziv: Yes, just like that, but with "and"
14:49 Voziv cool, thanks
14:49 babilen Voziv: http://jinja.pocoo.org/docs/templates/#logic
14:51 conan_the_destro joined #salt
14:53 elfixit1 joined #salt
14:53 N-Mi ajprog_laptop: given an host with this pillar config : http://dpaste.com/1Y7M64D/
14:54 N-Mi I can access minions interfaces like this from my supervision server: "salt "sup1*" mine.get "minionA" 'network.interfaces'"
14:55 N-Mi how can I do a mine.get to fetch the "monitored" section in pillar data ?
14:55 upgrayedd_ left #salt
14:55 younqcass joined #salt
14:55 mgw joined #salt
14:56 eriko joined #salt
15:01 ajprog_laptop sorry I misread your original question. but I wouldn't use mine to get pillar data I would use "salt '*' pillar.item(monitored)"
15:03 kaptk2 joined #salt
15:10 ajolo_ joined #salt
15:10 UtahDave joined #salt
15:10 N-Mi ajprog_laptop: but as far as I can see, a minion cannot access to pillar data from another minion, right ?
15:11 N-Mi I thought I need to use salt mine to make info available to other minions
15:12 teskew joined #salt
15:13 N-Mi the end goal is to define in all minion's configs how they are monitored/logged/backed-up
15:14 ajprog_laptop N-Mi: yes to my knowledge you can't access another minions pillar data with either pillar.get or mine.get
15:15 N-Mi here is an example of what I'd like to do, but with data defined in pillar: (slide 32) http://fr.slideshare.net/SaltStack/real-time-cloud-management-with-salt-stack
15:17 N-Mi I see how to access "functions" (network.interfaces), but not "data"
15:17 N-Mi or should I define a function that return pillar['monitored'] ? if yes, how ?
15:18 N-Mi (sorry, slide 34)
15:18 Rory left #salt
15:19 ajprog_laptop from the slide you want to replace
15:19 ajprog_laptop 'web-*', correct?
15:21 wendall911 joined #salt
15:23 Ryan_Lane joined #salt
15:25 ajprog_laptop N-Mi: I think I would do something like http://dpaste.com/151ZBFN/
15:27 ajprog_laptop I haven't tested that, I don't know if you can use {{ }} in a {% %} block there might be another way to call the variable inside a {% %} block
15:28 Networkn3rd joined #salt
15:28 ajprog_laptop N-Mi: btw  Thank you. I was looking some mine.get info for setting up my load balancer
15:29 N-Mi ajprog_laptop: you're welcom :)
15:29 N-Mi pillar['monitored'] is defined for the monitored minion. the monitoring server can't access to this
15:31 Gareth joined #salt
15:32 rmnuvg joined #salt
15:35 jalbretsen joined #salt
15:39 hhenkel Hi all, anyone ever tried to get salt data into elasticsearch?
15:39 tligda joined #salt
15:40 deares joined #salt
15:41 jcockhren hhenkel: o/
15:41 N-Mi ajprog_laptop: hmmm... I've got something : http://dpaste.com/1NEET2R/
15:42 ajprog_laptop ok
15:42 jcockhren hhenkel: https://github.com/saltstack/salt/issues/10678
15:43 chrisjones joined #salt
15:47 vbabiy joined #salt
15:48 seraph joined #salt
15:50 danielbachhuber joined #salt
15:50 topochan joined #salt
15:50 ndrei joined #salt
15:51 seraph Hi, I have a strange problem with salt. When I target one minion I receive 1 response however when I target all I receive multiple responses from the same minion, usually with complaints about the PID and data compilation. When I run "salt '*' test.version" I receive several responses per server, with different versions each, either 2014.1.3 or 2014.1.1. Any ideas?
15:51 timoguin seraph: check the running processes on that minion
15:52 timoguin could be multiple minion daemons running
15:53 seraph ps aux | grep salt-minion is returning many salt instances. Am I OK to kill them all?
15:54 hhenkel jcockhren: That's good to know...only problem with returners that I see is, that I will only get data from machines actually reachable.
15:55 timoguin seraph: if you don't have running jobs then i don't see why not
15:55 jcockhren hhenkel: yeah. that's b/c the returners run on the minions
15:56 hhenkel jcockhren: Also it would be interesting to have grain / pillar info in elasticsearch I guess. That would make it possible to have something like a managment dashboard, showing how many machines in which env and so on.
15:56 jcockhren hhenkel: that wouldn't be too hard actually. I wouldn't mind doing and/or helping in that effort
15:57 jcockhren ext_pillar: elasticsearch
15:57 hhenkel jcockhren: I was looking into a small script pulling info via a webservice into es.
15:58 possibilities joined #salt
15:59 hhenkel jcockhren: That would make it possible to have all job info within es and also to grab minion info from time to time.
15:59 wendall911 joined #salt
15:59 jcockhren what do you mean by 'job info'
15:59 jcockhren ?
16:00 hhenkel Results for the jobs that get exectuted on the minions.
16:00 jcockhren there's also using elasticsearch as a global returner (job_cache: elasticsearch)
16:00 hhenkel jcockhren: I got to catch a train.
16:00 hhenkel I'm back online in about 50 min.
16:00 jcockhren hhenkel: word. I'll be around
16:01 seraph Thanks very much for your help timoguin. Take care
16:04 KyleG joined #salt
16:04 KyleG joined #salt
16:05 meteorfo_ joined #salt
16:06 joehillen joined #salt
16:08 ajolo joined #salt
16:10 it_dude joined #salt
16:16 mateoconfeugo joined #salt
16:32 n8n joined #salt
16:33 smcquay joined #salt
16:37 Katafalkas joined #salt
16:39 schimmy1 joined #salt
16:44 fragamus joined #salt
16:44 bhosmer joined #salt
16:49 hhenkel jcockhren: So, I'm back.
16:50 hhenkel jcockhren: To give you an idea what I'm thinking of...have you ever heard of "the foreman", it is kind of an puppet dashboard (with much more options).
16:51 hhenkel jcockhren: http://theforeman.org/
16:52 hhenkel It would be nice to have an overview how things are currently are in the environment. There are discussions about integrating salt to some degree into the foreman, the allready working on chef.
16:59 mateoconfeugo joined #salt
17:06 Ryan_Lane joined #salt
17:06 ml_1 joined #salt
17:15 possibilities joined #salt
17:16 CeBe joined #salt
17:16 prakashsurya joined #salt
17:18 prakashsurya hi, i'm trying to use the pip state to install a python package, but pip needs the http_proxy and https_proxy environmet variables set
17:18 prakashsurya what's the best way to set these two environment variables?
17:19 prakashsurya it looks like the cmd.run state has the 'env' option, but that doesn't seem to work with the pip state
17:19 prakashsurya any suggestions?
17:19 harobed joined #salt
17:20 gq45uaethdj26jw6 anyone use gogrid before? using salt cloud to spin up gogrid images works fine in sequence, but throws an "ip in use" exception when i try and launch multiples in a map using the -P flag. anyone else encounter this?
17:25 UtahDave gq45uaethdj26jw6: Could you open an issue for that on our github issue tracker?  Please include as much detail as possible.
17:26 vbabiy joined #salt
17:26 harobed_ joined #salt
17:26 smcquay_ joined #salt
17:26 gq45uaethdj26jw6 sure. i suspect that the ip's are selected before the api call for creating the minion is made, so it presumes the ip address is free, and then the exception is not properly caught and handled, but that's just a guess.
17:27 scalability-junk joined #salt
17:28 smcquay joined #salt
17:28 Gareth morning morning
17:32 arthabaska joined #salt
17:34 ndrei joined #salt
17:35 mpanetta_ joined #salt
17:36 gq45uaethdj26jw6 UtahDave: the exception I get is the same as the one linked here: https://github.com/saltstack/salt/issues/12212 although our issues are technically different, they might be related. should i make a different issue? as i said, they are only similar (different providers and different code regions)
17:36 ixokai joined #salt
17:41 mgw joined #salt
17:43 jeddi joined #salt
17:43 druonysuse joined #salt
17:43 druonysuse joined #salt
17:46 ipalreadytaken joined #salt
17:48 vbabiy joined #salt
17:49 druonysus joined #salt
17:49 druonysus joined #salt
17:51 ajolo_ joined #salt
17:53 jcockhren hhenkel: does foreman rely on the info being in elasticserch. Or is that something different
17:53 jcockhren hhenkel: there's a few on going efforts to provide a UI to the happenings in salt
17:55 ajw0100 joined #salt
17:58 hhenkel jcockhren: The foreman does not rely on es. The storing stuff in a database. My thought it would be quite easy to have a dashboard with kibana, once the data is in a "correct" way in es.
17:59 rojem joined #salt
17:59 jcockhren hhenkel: yeah. I use kibana for viewing this things
17:59 hhenkel jcockhren: I played around with halite and that is really nice. But the issue I'm currently facing is more to have some kind of easy overview - for example what percentage of machines are running which version of kernel etc.
17:59 n8n joined #salt
18:00 jcockhren yeah. sounds like an aggregate, which ES good at
18:00 jcockhren ;)
18:01 hhenkel jcockhren: https://github.com/saltstack/salt/issues/9844
18:01 hhenkel That something I found when I was on the train earlier on
18:01 BrendanGilmore joined #salt
18:02 jcockhren yeah. the returners executing on the minions are both good and bad
18:02 bhosmer joined #salt
18:03 jcockhren if work is done on the minion, then it 'makes sense' for the minion to report about itself
18:03 conan_the_destro joined #salt
18:03 jcockhren however, that shifts the dependecies of the reporting protocals to the minions (e.g. the dependent python modules)
18:04 jcockhren as a result, the work done by the minion no the master that is suppose to be 'busy' orchastrating
18:04 jcockhren I have mixed feelings
18:05 hhenkel Yes, the downsides are mentioned there...it would be nice to have the option to get / forward from the master.
18:05 hhenkel But I'm currently not aware of a good way to do that, any hints on that?
18:06 hhenkel jcockhren: This also looks interesting https://github.com/threatgrid/kiries
18:07 mpanetta joined #salt
18:07 jcockhren hmmm.
18:07 jcockhren regardless of the returner sat, the jib ID have to be returned to the master
18:07 jcockhren s/jib/job
18:09 hhenkel jcockhren: What I played around was, something like ask via the api for the job list, then ask for all results of the jobs
18:09 jcockhren that's something that'll have to be polled eh?
18:10 hhenkel jcockhren: Remember the last jid and sleep for an amount of time. Then start again from the jid allready read.
18:10 hhenkel jcockhren: Yes, as I could not find a better way to do that. I'm not aware of the salt-api beeing able to use websockets or something like that.
18:10 repl1cant joined #salt
18:11 jcockhren https://github.com/saltstack/salt/blob/ff30f81933fc478f14dddf476ed5cf8cd49fdd2f/salt/returners/local_cache.py
18:11 jcockhren we could add a 'forward_to_external' setting or something to get the master to push to the results somewhere
18:13 hhenkel jcockhren: local_cache returner is the one used for the master then?
18:13 ipalreadytaken joined #salt
18:13 GradysGhost joined #salt
18:17 jcockhren https://github.com/saltstack/salt/blob/d93f9a725abda9aeccd353c95ce7aee15e4eb680/salt/master.py#L1264
18:17 mpanetta joined #salt
18:17 smcquay joined #salt
18:18 jcockhren hhenkel: above is the line that tells the master to stop caching the job locally in their a global returner defined with 'ext_job_cache'
18:18 mpanetta_ joined #salt
18:18 bastion1704 joined #salt
18:18 happytux joined #salt
18:19 jaimed joined #salt
18:19 jcockhren I mispoke about the local_cache
18:20 jcockhren master_job_cache is the actual master cache
18:20 jcockhren undocumented though
18:20 jcockhren but indeed and option (boolean)
18:20 _jslatts joined #salt
18:22 philipsd6 joined #salt
18:22 jcockhren sorry. not giving solutions, just pointing out my findings as a dive
18:23 jeffasinger joined #salt
18:23 hhenkel jcockhren: an interestting name is also "ext_job_cache"
18:23 jcockhren yeah. that's sets the default returner for all the minions
18:23 jcockhren at the same time, disables caching on the master
18:26 jcockhren I think, the approach would be the allow for additional job caching mechanisms when it comes to the master_job_cache
18:27 jcockhren not sure how everyone feels about that.
18:27 jcockhren of course, this shifts the reporting load to the master.
18:27 KyleG joined #salt
18:27 KyleG joined #salt
18:28 kickerdog joined #salt
18:28 jcockhren Maybe another approach can be defined: have the master in charge to auto prepping the minions to use a certain returner. (:shrug:)
18:29 kickerdog Can we change the http://salt.readthedocs.org/ theme back to the readthedocs theme, I cant find anyting anymore :(
18:29 jcockhren The pain is that I never remember which minions have which returners. The master should be smart enough to allow for the application of certain states based on a minions config settins
18:29 yusuket joined #salt
18:30 jcockhren almost sounds like a reactor that checks for minoin restart/start events.
18:31 hhenkel jcockhren: Looking through the code I found something called the master minion that got (serveral?) returners?
18:32 hhenkel Maybe it would be an option to just add another returner there, but haven't looked into the details, just guessing.
18:36 jcockhren hhenkel: you mean multi-returners
18:37 jcockhren I saw that just now too. I'm not entirely sure how they work, and I guess it's for a future release (helium?)
18:37 hhenkel jcockhren: look like the returners are stored in a dict so it should be possible to add another. But as I said, just interpreting what I saw. Have to dive deeper.
18:40 jcockhren hhenkel, you mean? https://github.com/saltstack/salt/blob/develop/salt/returners/multi_returner.py#L54-L60
18:42 jcockhren here's a question? What about http://docs.saltstack.com/en/latest/ref/configuration/logging/handlers/salt.log.handlers.logstash_mod.html#module-salt.log.handlers.logstash_mod
18:42 jcockhren I've used my returner as well as this
18:43 bhosmer joined #salt
18:44 jcockhren loggers handled/ran on the master, I think
18:44 rjhintz joined #salt
18:45 hhenkel jcockhren: https://github.com/saltstack/salt/blob/d93f9a725abda9aeccd353c95ce7aee15e4eb680/salt/master.py#L1269
18:46 hhenkel jcockhren: Looking at the logstash_mod now
18:49 hhenkel jcockhren: That would be a nice way to do stuff, only question is, what data is forwarded? Normal master log info or job logs?
18:49 jcockhren both
18:50 harobed_ joined #salt
18:51 harobed_ joined #salt
18:51 jcockhren hmmmm
18:52 jcockhren hhenkel: maybe a reactor that calls a runner for a mine
18:52 harobed_ joined #salt
18:52 jcockhren then send the mined data, somewhere
18:52 perfectsine joined #salt
18:53 saurabhs joined #salt
18:54 war2 joined #salt
18:54 jcockhren (via a schedule)
18:56 hhenkel jcockhren: hmm, not sure what the benefit of calline a mine would be.
18:56 hhenkel jcockhren: But doing some stuff with a schedule, forward it with logstash to riemann and put it into es sound interesting.
18:57 hhenkel jcockhren: Could be that I don't understand the salt mine stuff right, but I thougt this is for the nodes to have information about each other, right?
18:57 meteorf__ joined #salt
18:59 war3 joined #salt
18:59 jcockhren hhenkel: I guess it would be available to other minions (not just the master) by default. Forgot about that small little detail
19:00 jcockhren https://salt.readthedocs.org/en/latest/topics/mine/index.html
19:01 rojem joined #salt
19:02 meteorfo_ joined #salt
19:03 meteorfo_ joined #salt
19:06 chrismoos joined #salt
19:06 hhenkel jcockhren: I'll check that in greater detail tomorrow when I'm back at work.
19:07 alunduil joined #salt
19:07 Networkn3rd joined #salt
19:07 hhenkel jcockhren: Thanks so far, I'll let you know once figured out more
19:08 jcockhren hhenkel: word
19:19 jnials joined #salt
19:23 strgcloud joined #salt
19:24 strgcloud qq. anyone automated cisco ios devices using saltstack?
19:25 strgcloud can't find any example code. I see the junos module, but nothing for ios.
19:25 strgcloud can automate via ssh i guess, using pexpect, but haven't seen any examples with that either.
19:29 M0WGLI joined #salt
19:30 Eugene Should really be using the backend API, not ssh directly.
19:30 Eugene Unfortunately for IOS its all XML, I believe
19:31 M0WGLI left #salt
19:33 strgcloud Eugene, sounds good yeah. is there a pexpect module or something I could use to do via ssh tho?
19:33 Eugene No clue.
19:35 rgbkrk joined #salt
19:40 rojem joined #salt
19:42 Mr_N Hm.  Getting strange behavior via a require statement that's in both a normal state and a python rendered state
19:42 mateoconfeugo joined #salt
19:42 Mr_N In the normal state it handles the require just fine, in the latter it claims the state doesn't exist.
19:42 Mr_N and at this point I'm pretty convinced I've stared at it enough for it to not be a typo
19:44 mgw joined #salt
19:44 prakashsurya left #salt
19:45 mgw joined #salt
19:46 rome joined #salt
19:51 clone1018 joined #salt
19:52 Mr_N Confusion intensifies, if I add an include stanza to the state using that sls path, it works.
19:52 Mr_N but in the require stanza it fails.
19:52 Mr_N (only in the python renderer, in the default renderer it succeeds for both)
19:53 meteorfo_ joined #salt
19:53 Kenzor joined #salt
19:58 jslatts Mr_N: are you calling it as part of highstate or directly?
19:58 Mr_N Directly.
19:58 Mr_N I can encapsulate this in a pastebin if some context is needed
19:58 jslatts are you including the required state in the call?
19:59 jslatts sure
19:59 Mr_N I'm not including the required state, no.
19:59 Mr_N But I'm not in the pure rendered case where it succeeds, either.
19:59 jslatts require won't automatically include the state, so normally you would use include and required together
19:59 Mr_N Ah/
19:59 Mr_N Ah.*  That'd explain it.
19:59 jslatts yeah, that sounds strange, so I would have to see what you are doing
19:59 Mr_N Oh, no, you're right, I'm just a complete idiot.
20:00 Mr_N I have a comment block at the top of my file, I have additional state code above that
20:00 Mr_N including an include:
20:00 jslatts Mr_N: I have done that before myself :)
20:00 Mr_N /desk /desk /desk
20:01 Mr_N Victory, it all runs now ><
20:01 jslatts excellent
20:01 Mr_N Thanks for being my sanity check.
20:01 jslatts np. glad to help
20:06 rome joined #salt
20:07 ndrei joined #salt
20:09 Ahlee ok strange, service.running for atd, i get a return of {'atd' : True}, but when i check the process list atd isn't running
20:09 cnelsonsic joined #salt
20:10 meteorfo_ joined #salt
20:12 jslatts Ahlee: what does /etc/init.d/atd status return?
20:13 Ahlee atd is stopped, ret value of 3
20:13 Ahlee /etc/init.d/atd start returns ret code of 0
20:13 Ahlee as expected
20:14 druonysus joined #salt
20:14 druonysus joined #salt
20:14 jslatts hm
20:14 Ahlee yeah, this is strange, especially given i'm getting the return of True in INFO output
20:16 jslatts any maintainers here want to weigh in on the folder structure of the s3 pillar module I'm about to send a PR for? I am trying to figure out if I should make it possible to put states and pillars inside a single s3 bucket
20:16 jalaziz joined #salt
20:17 jslatts but I would have to modify the existing s3fs module to make it compatible.
20:21 jcockhren jslatts: (I'm not a maintainer). Do you mean allowing to specifiy paths?
20:22 jcockhren (or 'prefixes' in s3 talk)
20:22 jslatts jcockhren: so the s3fs module expects this bucket structure: s3://<bucket name>/<environment>/<files>
20:22 jslatts and I was thinking about doing s3://<bucket name>/pillar/<environment>/<files>
20:22 jslatts so that one bucket could contain states and pillars
20:23 jslatts s3://<bucket name>/salt/<environment>/<files> and s3://<bucket name>/pillar/<environment>/<files> basically. but rather any prefix you choose
20:23 rome_ joined #salt
20:23 jslatts but I am wondering if I am just weird. it seems like philosophically, pillars are expected to be located completely separate from the states
20:25 jcockhren jslatts: why cover the usecase of pillars and having the same root directory?
20:26 jcockhren one could argue that they end up having the same parent directory (by default) with /srv/states /srv/pillar
20:26 jcockhren (on linux)
20:26 jslatts jcockhren: it just reflects how I historically structured things i suppose
20:26 jcockhren (to your point)
20:26 torrancew joined #salt
20:27 jslatts hrm. i'm going to require it to be a separate bucket for now. to do otherwise involves more than just adding a new pillar module
20:29 ajw0100 joined #salt
20:32 rojem joined #salt
20:34 kballou joined #salt
20:36 arcleo joined #salt
20:38 Katafalk_ joined #salt
20:39 bastion1704 joined #salt
20:41 djaime joined #salt
20:43 colinbits joined #salt
20:47 eriko joined #salt
20:51 possibilities joined #salt
20:51 ajw0100 joined #salt
20:52 stephas joined #salt
20:53 smcquay joined #salt
20:54 smcquay joined #salt
20:57 possibilities joined #salt
21:03 ajolo_ In case you haven't see it: http://xkcd.com/974/ :)
21:03 gq45uaethdj26jw6 left #salt
21:07 whiteinge :D
21:07 younqcass joined #salt
21:08 scooby2 is there a way to disable salt.grains.external_ip?
21:08 scooby2 my firewall guys are bitching that salt is trying to go external for no reason
21:12 timoguin scooby2: i'm pretty sure the external_ip grain is part of salt-contrib, i.e. it's not a core grain
21:12 timoguin if you're  using contrib just take grain/external_ip.py out
21:13 scooby2 i wonder if that is included in the rpm
21:14 whiteinge it was a core grain until last week :-/
21:14 scooby2 ahh
21:14 whiteinge never should have gone into core without an opt-in setting
21:15 whiteinge scooby2: quick way to disable it:  mkdir -p /srv/salt/_grains && touch /srv/salt/_grains/external_ip.py && salt '*' saltutil.sync_grains
21:15 scooby2 thank you
21:18 ndrei joined #salt
21:22 andrej joined #salt
21:24 happytux joined #salt
21:30 possibilities joined #salt
21:33 harobed joined #salt
21:33 ggoZ joined #salt
21:36 seanz Greetings. Is pillar data available in the salt top file? Is it recommended to use it there, if it is?
21:37 scooby2 whiteinge: works perfectly. Thank you
21:37 whiteinge nice
21:38 whiteinge seanz: yes. and sure. the top file is rendered directly on the minion, same as states
21:38 seanz whiteinge: Ah, nice.
21:39 seanz whiteinge: How's it going?
21:39 seanz Long time no talk.
21:39 whiteinge no complaints. i'm enjoyign the weather for another couple weeks before summer happens and we all dry up and blow away
21:42 CeBe joined #salt
21:44 stevednd how the heck do you specify the ssh port for the saltify provider to use?
21:45 seanz whiteinge: haha. Hopefully not.
21:45 seanz Not without a permit, at least.
21:46 nmistry joined #salt
21:47 whiteinge seanz: as i hear it, things aren't looking too rosy for your coworkers this summer.
21:47 seanz Weather wise?
21:47 seanz They're going through a heat wave right now.
21:47 whiteinge yeah. i'll send bottled water to my friends in CA if they send me beer back
21:50 whiteinge goodwill: ^^
21:52 ajw0100 joined #salt
21:52 goodwill eh?
21:53 cewood joined #salt
21:57 andrej joined #salt
21:59 stevednd after looking through the code a bit, it appears that there is no way to specify a port other than 22 for the saltify cloud provider. salt.utils.cloud.deploy_script has a port=22 argument, but saltify.py#create appears in no way to add port to the deploy_kwargs. Someone please tell me I'm reading this wrong.
21:59 n8n joined #salt
22:05 ahammond I need to pass a uid into a config file in salt. I have the username. Is there an easy to way to look up uid from the username?
22:07 UtahDave ahammond: file.user_to_uid
22:08 ahammond @UtahDave how do I use that in the context of a state.sls?
22:08 chrisjon_ joined #salt
22:08 UtahDave __salt__['file.user_to_uid']('myusername')
22:09 ahammond thanks! is there similar functionality for gid?
22:09 UtahDave stevednd: My first look through code seems to confirm your suspicion
22:09 UtahDave stevednd: Would you open an issue on that?  Or a pull request if you get it working?
22:10 jalaziz joined #salt
22:10 UtahDave ahammond: Yeah here: https://github.com/saltstack/salt/blob/develop/salt/modules/file.py#L153
22:10 UtahDave there's a bunch of related functions in there.
22:11 UtahDave now that I look at that, it seems like those might belong more in the user execution module..
22:11 logix812 joined #salt
22:11 nmistry joined #salt
22:12 n8n joined #salt
22:13 smcquay_ joined #salt
22:16 cjbarnes18 joined #salt
22:16 smcquay joined #salt
22:20 yusuket joined #salt
22:25 vbabiy joined #salt
22:26 JordanRinke joined #salt
22:31 meteorfo_ joined #salt
22:32 ghanima_ joined #salt
22:37 mirko joined #salt
22:37 mattikus joined #salt
22:37 pjs joined #salt
22:37 Jahkeup joined #salt
22:37 vlcn joined #salt
22:38 smkelly joined #salt
22:40 bhosmer joined #salt
22:42 RandalSchwartz man ... I did ssh.auth_key the hard way. :)
22:42 ajprog_laptop joined #salt
22:42 RandalSchwartz and ssh.known_hosts
22:42 RandalSchwartz and service.running enable = True
22:42 RandalSchwartz I did all those with file.managed or file.append :)
22:52 meteorfo_ joined #salt
22:52 UtahDave oops, RandalSchwartz!   :)
22:53 tharkun joined #salt
22:55 ziirish joined #salt
22:56 Hipikat_ joined #salt
22:56 garthk joined #salt
22:57 echos joined #salt
22:58 ajprog_laptop joined #salt
22:58 ahaerpfer joined #salt
22:59 Whissi joined #salt
23:02 whiteinge The Salt Module Index is 90% of my visits to the docs :)
23:02 whiteinge http://docs.saltstack.com/en/latest/salt-modindex.html
23:03 gw joined #salt
23:03 gw joined #salt
23:03 meteorf__ joined #salt
23:05 kickerdog joined #salt
23:06 TOoSmOotH anyone here use the state file.replace?
23:06 gw joined #salt
23:06 gw joined #salt
23:06 TOoSmOotH I am trying to use it and am getting a State file.replace found in sls is unavailable
23:08 Katafalkas joined #salt
23:09 RandalSchwartz whiteinge - is there a version of that for the release?
23:09 RandalSchwartz I would not want to see things that don't work yet. :)
23:12 scarcry joined #salt
23:14 whiteinge RandalSchwartz: each release will have it's own version of that index, yes
23:14 whiteinge ...but now that I've said that, it's really not obvious how to find it
23:14 mateoconfeugo joined #salt
23:15 whiteinge We're moving all the docs (even for old versions) to docs.saltstack.com, so we'll have links to old versions there soon. (Probably this week.)
23:15 jslatts joined #salt
23:17 RandalSchwartz cool
23:21 saguilar joined #salt
23:22 nicksloan joined #salt
23:22 mway joined #salt
23:25 joehh mgw: re the su - -c on trusty - was it just the "-" that was required?
23:25 mgw joehh: yes, but develop branch has removed the su entirely
23:25 mgw joehh: there's a workaround that works on trusty and precise
23:26 mgw with develop or 2014.1
23:27 rome joined #salt
23:27 mgw joehh: you're having an issue with http_proxy or some other env var?
23:28 joehh the debian dir in the saltstack repo is dot how saucy and trusty packages have been built
23:28 joehh mgw: no - keeping an eye out for packaging bugs/issues
23:28 mgw oh, yeah… thanks
23:29 joehh :)
23:29 mgw IMO to prevent breaking current installs, a standard etc/default should be added
23:29 mgw https://gist.github.com/mgwilliams/a29437c64745b9a49c65
23:29 mgw the way it is in develop, http_proxy would've suddenly stopped working with the next major release branched off develop
23:30 nmistry joined #salt
23:31 joehh sorry, not following entirely - is the /etc/salt-minion/default required or the su - -c or both?
23:31 garthk joined #salt
23:32 mgw either/or
23:32 mgw but dlanderson removed the su from salt-minion.conf
23:33 mgw in develop
23:33 mgw suggesting that /etc/default/salt-minion be used instead
23:35 joehh just catching up...
23:36 garthk_ joined #salt
23:36 joehh I see the commit now
23:39 joehh I'll get in touch with him to understand what he is trying to acheive. Thanks for the heads up
23:40 rome joined #salt
23:42 schmutz joined #salt
23:44 bhosmer joined #salt
23:49 rome joined #salt
23:51 n8n joined #salt
23:52 garthk joined #salt
23:58 bhosmer joined #salt
23:59 war2 joined #salt

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