Perl 6 - the future is here, just unevenly distributed

IRC log for #salt, 2015-10-06

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

All times shown according to UTC.

Time Nick Message
00:00 iggy Not that I've heard of
00:01 dthom911 joined #salt
00:02 bfoxwell joined #salt
00:02 fivehole joined #salt
00:03 ageorgop joined #salt
00:05 baweaver joined #salt
00:11 dthom911 joined #salt
00:13 pravka joined #salt
00:14 otter768 joined #salt
00:17 cberndt joined #salt
00:21 tristianc joined #salt
00:22 falenn joined #salt
00:35 breakingmatter joined #salt
00:50 teebes joined #salt
00:54 ALLmightySPIFF joined #salt
00:55 dthom911 joined #salt
00:57 SunPowered joined #salt
00:58 dthom91 joined #salt
01:07 ags joined #salt
01:12 subsignal joined #salt
01:15 ajw0100 joined #salt
01:22 aparsons joined #salt
01:35 throwawayj joined #salt
01:35 throwawayj anyone know when 2015.5.6 will be released?
01:36 throwawayj salt-minion version that is
01:36 throwawayj @CHELL_
01:36 throwawayj @CHELL__
01:36 throwawayj i ask because any time i run my state.highstates with salt-minion version 2015.5.5.1* i get except (OverflowError, msgpack.exceptions.PackValueError):
01:37 throwawayj my master if on version 2015.8.0-2
01:48 rrr joined #salt
01:48 pm90_ joined #salt
01:48 Bryson joined #salt
01:48 clintberry2 joined #salt
01:51 dthom91 joined #salt
01:51 catpigger joined #salt
01:54 twork joined #salt
01:56 rickflare would it be considered bad practice to install the salt-master package on other nodes even though they wont be acting as the master
01:56 dthom91 joined #salt
01:57 sunkist joined #salt
01:59 teebes joined #salt
02:03 iggy rickflare: not really... but it probably doesn't buy you a lot (at least on Debian, everything is in salt-common... salt-master is just the init script and a couple other things)
02:07 rickflare hummm
02:07 rickflare thanks iggy
02:07 markm_ joined #salt
02:07 rickflare im just trying to figure out if doing that opens your up
02:07 rickflare security wise
02:11 Gareth rickflare: if you're concerned about security just ensure the salt-master 1) doesn't listen on all interfaces, just loopback.  or 2) firewall off the ports the salt master uses from the outside world.
02:11 iggy or just set it not to start?
02:13 stanchan joined #salt
02:13 rickflare yea
02:14 aidin_ joined #salt
02:19 zwi joined #salt
02:23 Joeskyyy_ joined #salt
02:23 Gareth that too.
02:24 Gareth rickflare: just curious, what your reasoning for having the salt-master on nodes that aren't acting as a master.
02:27 tzero joined #salt
02:30 favadi joined #salt
02:32 Zachary_DuBois joined #salt
02:38 rickflare well
02:38 rickflare I have a install pattern
02:39 rickflare that would be easier to not have to choose upfront between a master and minion
02:39 rickflare but im just going to code it up so that it does
02:39 rickflare its just me being lazy
02:45 evle joined #salt
02:47 zwi joined #salt
02:55 Cyis fir I'm doing: {% for var1, var2 in salt['pillar.get']('somepillar', {}).items() %} ... is there a way I can force to order the var1 in a predictable fashion?
02:58 iggy Cyis: dictsort?
02:59 iggy http://jinja.pocoo.org/docs/dev/templates/#dictsort
02:59 indispeq joined #salt
03:00 Cyis iggy: I'll give that a try... currently I randomly get my file generated completely by pillar updating even though the pillar data hasn't changed
03:00 armguy joined #salt
03:02 Jerbo joined #salt
03:02 Cyis guess I'll just deal with random changes that aren't changes as adding |dictsort throws an error
03:03 Jerbo left #salt
03:11 localstatic joined #salt
03:16 iggy .items()|dictsort or the other way around?
03:19 Cyis iggy: .items()|dictsort ... should I have tried it the other way?
03:20 iggy or just without the .items()
03:20 numkem joined #salt
03:20 iggy should be able to find some jinja examples
03:20 Cyis iggy: I'll try messing with that again after I finish building out the crashed server
03:21 Cyis had 1 of 3 nodes in a cluster crash and this is the first complete rebuild via salt exclusively... I've not logged into the box at all... salt-cloud to deploy and then running state.highstate
03:21 iggy yeah, working server beats perfect jinja every time
03:21 Cyis I was planning to rebuild these three when the formula was done... server had other plans
03:22 iggy don't they always
03:22 iggy good luck... /me out
03:22 Cyis weekend was spent re-wiring network and chasing down issues in the Cisco ASA and switch causing lots of network errors
03:23 Cyis earliest I went to bed all weekend was 3am
03:25 clintberry2 joined #salt
03:30 `chris joined #salt
03:42 larsfronius joined #salt
03:46 Knuta joined #salt
03:49 Knuta Is there a way of creating a topfile which applies the same states in all environments? I really just want to use environments to pick which folder to serve states from, nothing else.
03:51 Knuta What I'm actually trying to do is allow users to test config before commiting it at all, just by executing their local changes on a test minion. So I was thinking to have the base environment served from git, but also allow specifying your own username as environment to allow testing your local copy.
03:58 ALLmightySPIFF joined #salt
03:58 tzero joined #salt
03:59 ramteid joined #salt
04:06 falenn joined #salt
04:07 Knuta Oh, wait, I can just have 'base' there, and it works regardless of environment! Never mind, then.
04:10 indispeq joined #salt
04:12 Nazca joined #salt
04:26 hahuang61 joined #salt
04:34 hahuang61 joined #salt
04:38 breakingmatter joined #salt
04:45 auzty joined #salt
04:48 kermit joined #salt
04:50 zmalone joined #salt
04:51 throwawayj for anyone who needs the info from my questions above package python-msgpack needs to be at 0.4.6.1
04:51 throwawayj if you running salt-minion 2015-5.5 and salt-master 2015-5.5
04:52 throwawayj otherwise your pillars will not render in your state files
04:53 Knuta Hmm, no, I was wrong. Is there any way of specifying a "wildcard" for the environment in the topfile? Just replacing "base:" with "*:" didn't work…
04:57 rhodgin joined #salt
04:59 throwawayj you need to specify base:
04:59 throwawayj then '*':
04:59 throwawayj this will include all servers. You can then specify what states to apply
04:59 throwawayj - service.nagiosclient
04:59 throwawayj for example
05:00 Knuta I'm not trying to wildcard servers, I'm trying to wildcard environments.
05:01 notnotpeter joined #salt
05:01 throwawayj if you are trying to wildcard all environments, then wildcarding all servers is the same thing in the end.  I don't think you can wild card environments. You would have to specify if your master config that all environments point to the same directories
05:02 throwawayj got to go
05:02 manfred joined #salt
05:03 hasues joined #salt
05:04 baffle joined #salt
05:04 btorch joined #salt
05:04 eichiro joined #salt
05:05 jettero joined #salt
05:05 blergh- joined #salt
05:05 mdupont joined #salt
05:05 elektrix joined #salt
05:05 cswang joined #salt
05:06 shantanoo joined #salt
05:07 JDiPierro joined #salt
05:07 jcockhren joined #salt
05:07 rideh joined #salt
05:08 indispeq joined #salt
05:08 unusedPhD joined #salt
05:09 giantlock joined #salt
05:09 gmoro joined #salt
05:11 jesusaurus joined #salt
05:16 wm-bot4 joined #salt
05:23 Cyis any thoughts on how to (or if possible) to make a salt['cmd.run'][('/usr/bin/curl -s http://someapi/') that returns JSON and be able to access the returned values inside a state?
05:25 shantanoo joined #salt
05:25 slav0nic joined #salt
05:32 hasues left #salt
05:32 Rebus joined #salt
05:35 moogyver Cyis: I'm not really familiar with the state stuff, but can't you just use jinja to make the salt['cmd.run'] call and then just grab the data out that you need?
05:37 Cyis moogyver: yeah the salt['cmd.run'] was making the curl call and getting the return... I used a cmd.run: - name: echo {{ var }} to see what I was getting. Problem was I kept getting an error trying to access any element of the JSON data returned and stored within the variable
05:40 Cyis so I trimmed the cmd.run call down till I get only the value of the element I want from the API... no JSON, just the value. my echo cmd.run test shows me the value... I update the rest and run a state.show_sls against the state and it looks good and like I expect... then I run a state.sls with test=True and it pukes
05:41 Cyis specifically the error I get is a "KeyError: 'id'"
05:42 larsfronius joined #salt
05:42 Cyis same thing but using a grain variable instead of the variable from the cmd.run curl call works fine
05:45 moogyver have you tried using http.query instead of cmd.run to decode it into json instead?
05:46 msciciel joined #salt
05:48 Cyis moogyver: hadn't thought of that
05:49 moogyver may help to get the value easier, since i'm pretty cmd.run is just returning a glob of text and you'd have to parse it manually into json yourself.
05:49 moogyver but i'm not sure why it isn't rendering
05:49 moogyver seems like if the echo is printing it, it should work ..
05:56 rdas joined #salt
05:59 colttt joined #salt
05:59 aqua^c_ joined #salt
06:00 anmolb joined #salt
06:00 ALLmightySPIFF joined #salt
06:00 JDiPierro joined #salt
06:04 Bryson joined #salt
06:04 Cyis I moved the salt cmd.run curl call to the pillar and did a salt['pillar.get'] in the state and it works... won't bother trying to figure out why
06:06 illern_ joined #salt
06:07 lb joined #salt
06:07 mehakkahlon joined #salt
06:08 sirex joined #salt
06:08 aqua^c joined #salt
06:10 tedbot joined #salt
06:12 tedbot will this work? http://pastebin.com/rYSh6UCF (nested variables)
06:13 tedbot tryna use a grain to look up a pillar value
06:17 katyucha joined #salt
06:17 AndreasLutro joined #salt
06:18 babilen Repasted at https://www.refheap.com/110308
06:19 babilen tedbot: Yes, apart from the fact that you don't nest {{ ... }} -- Use string concatenation or format strings. (~ or 'foo %s'|format(bar) )
06:19 babilen http://jinja.pocoo.org/docs/dev/templates/
06:20 babilen (and make the web a better place by not using pastebin.com, one of http://refheap.com, http://paste.debian.net, https://gist.github.com, http://sprunge.us, http://dpaste.de, … would be a much better choice)
06:21 tedbot ^ ha, got the same line last time for not using pastebin :) will do, sir
06:21 moogyver is there anyway to restrict the pillar data a minion gets? environment pinning the minion doesn't seem to work.
06:22 moogyver i get that a you target via the top.sls, but i'm talking about someone making a mistake.. or multiple orgs on the same salt-master, and someone fat-fingering a target declaration
06:22 moogyver wondering if there's someway to avoid that..
06:22 AndreasLutro no, there's no way for salt to magically prevent or mitigate human error
06:24 babilen moogyver: A minion gets exactly the data you target to it
06:24 babilen The only way to prevent that is an in-house linter that checks for that kind of "error"
06:25 babilen Or write an external pillar that filters the data at hand based on your requirements
06:26 tedbot babilen: so this would fix it? https://www.refheap.com/0699352df9ce989e646de9953
06:26 geekatcmu The nice thing about a CM system (like salt, but really, any one) is that you can deploy a new application across your entire infrastructure in minutes.
06:27 geekatcmu Likewise, you can delete /lib across your entire infrastructure in minutes.
06:27 babilen tedbot: Not quite, make it: salt['pillar.get']('admin.bamboo.base:%s'|format(fqdn) ...
06:27 babilen geekatcmu: Oh, no!?
06:27 harkx joined #salt
06:27 tedbot babilen: ah I see, thanks very much
06:28 babilen Yeah, I dread that one day such a "Oh, I deleted everything" moment will come
06:28 numkem joined #salt
06:28 moogyver thanks babilen - didn't know if the minion environment pinning worked for pillars, but I'm guessing not then.
06:29 babilen I said nothing about environments
06:30 edulix joined #salt
06:30 moogyver babilen: no, but from what you said, it sounded like they don't ( and from testing, they don't.. ).
06:30 shiriru joined #salt
06:31 babilen ah, I see
06:32 flebel joined #salt
06:33 ajw0100 joined #salt
06:34 malinoff joined #salt
06:35 KermitTheFragger joined #salt
06:37 geekatcmu babilen: not the entire infrastructure.
06:37 geekatcmu just a half dozen Solaris zone servers (and thus their zones).  3-4 years ago.
06:37 geekatcmu Still something to be aware of, you know?
06:37 babilen Absolutely
06:39 breakingmatter joined #salt
06:55 tercenya joined #salt
06:58 Knuta is the name of the active environment accessible from jinja?
06:58 AndreasLutro if you do `salt name-of-minion system.reboot` is it normal that salt just locks up?
06:59 babilen AndreasLutro: No, but I don't do that often... Worked last time around though (wheezy and jessie boxes)
07:00 AndreasLutro I'll just assume it's salt-ssh specific then
07:01 ALLmightySPIFF joined #salt
07:07 fredvd joined #salt
07:10 cberndt joined #salt
07:10 Knuta I solved my problem. If I use "{{ saltenv }}:" instead of "base:", I can use the same topfile content for all environments.
07:11 markm joined #salt
07:11 babilen Knuta: Top files are merged across environments anyway (which is why I keep them in their own repo)
07:15 babilen AndreasLutro: The box should still reboot in that case, it might just be that salt waits for a reply that never arrives as, well, the box rebooted and there wasn't a SSH connection anymore
07:16 pm90_ joined #salt
07:17 Knuta babilen: I disabled that using "top_file_merging_strategy: same"
07:17 AndreasLutro indeed. https://github.com/saltstack/salt/issues/27710
07:17 babilen Knuta: Why? I found that keeping different top files in a repo makes merging unrelated changes between branches painful.
07:18 babilen AndreasLutro: Ah, indeed :)
07:18 babilen haha
07:20 Knuta babilen: This is a small org where it makes a lot more sense to be able to test things a little before commiting changes at all. I'm generating one environment per user dynamically, so everyone can test their local changes using saltenv=$LOGNAME (where $LOGNAME is set to their normal username). This makes it very easy to do simple testing prior to pushing.
07:21 Knuta babilen: we don't have staging environments or anything like that, this is meant to maintain reasonable consistency on ~20 heterogenous servers which are never reinstalled
07:24 babilen "pushing" means "running a (high)state" in this context, doesn't it?
07:25 is_null hi all, how would i override the pip.installed state function to add --retries ?
07:26 Knuta babilen: pushing to git, really. Which will place it in the base environment through a post-receive hook.
07:26 babilen is_null: Without having looked at it: Copy either the state or the execution module to _states or _modules respectively and make your changes. Feel free to submit a PR that allows others to set retries too if you deem that sensible and useful
07:27 babilen Knuta: Then I don't quite understand what having an environment per user buys you
07:28 babilen (assuming people still test their code on locally running VMs that mimic your 20 servers to some degree)
07:28 is_null babilen: thanks ! i think something like ansible's extra_args would be more relevant, unless salt wants to maintain a wrapper around each option of pip
07:28 Knuta babilen: The workflow will basically be "log in as yourself", "edit stuff in your checked-out tree in ~/salt", "run 'salt-call state.highstate saltenv=$LOGNAME test=True' and iterate until it looks right", "commit and push"
07:29 babilen Knuta: AAAAH!
07:29 illern_ joined #salt
07:29 is_null that kind of option is super relevant in this kind of tool i guess, since the more the automatiion system is resistant to network quirks, the more success it will have
07:30 babilen is_null: Sure, that's another way and might make perfect sense in this particular case
07:30 Knuta babilen: is that "ah, now I get it", "aaaah, that's horrible", or both? ;-)
07:30 ALLmightySPIFF joined #salt
07:31 babilen Knuta: I'm trying to decide that myself .. It was a "ah, now I get it", but then I realised that it could have easily been misconstrued and am pondering that question ever since
07:31 is_null babilen: i recon it's not good to give too much power to users who don't know what they are doing, ie. not pinning to a pip version
07:32 is_null and then passing anything to extra_args might have catastrophic consequences
07:32 babilen Knuta: I made vagrant setups that mimic our production systems available to, well, myself and some other people. That way we can test code locally without the need to be online or the danger of actually making a mistake
07:32 Knuta babilen: this isn't how I'd do it in a professional environment, but for a small university computer club which until now provisioned using a 15 year old rdist tree I've deemed it satisfactory.
07:32 is_null in some cases, it's better to jail the user
07:33 babilen Knuta: It is an interesting approach and I like the "out-of-the-box"-ness of it. I wouldn't want to use it in production though...
07:34 markm joined #salt
07:34 Knuta babilen: this is primarily optimized for ease of use, and is meant to encourage people to start putting things in salt instead of just doing local changes.
07:34 AndreasLutro vagrant is a life-saver for testing states
07:39 Knuta babilen: https://paste.debian.net/314586/ -- I generate my environments by distributing this as a python template to /etc/salt/master.d/environments.conf :-P
07:39 MadsRC I'm getting this error: https://www.refheap.com/5da034a6f536a6c925abbf393 when running this SLS: https://www.refheap.com/5d94b2df83648cf96267c0722 - The problem is the service.running part (The SLS is helping me update my CentOS boxes from the old official installation method to the new one).
07:40 MadsRC This is the minion debug log: https://www.refheap.com/fe38c954f32d09a108cfe3851
07:40 MadsRC The minion is 2015.5.5 (Epel release) and the master is 2015.8.0 (Stalstack repo)
07:41 AndreasLutro MadsRC: check if "def to_str" is present in /usr/lib/python2.7/site-packages/salt/utils/__init__.py on your minion
07:41 babilen Knuta: That's so hacky, I love it :)
07:41 AndreasLutro if it is, try removing /usr/lib/python2.7/site-packages/salt/utils/__init__.pyc
07:42 AndreasLutro if not... manually reinstall the salt minion I guess?
07:42 MadsRC It is, let me try and remove the pyc
07:43 MadsRC AndreasLutro: Funny thing is, if I manually log into the minion and restart the service, it works fine :P But doing that on 200 hosts is kinda counter productive to Salt :D
07:44 AndreasLutro hm...
07:44 MadsRC Wait, it's not inthe init file... The one I was looking in was the update package
07:45 rim-k joined #salt
07:45 MadsRC So it seems def to_str is missing in 2015.5.5 epel release :P
07:45 AndreasLutro it's not missing if it was never intended to be there in the first place, it's probably a new function in .8
07:46 MadsRC Ah, and Salt is "generally" backwards compatible :P
07:46 Knuta babilen: hmm, looks like it breaks if I don't specify an environment. Then it somehow tries to sync both?
07:46 AndreasLutro backwards compatibility only applies for public api
07:46 AndreasLutro salt.utils is not a public api
07:46 AndreasLutro problem is your minion has mixed versions of salt installed somehow
07:47 MadsRC Weird... Well, I'll revert it to a early snapshot and start over :D
07:53 babilen Knuta: It should default to base, shouldn't it?
07:53 Knuta babilen: looks like the default is None, which presumably fetches all of them or something
07:55 MadsRC AndreasLutro: So, with a clean install of Salt-minion .5 on a clean system, the Master (.8) should be able to run the SLS file without errors? Or does the Salt Master tell the Minion what functions it should use? Or does it just say "Install X" and the minion figures out what function to use to complete said task?
07:56 AndreasLutro MadsRC: I'm not entirely sure how it works in the case of reinstalling a salt minion, honestly - it could be that the old minion process is causing some python bytecode caching which could cause version mixups
07:57 MadsRC Well, it failed again using a clean OS :P I swear I had this working yesterday :D
07:59 Rumbles joined #salt
08:00 eseyman joined #salt
08:00 MadsRC Any other way to restart the salt-minion daemon using the master?
08:03 AndreasLutro maybe it'll work better if it's not part of a highstate
08:03 AndreasLutro or maybe you could schedule a restart with https://docs.saltstack.com/en/latest/ref/states/all/salt.states.at.html
08:03 MadsRC It's not highstate, it's only supposed to be run once :P Yeah, I'm looking at "at" right now
08:05 s_kunk joined #salt
08:14 MadsRC Replacing service.running with cmd.run systemctl restart salt-minion did the trick... That's ugly :D
08:15 pcdummy joined #salt
08:15 chiui joined #salt
08:16 jfred joined #salt
08:23 Rumbles joined #salt
08:24 GreatSnoopy joined #salt
08:25 denys joined #salt
08:27 Grokzen joined #salt
08:29 larsfronius joined #salt
08:29 thalleralexander joined #salt
08:30 msx joined #salt
08:32 LyndsySimon joined #salt
08:32 SaveTheRbtz joined #salt
08:33 skarn joined #salt
08:38 impi joined #salt
08:40 breakingmatter joined #salt
08:49 Twiglet how do you add nested grain items? My morning brain does not seem to be able to work it out http://hastebin.com/xuvixowela.sm
08:50 CeBe joined #salt
08:56 Rumbles joined #salt
09:10 keimlink joined #salt
09:11 favadi joined #salt
09:11 losh joined #salt
09:19 markm_ joined #salt
09:19 VSpike joined #salt
09:20 VSpike Does salt-cloud deployment on AWS for Windows work yet?
09:21 Rumbles joined #salt
09:22 humalassa joined #salt
09:23 humalassa hi, I'm testing the nginx formula (https://github.com/saltstack-formulas/nginx-formula/), I can see that minions have the formula pillar items present but formula seems to ignore them, any clue?
09:24 humalassa I'm using the "ng" approach and I have some other formulas working with no issues
09:27 DanyC joined #salt
09:33 Rumbles joined #salt
09:40 the_drow joined #salt
09:40 the_drow Hi guys, how do I set up my own private index for salt formula packages? Is it possible yet?
09:41 NV joined #salt
09:41 Knuta joined #salt
09:44 babilen the_drow: index?
09:44 babilen Ah, formula *packages* .. nvm
09:44 the_drow If I fork the formula I'd like to be able to install it
09:46 babilen And you can't do that because?
09:51 Nebelmacht joined #salt
09:55 DanyC hey babilen, i have a quick one for you :) - do you have a method to avoid the failure of the salt-call highstate in case the minion key is already present? Ideally i'd love to have a way to say "pure stale keys" or "overwrite the minion keys in case the same id is found"
09:56 MK_FG joined #salt
09:59 babilen That isn't a short one and you should ask the channel! ;)
10:00 babilen DanyC: You can probably use wheel.key.delete in a reactor that triggers on a minion is away event (you might need presence_events for that)
10:00 DanyC babilen: i know :) , been cheeky (sorry :) )
10:01 DanyC babilen: ah i see, thanks !
10:05 babilen Look into some of the autoscaling reactors and draw inspiration from that
10:06 DanyC babilen: will do, if you have a handy link to any sort of docs, i'd much appreciate it (if not i still do :) )
10:08 babilen I was thinking of https://github.com/saltstack-formulas/salt-cloud-reactor and https://github.com/saltstack-formulas/ec2-autoscale-reactor
10:08 DanyC babilen: awesome, much thanks
10:11 denys joined #salt
10:11 SunPowered joined #salt
10:14 DanyC who is lucky to work with EC2 can use all the benefits for free, who is not (like me) and is using OpenStack needs to find a different method. Also you need the salt-api for all this ..
10:15 DanyC any idea if salt-api got any "love" on the latest release or is going to be refactored into s'thing else ?
10:18 babilen DanyC: Yeah, you still need salt-api to call wheel.* IIRC, can't comment on "love"
10:25 giantlock joined #salt
10:28 Dev0n joined #salt
10:30 quasiben joined #salt
10:30 Dev0n Hey, just came across salt.modules.dockerng, salt.states.dockerng, think I already know the answer but I assume the modules is something you can run using salt cli where as the states are what you used to make your state files?
10:32 babilen indeed
10:34 babilen Execution modules can be executed interactively, while states are being applied. States are typically implemented on top of execution modules in that they add the logic to determine if they have been achieved yet. If a state has not been achieved it would typically make appropriate calls to functions in the corresponding execution module.
10:35 Dev0n cool, thanks for clarifying, have you used the docker states/modules yourself?
10:37 Dev0n running: docker ps && echo $?  on staging returns an exit code of 0. However, on master, when I run: salt 'staging' dockerng.ps, I get ERROR: Minions returned with non-zero exit code
10:37 Dev0n a bit odd
10:38 eliasp Dev0n: what does "salt-call -l debug dockerng.ps" executed on a minion look like?
10:38 eliasp Dev0n: the dockerng module doesn't simply call the "docker" CLI binary, but talks to the docker API instead
10:40 jartsu joined #salt
10:41 breakingmatter joined #salt
10:42 Dev0n ahh, thanks eliasp, now I know how to debug the salt calls :D, seeing a few odd debug messages, because it's saying that 'salt' can't be resolved at an interval. I clearly have salt set in /etc/hosts to the master ip
10:42 Dev0n and can ping salt fine from staging
10:42 eliasp Dev0n: then add for the debug call "--local"
10:43 jartsu I'm setting up salt with gitfs and have some questions. Is it sensible for me to create a git repo with two directories in the root: 'pillar', and 'salt-states'? Then specifying gitfs_mountpoint of 'salt-states'? That way I have pillar data and states in the same git repo.
10:44 Dev0n eliasp: ahh, I guess that was because the master never had a host entry for salt, gotcha, now I'm seeing the relevant error messages for dockerng.ps
10:44 Dev0n missing a few modules apparently modules.tls, modules.npm etc
10:45 eliasp Dev0n: not relevant for Docker… those are just warnings for other execution modules
10:46 Dev0n eliasp: oh, that just leaves: [DEBUG   ] Could not LazyLoad dockerng.ps -- 'dockerng' __virtual__ returned False
10:46 eliasp Dev0n: which salt-version? "salt-call --local test.versions_report"
10:47 Dev0n eliasp: Salt: 2015.8.0
10:48 eliasp Dev0n: then you're most likely missing the python-docker package
10:48 eliasp Dev0n: https://github.com/docker/docker-py - make sure it's installed through your distribution's package manager and retry
10:49 Dev0n eliasp: gotcha, thanks, I guess I just assumed it was calling the docker cli but if it's using the api then it must need the docker-py
10:49 Dev0n I'll give that a go :)
10:49 mortis_ am i not allowed to include two slses which both have "packages:" defined with pkg.installed even tho they are subs of "product_one" and "product_two" on the same minion?
10:50 eliasp mortis_: IDs within a "namespace" must be unique… by including other SLS into an SLS, you're extending the namespace
10:51 eliasp mortis_: so just make sure the IDs are unique and name them differently in both SLS
10:51 mortis_ but shouldnt it become "product_one: packages" and "product_two: packages" ?
10:51 eliasp mortis_: please nopaste your SLS
10:52 mortis_ eliasp: nopaste?:)
10:52 mortis_ its dynamically written, so a bit hard, but i can write down what it ends up as ..
10:52 eliasp mortis_: https://www.refheap.com/ - http://dpaste.com/ - http://pastie.org/ - https://paste.kde.org/
10:52 mortis_ yeah sure
10:53 eliasp mortis_: ok
10:57 mortis_ eliasp: ah nevermind, i found the error :) thanks tho
10:57 eliasp k
10:57 mortis_ indenting ftw
10:59 GothAck joined #salt
11:02 elsmo joined #salt
11:04 breakingmatter joined #salt
11:07 illern_ joined #salt
11:10 evle1 joined #salt
11:10 Eureka703 joined #salt
11:18 jartsu should pillar data and states be in separate git repos when using gitfs?
11:20 markm_ joined #salt
11:24 the_drow babilen: sorry, back. I need to make the formulas public right?
11:24 Dev0n does require: have an option to wait for a command to run?
11:25 Dev0n I came across watch: -cmd, was wondering if there was a list anywhere that stated which params require: takes
11:25 Dev0n not sure if it takes -cmd as I've not seen it in the docs anywhere
11:27 pppingme joined #salt
11:30 AndreasLutro Dev0n: there are no restrictions to what states you can pass to require
11:30 larsfronius joined #salt
11:31 Dev0n AndreasLutro: thanks, I was looking for an explicit list somewhere, -cmd should work as expected then
11:32 edulix joined #salt
11:35 evle1 joined #salt
11:36 eliasp jartsu: yes… states should be built in a generic way and not contain any system/environment specific data… pillar are what fills those "gaps" in states… besides that, pillars often contain secrets
11:36 eliasp so states can be viewed by anyone without doing any harm to your environment
11:36 eliasp pillars should be restricted security-wise very tightly
11:37 eliasp jartsu: so put them in separate repos… you might even want to have two separate pillar repos… one for general infrastructure information containig things like users, groups, packages, IPs, … whatever
11:37 eliasp another one only for secret data (passwords, SSL keys, …)
11:49 wendall911 joined #salt
11:59 dyasny joined #salt
12:02 anmolb joined #salt
12:02 malinoff joined #salt
12:05 shiriru joined #salt
12:08 illern_ joined #salt
12:11 tmclaugh[work] joined #salt
12:16 TooLmaN joined #salt
12:20 cyborg-one joined #salt
12:27 mortis_ hmm im wondering if theres a good way to pass on variables from one jinja template that does an include ...to the included template :x
12:27 mortis_ dont think extends will work tho, since the include is a loop
12:27 mortis_ tricky
12:29 babilen mortis_: Provide the data you need there in a pillar and treat the "include" simply as "run this state also"
12:31 mortis_ its allready in the pillar, this is what i mean : http://pastebin.com/3f8wHWZD
12:31 mortis_ and in product_one template i can no longer look up the product pillar since its a list :)
12:31 the_drow Is there a file I can check to monitor if the salt minion has connected to the master besides the log file?
12:31 babilen Repasted at https://www.refheap.com/110315
12:32 GothAck joined #salt
12:32 babilen mortis_: Just iterate over the list again?
12:33 mortis_ babilen: i cant really do that, cause its two separate products (or roles if you like)
12:33 mortis_ in the child template there is no longer a way to see who is who
12:33 mortis_ without hardcoding
12:33 babilen Why do you need the parent at all?
12:34 mortis_ the pillar is external
12:34 tmclaugh[work] joined #salt
12:34 mortis_ so we have a role.sls which contains that include there
12:35 mortis_ sometimes one minion has two products
12:35 mortis_ im so bad at explaining :)
12:35 babilen Okay, but it sounds as if you have two SLS files that, in their entirety, depend on the list of 'products' .. for the first, 'include' one you iterate over the list and for the second you have states that also need to iterate over the same list.
12:36 chiui joined #salt
12:36 mortis_ oki, bad example i suppose
12:36 jdesilet joined #salt
12:36 mortis_ i'll sketch up something better
12:36 babilen mortis_: In your example you can easily iterate over the list and generate as many file.touch states as you have in there
12:37 babilen ack
12:37 mortis_ yeah, its not the point
12:37 mortis_ i really just need the value iterated over, in the child
12:37 zwi joined #salt
12:37 mortis_ and if i iterate in the child ....how can i know which one belongs the the product
12:39 Rumbles joined #salt
12:40 babilen There are two options: 1. You know which 'product' you are in because you are working on product1.sls (which would be product1.sls 2. You have a generic template for *all* products and simply iterate over the list of enabled products and know within the loop which element you are working on
12:40 markm__ joined #salt
12:40 babilen s/which would be product1.sls/which would be product1)/
12:43 mortis_ didnt look very good, but https://www.refheap.com/110316
12:43 Dev0n joined #salt
12:43 Dev0n Anyone got a work around for installing python-pip on debain using states.pip?
12:44 Dev0n seems like the deb version is broke and you need to upgrade pip before you use it
12:44 Dev0n I think this is what this issue is trying to do: https://github.com/saltstack/salt/issues/24216
12:44 mortis_ babilen: cause at line 26, i really dont know that im inside the product_one folder
12:46 babilen mortis_: Those states are identical. Include a generic "product/packages.sls" and iterate over the list of products in there. And, in your example, you *do* know that you are in "product_one" as you are editing product_one/packages.sls as well
12:46 babilen Either way, you know the variable
12:46 DammitJim joined #salt
12:46 subsignal joined #salt
12:46 mortis_ they're not always identical
12:47 mortis_ also, the {{ product }} would be used for things like file paths
12:48 babilen You either have separate state files for products (and thereby know which product it is) or you write generic states that are tailored to your needs by passing suitable data via pillar.
12:48 mortis_ i guess, by including a package.sls that would fix it for packages atleast
12:48 mortis_ yeah, i'm gonna try that :) thanks babilen
12:48 babilen Take the users-formula, for example: https://github.com/saltstack-formulas/users-formula/blob/master/users/init.sls -- it uses a single state to create users with wildly different configurations simply by referring to settings in the pillar
12:49 mortis_ nice
12:51 babilen So you have tests such as "{% if foo in $SOMEPILLAR %} do_the_foo {% endif %}" in your states if some products would "do_the_foo" while others don't. If your states for products are completely different to begin with then just write different SLS files (or even entire collections of them) that are then uniquely identified by, well, their name/path
12:52 mortis_ babilen: thanks, im gonna create something like a package_generic.sls to handle these situations
12:52 mortis_ good input
12:54 babilen Also note that you can generate your top.sls based on pillar data which might free you from using "parent" SLS files simply for listing includes
12:54 hasues joined #salt
12:54 mortis_ hmm
12:55 mortis_ right now we're matching on pillars from an ext_pillar module
12:55 mortis_ but hmm
12:55 PI-Lloyd joined #salt
12:55 mortis_ yeah
12:55 mortis_ we could include directly there i suppose
12:57 babilen Just thinking aloud .. doesn't mean that it would be a suitable solution, but I'd be hesitant to write "for foo in bar: include foo" states if you can do the same in the top.sls
12:57 mortis_ only reason i think we did it was to keep the top.sls untouched
12:58 mortis_ so when we duck something up, it would atleast happen inside a fileroot
13:01 larsfronius joined #salt
13:01 JDiPierro joined #salt
13:04 ferbla joined #salt
13:09 sirex joined #salt
13:10 toastedpenguin joined #salt
13:10 BogdanR Hello
13:11 BogdanR How do I use something like this in pillar: "salt -G 'app:quartz' grains.get fqdn_ip4"
13:11 BogdanR ?
13:11 Norrland BogdanR: what are you trying to achieve?
13:12 BogdanR Norrland: I am trying to automatically configure the IP address of the database in the config file based on a few grains.
13:13 teebes joined #salt
13:14 mpanetta joined #salt
13:14 wnkz joined #salt
13:15 BogdanR I think that having the IP address of the database in pillar would allow me to reuse it in states files.
13:18 pravka joined #salt
13:18 toastedpenguin joined #salt
13:21 Norrland BogdanR: check out the salt mine. I think that could help you a bit
13:21 BogdanR I did
13:21 BogdanR But unfortunatelly mine doesn't work with pillar
13:21 BogdanR Also, how would I match against multiple grains?
13:23 Jahkeup joined #salt
13:28 kaptk2 joined #salt
13:28 SunPowered morning all.  If I have a common git repo of states that I would like to apply to all machines of all environments, how would the top file look?
13:28 SunPowered Would I need to define a '*': - mycommonstate for all envs?
13:29 elfixit joined #salt
13:33 numkem joined #salt
13:33 Tecnico1931 joined #salt
13:33 BogdanR SunPowered: yes
13:34 scoates joined #salt
13:35 SunPowered BogdanR: if I do that, then salt-master cannot find the statefile `mycommonstate` in env `dev`, for example.  The mycommonstate repo has only a master branch
13:35 SunPowered I assumed it would take the code from the master branch of the repo for all envs if there is no branch with the same environment name exists
13:35 BitBandit joined #salt
13:36 Norrland SunPowered: I'd put 'mycommonstate' in /srv/salt/base/mycommonstate instead.
13:36 SunPowered ok, instead of a gitfs?
13:36 Norrland and use pillars for environment specific configuration.
13:36 Norrland I don't use gitfs
13:39 protoz joined #salt
13:40 babilen SunPowered: GitFS equates branches with environments, which means that you have to create branches for all your environments. You might want to consider placing all minions in the "base" environment and target generic states that should be available to all of them
13:40 bhosmer joined #salt
13:43 cpowell joined #salt
13:44 pm90_ joined #salt
13:47 pm90__ joined #salt
13:47 SunPowered babilen: this seems to be true, though I am puzzled why a gitfs managed topfile in its own repo (containing just a master branch) is picked up on all envs
13:48 mapu joined #salt
13:50 wnkz joined #salt
13:51 breakingmatter joined #salt
13:52 zmalone joined #salt
13:53 babilen SunPowered: Because top files are merged across all environments by default (which is why you need your own repo if you want to easily merge between branches in git)
13:54 SunPowered ah, they are handled differently
13:54 babilen exactly
13:54 SunPowered that clears up a bunch
13:54 SunPowered thx
13:55 fredvd joined #salt
13:55 ageorgop joined #salt
13:56 rhodgin joined #salt
13:58 hasues joined #salt
13:58 perfectsine joined #salt
13:58 hasues left #salt
13:59 pravka joined #salt
14:02 tanta_g joined #salt
14:02 jinzoo joined #salt
14:05 jettero I find myself writing /etc/blah/blarg.conf: \n - source: salt://files/etc/blah/blarg.conf a lot.  Is there an automatic way to refer to your own id in a formula? - source: salt://files{{ self.id }} or something? or do I have to jinja the whole thing?
14:05 twork issue i've been hitting, sure i've seen the rule to avoid it, do not recall... minion getting along list of changes, lots of them failing because a prerequisite state hasn't run yet. repeated calls to highstate usually fixes that but that shouldn't be necessary... right?
14:06 clintberry2 joined #salt
14:07 moski joined #salt
14:07 AndreasLutro twork: usually fixed by fixing your requires to be in the right order, and sometimes by using listen instead of watch for services, but sometimes it's just too much work and two highstates are the easiest way out
14:08 tanta_g jettero: store the files under your same state directory tree, i.e.: salt://blah/files/blarg.conf
14:08 tanta_g then each state is self-contained in one clean tree
14:08 andrew_v joined #salt
14:08 twork AndreasLutro: ok. i'd gotten the impression that "need for two highstates" was considered user error. thanks.
14:09 jettero tanta_g: that's in the best practices too I believe; but it doesn't really answer my question
14:10 jettero and my question was just an example
14:10 tanta_g you could create a pattern of doing {% self self_id = 'blah' %} and then simply use {{ blah }} in your file paths
14:10 tanta_g that would be flexible, or the next level of abstraction would be delegating that to a ninja map
14:10 jettero I want some {% jinja.here() %} that gets me the id of the formula I'm in... I don't think the template code has that sort of context, but that's what I'm looking for
14:10 tanta_g first self = set, there
14:11 jettero yeah
14:11 jettero that's more or less what I've been doing, though in {% for loops cuz I always have 13 of those stanzas anyway
14:11 pravka joined #salt
14:12 tanta_g I always keep my URLs for salt:// file references absolute with no variables interspersed to keep it easy to read by other people or myself in 3 months though
14:12 tanta_g I think there are arguments for both conventions
14:16 Dev0n seems like you need to have docker credentials set in order to pull from the public hub?
14:16 Dev0n any idea what dockerng requires this but with the docker cli you don't need to auth
14:16 bitc01d joined #salt
14:17 bitc01d Hi
14:17 bitc01d left #salt
14:26 perfectsine joined #salt
14:26 khaije1 joined #salt
14:28 TheoSLC joined #salt
14:29 hasues joined #salt
14:29 hasues left #salt
14:31 rhodgin joined #salt
14:36 pm90_ joined #salt
14:37 dthom91 joined #salt
14:38 LtLefse joined #salt
14:38 pm90___ joined #salt
14:39 berserk joined #salt
14:40 kawa2014 joined #salt
14:42 Brew joined #salt
14:44 cheus joined #salt
14:46 clintberry2 joined #salt
14:53 berserk joined #salt
14:55 mohae joined #salt
14:55 emaninpa joined #salt
14:56 Dev0n ok, found the constraint, https://github.com/saltstack/salt/blob/0e633156aeb306f9c9ae34cbc6faf9967cdc1a97/salt/modules/dockerng.py#L857
14:56 Dev0n not sure why it was made mandatory to supply credentials to pull public repos from the docker hub
14:57 berserk joined #salt
15:02 perfectsine joined #salt
15:08 Jahkeup joined #salt
15:11 _JZ_ joined #salt
15:14 berserk joined #salt
15:14 Rumbles joined #salt
15:16 patchedmonkey joined #salt
15:17 patchedmonkey joined #salt
15:20 TheoSLC joined #salt
15:22 krymzon joined #salt
15:24 winsalt joined #salt
15:26 winsalt has anyone had success with the iis module from https://github.com/saltstack/salt-contrib/blob/master/states/iis.py ?
15:26 dthom91 joined #salt
15:26 av_ joined #salt
15:28 teebes joined #salt
15:29 Fiber^ joined #salt
15:29 av_ Guys is there any way to specify files in requires using `names` parameter or something similar? Check this for example: http://dpaste.com/2PS1HQG (`watch` and `require` blocks)
15:31 larsfronius joined #salt
15:35 perfectsine joined #salt
15:35 pm90_ joined #salt
15:37 patchedmonkey joined #salt
15:38 berserk joined #salt
15:38 zwi joined #salt
15:38 RedundancyD joined #salt
15:39 patchedmonkey joined #salt
15:41 _JZ__ joined #salt
15:48 dthom91 joined #salt
15:51 winsalt joined #salt
15:51 jalbretsen joined #salt
15:51 VSpike Trying to figure out what I'd pass to pkg.del_repo in order to remove a specific repo, based on the output of pkg.list_repos ... any idea?
15:52 pviktori joined #salt
15:52 VSpike On a related note, how bad an idea would it be to have the ubuntu salt PPA and the new saltstack repo enabled on the same machine
15:52 VSpike Of course, deleting the files from /etc/apt/sources.list.d also works :)
15:52 zmalone I would avoid the pkg repo state altogether on deb/ubuntu
15:52 zmalone I just fought with it for a couple hours.
15:53 VSpike I'm talking about the module rather than the state, but yeah it's a tricky so and so
15:54 VSpike I'm trying to work out how to upgrade my minions from 2015.5 to 2015.8
15:54 zmalone I'd just manage the files directly with file.append etc.
15:54 zmalone there were too many bugs for me to make it work
15:57 markm_ joined #salt
16:00 coval3nce joined #salt
16:04 aparsons joined #salt
16:04 alemeno22 joined #salt
16:05 armguy joined #salt
16:06 neocid joined #salt
16:06 bhosmer joined #salt
16:08 Bryson joined #salt
16:08 berserk joined #salt
16:08 bluenemo joined #salt
16:10 bluenemo how do I add 'foo' to the list ['bar', 'bla'] in jinja?
16:13 malinoff joined #salt
16:15 moogyver bluenemo: does mylist.append('foo') not work?
16:15 bluenemo ah, thank you.
16:16 conan_the_destro joined #salt
16:16 moogyver sure.  it's either that or the + sign can concat two lists together
16:17 bluenemo nah. my error was not putting {% %} around my list = [] M( my bad..
16:17 bluenemo is the jinja do statement available with salt?
16:17 bluenemo (just passes to normal py as I understood it)
16:18 bluenemo moogyver, hm but no, wont work:  {%- clone_id_list = [] -%}     {%- for clone_id in vpnconf['hosts'][host]['clone_ids'] -%}     {%- clone_id_list.append(clone_id) -%}      gives me Encountered unknown tag 'clone_id_list'
16:21 bluenemo hm was {% set foo = [] %} but still bugs with the same error. is this   set foo.update() ?
16:21 bluenemo aeh append
16:25 cheus G'Day! Has anyone had an issue with back-to-back `salt.runner` calls in a `state.orch` call? We're seeing it hang while waiting on SAuth for the second call (immediately following the first)?
16:25 cheus v2015.8.0
16:26 berserk joined #salt
16:26 aparsons joined #salt
16:27 ALLmightySPIFF joined #salt
16:28 keltim joined #salt
16:29 moogyver bluenemo: if append doesn't work, try mylist = mylist + ['newelement']
16:30 sunkist joined #salt
16:30 mehakkahlon joined #salt
16:33 bluenemo ah that does the trick thank you moogyver
16:33 toastedpenguin left #salt
16:34 kant joined #salt
16:35 aqua^c joined #salt
16:35 berserk joined #salt
16:35 writtenoff joined #salt
16:35 moogyver bluenemo: sure.  looks like in order for append to work, you need that 'do' extension
16:36 dthom91 joined #salt
16:37 KyleG joined #salt
16:37 KyleG joined #salt
16:37 bluenemo yeah do would be quite lovely with salt. its not in there by default is it? can I load it somehow?
16:37 bluenemo include do? :)
16:38 tedbot joined #salt
16:38 sunkist joined #salt
16:39 breakingmatter joined #salt
16:40 patchedmonkey joined #salt
16:41 moogyver no, the 'do' extension has to be loaded and I don't think there's a way to tell salt to do that.
16:41 katyucha joined #salt
16:45 twork working with the 'users' formula, i'm seeing failures which, i think, are due to the fact that the accounts i'm trying to add are /ALL/IN/SomeWeirdPlace. 'man useradd' has "-b" which seems to handle that, but as i read my logs, salt isn't employing that. is there a way to make that happen?
16:47 ageorgop joined #salt
16:48 twork oh and: the host i set up previous to this already had that base directory in place, and things went fine. so maybe the answer is just to make my profiles depend on a file.directory or something like that
16:51 geekatcmu Can we make a new rule for salt execution modules?  If the module requires a package to be installed (e.g salt.states.pip) the documentation should include appropriate jinja examples for how to fence it off until pip is actually installed.
16:52 geekatcmu Or at the very least a notation that you're going to be rage-facing if you try to use the module without the relevant dependency installed.
16:53 impi joined #salt
16:56 honestly joined #salt
16:58 thalleralexander is there a way to print the last time a file has changed into the file? like only update if the file is update by file.manage?
17:00 JDiPierro thalleralexander: Is the goal of that to have a state that's only run if the file.managed is run? You can use the "onchanges" requisite for that: https://docs.saltstack.com/en/latest/ref/states/requisites.html#onchanges
17:00 tanta_g you can put a requisite state on the dependency of the file update using "- onchanges:" followed up by"  - file: /path/to/file"
17:01 tanta_g oh, whoops
17:02 bhosmer joined #salt
17:02 tanta_g or maybe brew your own by using stat -c '%Z' file compared against date +%s
17:03 honestly joined #salt
17:03 tanta_g the difference between the last modified in epoch seconds vs. the current date time in epoch seconds will show how many seconds elapsed since the last modification
17:03 honestly joined #salt
17:04 clintberry2 joined #salt
17:08 dthom91 joined #salt
17:08 iggy geekatcmu: github is -> that way
17:09 iggy geekatcmu: bonus (but not entirely helpful now), I have an issue open to add source links to the docs pages, so it's easy to find in the sauce
17:09 ViciousLove joined #salt
17:10 geekatcmu I'm mostly raging on behalf of others.  Since I use pyobjects, I can just do if os.path.exists(...):
17:10 geekatcmu But it's one of those little details that does make for pain.
17:11 iggy Yeah, it's kind of a pita sometimes, but if the packages dep'ed on every possible dependency I'd be 4x as ragey
17:12 murrdoc joined #salt
17:14 JDiPierro It'd be cool for modules to have a standard way to declare their dependencies, then Salt can check against that an throw warnings/errors if you're missing something.
17:15 * twork discovers the modern miracle of require_in
17:15 murrdoc twork: listen_in is better
17:16 * twork discovers the modern miracle of listen_in
17:16 * ViciousLove Just used his first onlyif requisite
17:16 murrdoc require_in moves stuff around
17:16 murrdoc have u watched the presentation on why changing ordering is not necessary
17:16 murrdoc or how i got over puppet
17:16 JDiPierro OOOoo I'm unfamiliar with listen_in
17:17 geekatcmu iggy: I don't want dep changes, just a note about "hey, this may fail if the dependencies (not listed here) aren't installed yet.  You should wrap it in something like this...."
17:17 iggy That's something that is in some of the docs (and should be in all of them
17:17 geekatcmu right
17:17 murrdoc geekatcmu:  come work with iggy and me
17:17 geekatcmu Hence my statement about "rule"
17:17 murrdoc our shit is not as painful as yours
17:18 geekatcmu Can I work from home?
17:18 iggy lol
17:18 murrdoc and we need someone to implement puppetdb + vault
17:18 murrdoc depends where home is
17:18 murrdoc and how many days
17:18 geekatcmu Reno
17:18 geekatcmu all
17:18 murrdoc whats reno
17:18 geekatcmu Its the biggest little city in the world!
17:18 hal58th I wouldn't want to work in LA either
17:18 geekatcmu Also, Reno, NV, USA.
17:18 murrdoc ah
17:18 iggy that's basically the first thing anyone asks me
17:18 murrdoc well enjoy your pain
17:18 geekatcmu 8)
17:18 murrdoc plane ?
17:19 murrdoc plain !
17:19 murrdoc (cos reno is so flat)
17:19 twork murrdoc: you're asking me, re. changing ordering pres? if so, no
17:19 murrdoc k
17:19 murrdoc let me hook u up
17:19 geekatcmu yeah, but it's also ~7000 ft. in altitude, so don't use a little plan.
17:19 murrdoc cos thats what i do around here
17:19 twork tx
17:19 geekatcmu s/plan/plane/
17:20 murrdoc that sexy beard https://www.youtube.com/watch?v=yBF055Ye3kg is Ryan_Lane
17:20 shiriru joined #salt
17:20 iggy lol
17:20 murrdoc u guys want to see iggy's presentioant ?
17:20 murrdoc sure
17:21 iggy what about murrdoc's?
17:21 murrdoc https://www.youtube.com/watch?v=fKYkJGGO0fo
17:21 murrdoc murrdoc:  doesnt present
17:21 iggy I seent it
17:22 thalleralexander uh sry JDiPierro tanta_g I'm managing a file and wanted to see when was the last time the file was modified. for that i wanted to add a timestamp to the file but im not sure how to tell salt to only update the timestamp if the file has actually changed. i think this would be tricky because if i just use a date command or something to record the current time and apply that as a variable salt would update the file every time it runs and not just
17:22 thalleralexander if i actually change the pillars or something
17:22 murrdoc and i suck at it
17:22 thalleralexander sry long text :D
17:22 pcn What would be considered the expected lag between an event returning, and the netapi receiving that via the events api?
17:22 murrdoc you want to store the last time a file was changed ?
17:22 tanta_g use 'touch' with a cmd.wait and a watch on the managed file
17:22 thalleralexander something like ansible_managed
17:22 murrdoc what tanta_g said
17:22 murrdoc also tanta g is a great indian name
17:23 tanta_g it's not indian, it's short for 'tantagel' which is always taken
17:23 murrdoc tanta == gimmick
17:23 murrdoc g is like sir
17:23 jmreicha_ joined #salt
17:23 tanta_g oh, interesting, I had no idea murrdoc
17:23 murrdoc so tanta g == sir gimmicks (lary)
17:23 murrdoc lady*
17:23 murrdoc murrdoc is bored
17:23 murrdoc and btw
17:23 murrdoc o/
17:24 * twork gazes upon iggy!
17:25 murrdoc he hawt
17:25 murrdoc i d hit it
17:25 twork ...and yeah that mic sucks
17:25 iggy and they missed part of my presentation
17:25 murrdoc the part where the foreign dude in a yellow shirt was heckling!
17:26 iggy wanted me to come back and re-record it after the conference... "No thanks... better shit to do"
17:26 iggy yeah, that guy was terrible
17:26 berserk joined #salt
17:26 murrdoc he made sense tho
17:26 krymzon joined #salt
17:26 murrdoc just terrible communication skills
17:27 protoz joined #salt
17:27 berserk joined #salt
17:30 pravka joined #salt
17:30 stanchan joined #salt
17:31 pravka joined #salt
17:33 oznah joined #salt
17:34 oznah is there a way to see when last highstate run occurred on a minion?
17:34 oznah bonus points if it can be run from the master
17:35 murrdoc depends on your returner
17:35 winsalt im trying to use a module from salt-contrib, but im getting KeyErrors for all the functions.  I put it in _states, and synced it already, any ideas?
17:36 murrdoc lotsa ideas
17:36 murrdoc none about your specific problem
17:36 murrdoc but i have lotsa ideas
17:38 pm90_ joined #salt
17:40 pm90__ joined #salt
17:42 denys joined #salt
17:43 flyx if I have a file.managed state that creates a file from a jinja template, and that template loads pillar values, how do I tell it to update the file  when the pillar values change?
17:44 hal58th I really don't like the python_shell and the fact that I don't know what works and what doesn't work.
17:45 hal58th Example: This does NOT work: if test -d /etc/zabbix/zabbix_agentd.conf.d; then /bin/true; fi
17:45 hal58th But this DOES work: test -d /etc/zabbix/zabbix_agentd.conf.d && /bin/true || /bin/false
17:46 hal58th Is there anywhere that list what is not supported with the python_shell?
17:54 JDiPierro flyx: Like automatically when someone checks in a change to pillar? You'd need to do that with your own build pipeline. Otherwise just run the state and it'll edit the file with the updated pillar.
17:55 hal58th Should I make a ticket about this request? Do other people have this problem?
17:55 flyx JDiPierro: okay, thanks
17:56 patchedmonkey joined #salt
17:57 Ch3LL_ joined #salt
17:57 baweaver joined #salt
17:58 baweaver joined #salt
17:58 Ch3LL_ joined #salt
17:59 bVector flyx: if you run the state again, it should change the file if the pillar value changed
18:00 bVector flyx: so just tell it to run the state on a regular basis if you dont need it to be tightly coupled to pillar value changes
18:01 Ch3LL_ joined #salt
18:01 flyx bVector: my use case is to call salt-call on my server configuration to update it. I don't have a client-server setup
18:02 bVector you could still use the scheduler I believe
18:03 dthom91 joined #salt
18:08 baweaver joined #salt
18:11 iggy winsalt: which one?
18:12 jmreicha joined #salt
18:12 GreatSnoopy joined #salt
18:12 iggy hal58th: they changed it "for security"... I don't think they put a lot of thought into what it would break or documenting anything about it
18:13 iggy hal58th: but yeah, it should probably be documented somewhere (not really sure where)
18:13 bVector ah, security!
18:14 winsalt iggy: the iis.py state from salt-contrib
18:15 iggy winsalt: did you also copy the iis.py module?
18:15 winsalt no, do i need that in _modules?
18:15 iggy (and it has some dependencies as well)
18:15 iggy winsalt: yeah
18:15 zsoftich1 joined #salt
18:16 iggy if you look in the __virtual__ function, you can see that it's checking if the iis module is loaded
18:16 winsalt ah
18:16 fede_ joined #salt
18:17 fede_ left #salt
18:17 zsoftich1 Is there a way to require a state to be applied if another would make a change? For example in order to update a binary I need to stop the service first, but I only want to stop the service if the binary needs to be updated
18:17 jmreicha_ joined #salt
18:17 iggy prereq
18:17 twork murrdoc: that presentation is great. ...right up to about 5/6 through when he says "no formulas ever". single-monkey-shop n00b here doesn't know how to live without formulas, at least so far down here in the foothills
18:18 bVector zsoftich1: `onchanges` perhaps
18:18 bVector zsoftich1: https://docs.saltstack.com/en/latest/ref/states/requisites.html#onchanges
18:18 iggy twork: if you watch some more of his talks, you'll see that they basically have each dev  be responsible for their own service's states...
18:19 zsoftich1 thanks iggy. prereq looks like what I want
18:19 giantlock joined #salt
18:19 fedepalla joined #salt
18:20 twork iggy: he's said that already in the one i'm watching. but... hm, maybe when he says "no formulas ever" that doesn't include "never use a formula to crib from when you're setting up the base OS"?
18:20 bVector which talk is 'no formulas ever'
18:21 twork bVector: https://www.youtube.com/watch?v=yBF055Ye3kg
18:22 iggy it actually makes sense for their situation
18:22 upgrayedd_ joined #salt
18:22 iggy it's definitely not for everyone
18:22 twork ok, so... is the "no formulas" business because of the modularity of them? not so much because of the cheating business, but because changes in one will fuck up another?
18:23 iggy it's more just that it's not something they need I think
18:23 twork hm. i need to watch it again. when he said "no formulas ever no no no no" that kind of stuck in my craw.
18:23 dthom91 joined #salt
18:23 iggy if you have one base OS and you're constantly wiping/redeploying everything... formulas don't buy you a whole lot
18:24 twork yeah, that's not our sitch, at least not yet
18:24 twork i can wish...
18:25 twork ...but yeah, i get it. in their world, individual subcomponents don't come and go really. the component is the whole build.
18:26 alemeno22 joined #salt
18:26 twork here, we're still stuck in (read: not even up to) dev -> test -> prod with an OS staying pretty well steady underneath
18:28 berserk joined #salt
18:28 berserk joined #salt
18:30 murrdoc how do i do salt [pillar.get'](somehting) lenth
18:31 hal58th iggy, yeah if I could look up what does and doesn't work in the code, I would do that. But I am just so lost in that code, even though it's organized.
18:31 murrdoc twork:  difference is ryan doesnt trust git formulas
18:31 JPaul joined #salt
18:32 twork murrdoc: if i understand the meaning, neither do i really, i just use them as a starting point.
18:33 cswang_ joined #salt
18:33 JPaul joined #salt
18:40 tmclaugh[work] joined #salt
18:42 berserk joined #salt
18:44 murrdoc so a pillar is a list
18:44 murrdoc how do i check if it has a length
18:44 murrdoc SOMEONE HELP
18:44 murrdoc {% if salt['pillar.get']('pillar:name:please')|length > 0 %}
18:45 bVector len(salt['pillar.get']('pillar:name:please')) maybe?
18:45 mpanetta murrdoc: I use the jinja length filter like that
18:45 mpanetta Is it not working?
18:45 murrdoc i havent tried it
18:45 murrdoc being lazy
18:45 mpanetta That should work
18:45 mpanetta Hah!
18:45 mpanetta You could have had it working by now :P
18:46 * twork applauds murrdoc. come here first.
18:46 iggy don't encourage him to take shortcuts
18:46 murrdoc is length spelled like that
18:46 iggy someone is going to have to clean all that up someday
18:46 mpanetta yar
18:47 fyb3r joined #salt
18:48 twork btw murrrdoc, if nothing else, that talk reminded me that salt does things sequentially in a file. that may be part (most? all?) of my present problem, having stuff scattered in different files just because try to keep (their good stuff) isolated from (all my awful crap)
18:48 murrdoc well u can include shit
18:48 murrdoc which is what i do
18:48 murrdoc all directories have an init.sls
18:48 murrdoc which includes everything
18:49 twork murrdoc: i do, but i've been putting my includes at the ends of files
18:49 murrdoc for eg the template formula
18:49 murrdoc u need some confidence in your self twork
18:49 murrdoc start believing in your self
18:49 murrdoc no one else will
18:49 murrdoc :D
18:49 iggy I could swear that you used to have to have includes first
18:50 iggy in any case, that's the way I've always done it
18:50 iggy easier to find too
18:52 domel joined #salt
18:52 domel greetings
18:52 twork last time i started being brave, i was in the office past time for the last train home, fixing fixing fixing...
18:52 twork salt is powerful.
18:53 domel hopefully quick one... is there a way to merge data from pillar and append to default values set in yaml file rather then override?
18:54 Brew joined #salt
18:55 sgargan joined #salt
18:55 iggy domel: you mean like the way map.jinja (in a lot of the formulas) does it?
18:56 patchedmonkey joined #salt
18:56 rim-k joined #salt
18:57 domel yes
18:59 murrdoc i think he just answered your question
18:59 murrdoc by teaching u how to fix
18:59 murrdoc fish
18:59 murrdoc TROLL MASTER 9000
18:59 murrdoc now i am going to hit someone with an RTFM
18:59 * murrdoc waits
19:00 JDiPierro I like the way the mongodb-formula handles defaults and OS-specific defaults: https://github.com/saltstack-formulas/mongodb-formula/blob/master/mongodb/map.jinja
19:00 iggy you're welcome
19:00 JDiPierro :) <3
19:00 JDiPierro That should be a standard
19:01 iggy we're getting there
19:02 * twork steps forward to receive murrdoc's beating (probably). so this sequential thing. i have stuff "B" that depends on stuf "A". B is in some file, A is in the init. if i include B up there atop A... it'll fail, yeah?
19:02 bVector team wants to send json/yeml or something via aws userdata, some app config stuff, api keys, hostname, etc, not sure whether I should parse this out to grains, minion config or other
19:02 bVector yaml*
19:02 babilen JDiPierro: Unfortunately it is slightly broken, but the style is good, yeah
19:02 aboe joined #salt
19:03 twork ...so if that's the case, that implies include's scattered all over a large file that include's them.
19:04 JDiPierro babilen: Yeah I encountered an issue with the format when trying to port it to the redis-formula... They have a section of their OS defaults that's merged by grain "oscodename" on Debian system sand "osfinger" on RedHat systems. Couldn't think of a way to emulate that.
19:06 domel yes exactly
19:07 denys_ joined #salt
19:08 dthom91 joined #salt
19:08 tanta_g joined #salt
19:09 tanta_g my only criticism of formulas is that they're so generic that you have to customize them
19:09 tanta_g just like any shared code, unless it would be a library or something
19:09 twork tanta_g: i get the impression that formulas try (some better than others) to be library-like
19:10 orion__ joined #salt
19:10 twork ...but i this domain, generic is a tall order to hit
19:11 tanta_g what I love about them is a live reference
19:11 tanta_g I have found many interesting patterns and techniques by reading the formulas
19:11 iggy bVector: I like grains (I think there might be something in salt-contrib already), but keep in mind that grains set in the config file can overwrite grains modules
19:12 iggy tanta_g: https://github.com/SS-archive/salt-states is good for perusing too
19:12 iggy I mean the odd naming aside
19:13 tanta_g thanks iggy
19:16 ashirogl joined #salt
19:16 ashirogl joined #salt
19:17 upgrayedd_ joined #salt
19:22 berserk joined #salt
19:32 larsfronius joined #salt
19:34 baweaver joined #salt
19:38 hasues joined #salt
19:38 EgyaK joined #salt
19:38 hasues left #salt
19:38 fii-fi joined #salt
19:39 fii-fi afternoon/evening
19:39 keimlink joined #salt
19:40 fii-fi Anyone knows why I'm getting this please ? https://paste.fedoraproject.org/275492/41603771/
19:40 quasiben1 joined #salt
19:40 fii-fi salt-cloud fails after that
19:41 berserk joined #salt
19:41 JDiPierro joined #salt
19:43 fredvd joined #salt
19:45 thalleralexander joined #salt
19:46 fii-fi Crap - user error
19:47 fii-fi This thing rocks man ..
19:47 fii-fi ta
19:47 fii-fi left #salt
19:51 TheoSLC joined #salt
19:55 bhosmer joined #salt
19:55 pm90_ joined #salt
19:55 bhosmer joined #salt
19:56 SunPowered joined #salt
19:56 pm90___ joined #salt
19:59 Akhter joined #salt
20:01 aparsons_ joined #salt
20:03 ashirogl joined #salt
20:05 Dev0n joined #salt
20:06 baweaver joined #salt
20:08 ThomasJ joined #salt
20:11 jhauser joined #salt
20:11 aqua^c joined #salt
20:11 tmclaugh[work] joined #salt
20:12 dthom91 joined #salt
20:14 dthom911 joined #salt
20:17 berserk joined #salt
20:18 kawa2014 joined #salt
20:21 dthom911 joined #salt
20:31 markm joined #salt
20:31 cberndt joined #salt
20:34 sgargan joined #salt
20:35 breakingmatter joined #salt
20:37 dthom91 joined #salt
20:37 zsoftich1 joined #salt
20:37 dthom911 joined #salt
20:42 Jeff_ joined #salt
20:42 moogyver how do you stop an orchestrate run on failure of one of the steps?  even tho the exec module is returning false, it's just going to the next step.
20:44 JeffTang joined #salt
20:44 patchedmonkey joined #salt
20:45 armyriad joined #salt
20:45 KingJ joined #salt
20:46 kuromagi joined #salt
20:46 ThomasJ joined #salt
20:46 Ch3LL_ joined #salt
20:46 Bryson joined #salt
20:46 mohae joined #salt
20:46 scoates joined #salt
20:46 trph joined #salt
20:46 GrueMaster joined #salt
20:46 briner joined #salt
20:46 dalibro joined #salt
20:46 geekatcmu joined #salt
20:46 unusedPhD_ joined #salt
20:46 philpep joined #salt
20:46 penguinpowernz joined #salt
20:46 abele joined #salt
20:46 sinonick joined #salt
20:46 Emantor joined #salt
20:46 aron_kexp joined #salt
20:46 lude1 joined #salt
20:46 yac joined #salt
20:46 crashmag joined #salt
20:46 TaiSHi joined #salt
20:46 synical joined #salt
20:46 eliasp joined #salt
20:46 twobitsprite joined #salt
20:46 xMopxShell joined #salt
20:46 nlb joined #salt
20:46 Laogeodritt joined #salt
20:46 _ikke_ joined #salt
20:46 rubenb joined #salt
20:46 voxxit joined #salt
20:46 cwyse joined #salt
20:46 qman__ joined #salt
20:46 bstaz joined #salt
20:46 akitada joined #salt
20:46 antonw joined #salt
20:46 lkannan joined #salt
20:46 ws2k3 joined #salt
20:46 |_[O_O]_| joined #salt
20:46 egil joined #salt
20:46 zz_Cidan joined #salt
20:46 virusuy joined #salt
20:46 evilrob joined #salt
20:46 berto- joined #salt
20:46 tr_h joined #salt
20:46 kavakava joined #salt
20:46 clone1018_ joined #salt
20:46 al joined #salt
20:46 dwfreed joined #salt
20:46 hajhatten joined #salt
20:46 Micromus joined #salt
20:46 JeffTang Is there a way to set grains just on the salt server?  I have some information that I want to script that would be much easier to authorize if I just made one call from the master.
20:47 JeffTang Or do I have to run a script that populates some static grain files?
20:47 xMopxShell joined #salt
20:48 sinonick joined #salt
20:48 evilrob joined #salt
20:49 Archwyrm joined #salt
20:50 twork accumulator question... reading from https://docs.saltstack.com/en/latest/ref/states/all/salt.states.file.html#salt.states.file.accumulated
20:50 twork can two file templates read from the same file.accumulated?
20:51 s_kunk joined #salt
20:51 s_kunk joined #salt
20:51 lowfive joined #salt
20:51 dustywusty joined #salt
20:51 bryguy joined #salt
20:51 rideh joined #salt
20:52 jcockhren joined #salt
20:52 smkelly joined #salt
20:53 jhauser joined #salt
20:53 fyb3r left #salt
20:54 IanV0rn2341 joined #salt
20:55 pmcnabb joined #salt
20:56 amontalban joined #salt
21:00 subsignal joined #salt
21:01 ernetas joined #salt
21:03 akitada joined #salt
21:05 viq joined #salt
21:09 dthom91 joined #salt
21:12 ashirogl joined #salt
21:12 iggy moogyver: failhard: true should work in runners
21:15 dthom91 joined #salt
21:15 moogyver iggy: how do you do that w/ the orchestrate runner and execution modules though?  only way I've gotten the orch runner to stop is by returning a non-zero exit code ( test.retcode was what I was testing with )
21:15 moogyver test.false still 'succeeds', so orch runner continues on
21:21 kevinquinnyo joined #salt
21:22 DanyC joined #salt
21:22 kevinquinnyo i had a typo in my pillar directory's top.sls and after fixing it, the file contents seem to be cached
21:22 kevinquinnyo becuase I keep getting the error
21:22 kevinquinnyo any ideas on that?
21:23 DanyC which one is most popular: salt publish or salt mine ?
21:23 DanyC popular = what people use most in their setup
21:23 dthom911 joined #salt
21:30 teebes joined #salt
21:30 murrdoc whats the best way to remove a line in salt
21:30 armguy joined #salt
21:32 Gareth wasn't there a 'ensure line absent' in the file state?
21:36 Slimmons joined #salt
21:43 baweaver joined #salt
21:43 clintberry2 joined #salt
21:44 Ymage joined #salt
21:45 murrdoc Gareth:  bro
21:45 murrdoc schedule.present
21:45 murrdoc ALWAYS runs
21:45 murrdoc :(
21:46 Gareth damn right it does.  check the code.  it's my superman 3 scheme.
21:46 X67r joined #salt
21:48 murrdoc let me pm you
21:49 Gareth murrdoc: fire away.
21:54 twork rendering fails. "conflicting id". on a string that (find and grep assure me) occurs once in the whole damn tree. not a request for much as a plea of anguish and i know nowhere else to turn my bootless etc. etc. etc.
21:55 Cyis twork: possibly it's included twice?
21:55 twork hm. there's a thought... worth a look anyhow... doubt it, but it beats staring at the ceiling...
21:56 Cyis I've done my fair share of chasing red herrings
21:56 twork as is the way.
21:59 falenn joined #salt
21:59 twork ok, doesn't seem so.
21:59 twork but it kept me away from the streets for a few minutes so thanks for that
22:00 ashirogl joined #salt
22:01 twork ...actually... i'm misinterpreting something.
22:02 twork the error (and i'd gist it if i had an idea of what context to gist): Rendering SLS 'base:vsftpd.config' failed: Conflicting ID 'vsftpd_user_list'
22:03 twork that string occurs once in my tree. but thinking i might be missing something i found that once, altered it, and got that error changd to the new string -- 'vsftpd_user_list-GOMF' or whatever
22:04 twork egad, was that english...
22:04 twork perhaps this is a sign.
22:05 twork but dammit i'd sure like to have something to show on the day before i pack it in
22:08 Dev0n anyone using salt.states.dockerng, were you able to get your salt.states.dockerng.running to pull the image from the public dokcer hub repo?
22:08 Dev0n it states in the docs that it does but I get a 404 stating that the image couldn't be found
22:11 pm90_ joined #salt
22:19 sinonick joined #salt
22:19 dthom91 joined #salt
22:20 armonge_ joined #salt
22:25 Ryan_Lane nice
22:25 Ryan_Lane whoops
22:25 Ryan_Lane wrong channel :)
22:26 mikepea joined #salt
22:27 bfoxwell joined #salt
22:27 goki joined #salt
22:29 supermike__ joined #salt
22:33 gtaylor joined #salt
22:33 twodayslate joined #salt
22:34 iggy moogyver: ahh, I see what you're saying... yeah, that's a tough one
22:34 akitada joined #salt
22:34 Cyis will a file.recursive directive merge over multiple file_roots that match or is it first come first served still?
22:35 iggy define merge
22:36 BogdanR joined #salt
22:37 abele joined #salt
22:38 aparsons joined #salt
22:38 X67r joined #salt
22:40 Cyis iggy: I'm using the salt-formula to manage both my salt master and minions... I'd like to add an additional file template to the minion.d directory... I'd like to just be able to create the salt/file/minion.d directory in my states repo without having to copy the templated files that already exist in that path on the salt-formula which would be lower in the list of file_roots on my salt master
22:40 armguy joined #salt
22:41 Cyis looking through the existint salt/files/minion.d/f_defaults.conf it doesn't look like it handles additional variables being set
22:41 perfectsine joined #salt
22:42 CaptTofu joined #salt
22:42 tiadobatima joined #salt
22:44 hacks joined #salt
22:44 doriftoshoes joined #salt
22:46 imanc joined #salt
22:47 baweaver joined #salt
22:49 DanyC joined #salt
22:51 breakingmatter joined #salt
22:53 ashirogl joined #salt
22:55 Cyis well looks like testing shows that it does merge the different files but if there are two files the same name it takes the first one found
22:55 moogyver iggy: :( was hoping the orchestrate runner was going to be the answer to my problems
22:55 Cyis now to right my template for the file I want
22:57 Cyis unless I'm missing something and the minion is able to pull up returner config info from pillar like it does mine_functions
23:04 cberndt joined #salt
23:06 zmalone joined #salt
23:08 iggy should (assuming it uses config.get)
23:09 indispeq joined #salt
23:11 armguy joined #salt
23:11 TheoSLC joined #salt
23:13 indispeq joined #salt
23:15 Cyis I'll have to take a peek through source code later and see
23:17 Striki joined #salt
23:21 antonw_ joined #salt
23:24 munhitsu joined #salt
23:24 baweaver joined #salt
23:24 tiadobatima1 joined #salt
23:27 Dev0n hey, was there a reason for the dockering module to require authentication for the public repo?
23:27 mattl joined #salt
23:27 copelco joined #salt
23:30 akoumjian joined #salt
23:31 zmalone joined #salt
23:31 aparsons joined #salt
23:32 bstaz joined #salt
23:33 JonGretar joined #salt
23:34 larsfronius joined #salt
23:34 Cyis anyone used the hipchat returner before?
23:34 mihait joined #salt
23:35 grepory joined #salt
23:36 davedash joined #salt
23:37 ramblinpeck joined #salt
23:39 Cyis I tried following the example in the doc using yaml formatting but when I do I get and error that hipchat.room_id is not defined
23:43 LinuxHorn joined #salt
23:45 m0nky joined #salt
23:49 DanyC joined #salt
23:51 kevinquinnyo2 joined #salt
23:51 aqua^c joined #salt
23:52 Gareth Cyis: I wrote most of that returner.  Do you have the room_id defined?
23:53 Cyis Gareth: let me throw my first attempt at a /etc/salt/minion.d/returners.conf with my settings ... I'm trying both v1 and v2 but haven't been successful yet
23:55 murrdoc basepi:  Gareth:  is it true each runner takes up a thread ?
23:55 Cyis Gareth: okay... so butchered my original file but I have now got it using v1 and successfully got it to send a notice
23:55 Gareth murrdoc: that I do not know.  as a guess I'd say yes.
23:55 rim-k joined #salt
23:55 Gareth Cyis: okay cool.
23:56 armguy joined #salt
23:56 murrdoc ouch
23:56 Cyis though I'd like to get v2 working instead... and would like to figure out why it didn't work using the yaml formatting
23:56 murrdoc basepi:  fix runners
23:56 murrdoc basepi:  pretty please, with suger on top
23:56 murrdoc also utahdave!
23:57 Gareth Cyis: doesn't matter if you're using v1 or v2, you need to pass the room_id.
23:57 Cyis I had room_id
23:58 zmalone joined #salt
23:58 Gareth and it still complained?
23:58 Cyis Gareth: https://gist.github.com/jbouse/6d0c101b7eacc1e07996
23:59 * Gareth looks
23:59 Cyis api_key is obviously not full key
23:59 Gareth ah I see.

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