Perl 6 - the future is here, just unevenly distributed

IRC log for #salt, 2017-03-01

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

All times shown according to UTC.

Time Nick Message
00:03 whytewolf RonWilliams: I just updated my salt setup to 2016.11.3 no 404
00:03 whytewolf [like seconds ago]
00:05 whytewolf I'm on centos 7
00:05 RonWilliams @CeBe https://gist.github.com/RonWilliams/643f1db9243d1225606e9ca5c27c3d65
00:05 spuder joined #salt
00:08 whytewolf i don't see a base directory in that location
00:09 whytewolf what does your repo file look like and how did you install the repo?
00:10 RonWilliams It's not, but that's only because of Salt's download. It's pulling that page/error from http://repo.saltstack.com/yum/redhat/7/x86_64/latest/base/RPM-GPG-KEY-CentOS-7 (see the source and it matches).
00:11 whytewolf yay with out a base directory at that location that file can't exist
00:11 whytewolf the location i see for the key file is here http://repo.saltstack.com/yum/redhat/7/x86_64/latest/SALTSTACK-GPG-KEY.pub
00:12 RonWilliams So the inclusion of /base is the issue?
00:12 whytewolf well, base and the name of the key file
00:13 whytewolf humm, looks like it did change...
00:13 ws2k3 joined #salt
00:13 whytewolf gtmanfred: who handled the 2016.11.3 update?
00:14 gtmanfred hrm?
00:14 whytewolf there is a directory missing. might be other packages also.
00:15 whytewolf 2016.11.2 had a base directory with a keyfile in it and some major packages. but that isn't in 2016.11.3
00:15 RonWilliams This was working earlier today. I did an install earlier and I can give you an exact timestamp when I did the install today and it worked.
00:15 gtmanfred hrm
00:16 whytewolf RonWilliams: 2016.11.3 was released this afternoon.
00:16 gtmanfred RonWilliams: will you open an issue on https://github.com/saltstack/salt-pack and i will ping david about it
00:16 RonWilliams Everything ground to a halt because I heavily use docker hub and AWS was down, so I stopped setting up systems with Salt...
00:16 RonWilliams Ah. That explains. :)
00:16 RonWilliams Sure!
00:16 gtmanfred thanks!
00:16 gtmanfred gimme the link so I can just give that to him directly once the issue is created
00:18 gtmanfred RonWilliams: we installed on clean images today to test it, and it was all working here, but yeah, if you could open that issue, david will be in contact
00:19 RonWilliams @gtmanfred: Testing with a RHEL7 clean install right now as well.
00:20 gtmanfred RonWilliams: you are using the 2016.11 repo rpm right?
00:20 aphor Who here thinks it would be a good idea to merge the ntp and netntp state modules?
00:21 gtmanfred aphor: i do not, because they are for very different things
00:21 whytewolf yeah. big NO on that
00:22 dendazen joined #salt
00:22 whytewolf netntp is for NAPALM salt-proxy
00:22 gtmanfred RonWilliams: using this rpm? http://repo.saltstack.com/yum/redhat/salt-repo-latest-1.el7.noarch.rpm
00:22 hoonetorg joined #salt
00:23 whytewolf aphor: however... if you could get the ntp module to support more then windows. that would be nice
00:23 gtmanfred :+1:
00:24 RonWilliams https://github.com/saltstack/salt-pack/issues/220
00:24 saltstackbot [#220][OPEN] SaltStack 2016.11.3 release causes key download 404 error | During SaltStack install with a new bootstrap, the following error occurs:...
00:25 CeBe whytewolf: coming back to the git hook thing. If I would apply all states of the minions via orchestration, I could just include a file like yours in all states and it would pull the latest changes without the need for a git hook, correct?
00:25 gtmanfred RonWilliams: he says he will fix it in the morning
00:26 whytewolf CeBe: in essence you could just put a highstate orchestration stanza on the bottom so yes
00:27 Jesus0190 joined #salt
00:27 CeBe whytewolf: what do you mean with "on the bottom"?
00:27 gtmanfred RonWilliams: as a work around for now, you should be able to set http://repo.saltstack.com/yum/redhat/latest/x86_64/archive/2016.11.2/base/ as the url for the base repo until it is fixed
00:27 whytewolf or something like this https://github.com/whytewolf/salt-phase0-states/blob/master/orch/mysql.sls which is my mysql orch setup that calls that other orchestration first
00:27 gtmanfred aight, i am out for the evening o/
00:27 CeBe yeah, that is what I had in ming
00:27 CeBe *mind
00:27 RonWilliams gtmanfred: Thank you! To confirm, I was successful earlier today using the 2016.11.2 version, but it will not install now with the 2016.11.3 release.
00:28 * CeBe needs to read up on what highstate means too...
00:28 whytewolf highstate is the name for running all states in the top
00:28 gtmanfred RonWilliams: you could also install 2016.11.2, and then upgrade the archive to point to 11.3, and it will all work
00:29 gtmanfred RonWilliams: yeah, you can install epel-release and then it won't need base.
00:29 gtmanfred or should be able to
00:29 CeBe whytewolf: I had never defined any states in top so far :)
00:30 RonWilliams Hmm. I guess I could add that to my setup and then it won't be an issue.
00:31 whytewolf yeah epel wouldn't be a fix for me if i moved forward with my openstack rebuild tonight [which isn't happening] openstack and epel do not get along nowdays
00:32 RonWilliams I could just be patient and get off work at 5:30PM :)
00:32 whytewolf lol ;) that seems like the best route
00:39 ninjada joined #salt
00:42 RonWilliams wytewolf: Is this the mythical work-life balance people talk about?
00:43 whytewolf I wouldn't know
00:44 aphor Well, I hate that the ntp module does not actually do ntp, just Windows bastard sntp WinTM client.
00:45 whytewolf aphor: that is a hated thing yes. but it is difficult to support other operating systems ntp when there are so many different ntp packages on other systems. they don't all use ntpd
00:46 scsinutz joined #salt
00:46 whytewolf most of the time it is just easier to file.manage the config file of what ever ntp client is in use
00:47 aphor whytewolf: I'd use the OS default ntp packages for RH, Debian/Ubuntu, and FreeBSD just to show how it should be done, and I'd add execution module calls to test if the time is in sync.
00:47 aphor Then the state module could include a "synced" state.
00:48 whytewolf okay, os default package. chrony for "redhat" 7, but ntpd on 6 and below. and ntpd on debian/ubuntu but configured differently then the ntpd on redhat 6 and below
00:49 aphor I see now netntp is for NAPALM router ntp server control.
00:50 aphor Step 1: wrap all the existing states in grains.os checks for Windows.
00:51 aphor What's the primary Windows minion target these days? Win10?
00:51 DEger joined #salt
00:52 whytewolf I don't know i don't use windows
00:54 aphor me either, but I also hate regressions.
00:55 aphor Who here can speak for all those caring about Windows minions?
00:55 aphor Who here can speak for all those needing Windows minions?
00:55 aphor whoa glitchy.
00:56 whytewolf honestly you can probley check osfamily instead of os
00:56 aphor good idea
01:01 raspado_ joined #salt
01:09 filippos joined #salt
01:15 glyf joined #salt
01:17 ninjada joined #salt
01:20 netcho_ joined #salt
01:27 twork_ ok, i have come here seeking aid for this issue in the past; i've received it; but well.  i've learned a lot since the last time and here i am again.
01:28 twork_ https://gist.github.com/twork/70a1a7d4225c5e0c1f3a91165beb115b
01:28 hemebond1 "is there some way to have a set of pillar data appear under differentent                       names depending on the context?"
01:28 hemebond1 Yes
01:29 twork_ hooray!
01:29 cachedout joined #salt
01:29 ninjada joined #salt
01:30 hemebond1 I guess this is where I explain...
01:30 hemebond1 Jinja can import variables and data from other files. Just do that.
01:30 twork_ hemebond1: am i about to feel really dumb?
01:30 hemebond1 e.g., I have a file, globals.jinja, that I import into other files. globals.jinja is basically shared data.
01:30 twork_ ok, i do not yet feel really dumb.  but that's definitely a clue.
01:32 hemebond1 In globals.jinja I have {%- load_yaml as g %} YAML shared data goes here {% endload %}
01:33 hemebond1 In the other files I have {%- from "globals.jinja" import g, icinga_check %}
01:33 hemebond1 (icinga_check is just a macro I use throughout my pillars)
01:36 orionx joined #salt
01:38 twork_ hemebond1: ok thanks.  off i go to tinker.
01:39 hemebond1 Good luck 👍
01:40 twork_ thanks.  i may be back with the same question in different words.  again.  but this is definitely more than i woke up with.
01:49 ninjada joined #salt
02:01 hoonetorg joined #salt
02:02 scoates joined #salt
02:09 Nahual joined #salt
02:12 ninjada joined #salt
02:13 fracklen joined #salt
02:18 spuder joined #salt
02:38 prg3 joined #salt
02:46 catpiggest joined #salt
02:48 ilbot3 joined #salt
02:48 Topic for #salt is now Welcome to #salt! <+> Latest Versions: 2016.3.5, 2016.11.3 <+> Support: https://www.saltstack.com/support/ <+> Logs: http://irclog.perlgeek.de/salt/ <+> Paste: https://gist.github.com/ (please don't multiline paste into channel) <+> See also: #salt-devel, #salt-offtopic <+> Ask with patience as we are volunteers and may not have immediate answers
02:49 dps_ joined #salt
03:24 icebal_ joined #salt
03:42 djgerm can reactor states have the same sort of jinjaing as normal states?
03:42 hemebond1 Yes.
03:49 onlyanegg joined #salt
04:01 ivanjaros joined #salt
04:09 whytewolf there is some things to remeber. reactors are handled as a master scope. and have a piece of data called data that contains the event information.
04:10 hemebond1 Hmm. But they also have info about the minion, no?
04:10 hemebond1 My reactor state references grains.
04:11 djgerm wowa really?
04:11 whytewolf pillars also have access to grains yet are rendered on the master
04:11 hemebond1 Oh that's what you meant.
04:11 djgerm oh NM. I was thinking in the context of my reactor state which can't use grain data (cause it's on delete/destroy events)
04:13 whytewolf it is important to know the scope to know how to treat things like mines [in the master scope you have to use the mine runner, instead of the mine module]
04:13 whytewolf also pillars are different in the master scope
04:17 cyborg-one joined #salt
04:23 nafg It would be nice if on each page of the documentation, there was a link to edit that page on github (which for most people walks you through creating a fork and a pull request)
04:24 nafg (meaning for non-collaborators)
04:24 nafg There's so much in the documentation that needs to be cleaned up, I think that would happen a lot faster if the means of doing so was surfaced better
04:25 scsinutz joined #salt
04:25 rdas joined #salt
04:25 raspado joined #salt
04:26 jfelchner joined #salt
04:26 nafg examples of sites that do that: https://playframework.com/documentation/2.5.x/Home on the bottom of each page it says Found an error in this documentation? The source code for this page can be found [here]. After reading the [documentation guidelines], please feel free to contribute a pull request.
04:27 nafg http://www.scala-lang.org/documentation/getting-started.html in the right sidebar - Problem with this page? Please help us fix it! (whole sentence is  a link)
04:28 spuder joined #salt
04:29 djgerm that's impressive and smart
04:29 stooj joined #salt
04:30 nafg As an example, the documentation is full if "before version X it was like this, but after version Y it was like that, and in between ...." I'm guessing that's because originally the site didn't have a version switcher. Now that it does, and you can view the docs for whichever version you want, it only adds confusion. In any case it could be separated out
04:30 nafg more clearly. It's very hard to follow what's what.
04:30 nafg djgerm: Any idea how to try to get something like that done for Salt?
04:31 whytewolf elbow greese and stepping up to the plate
04:31 whytewolf it isn't going to be easy
04:31 nafg whytewolf: specifics
04:31 nafg Like, how are the docs generated
04:31 nafg where code to do it go
04:31 nafg Or, if there is any red tape that needs to be followed first
04:32 whytewolf https://github.com/saltstack/salt/tree/develop/doc as well as in each module [generated out of the pydocs]
04:32 whytewolf and here is the convension guide line https://docs.saltstack.com/en/latest/topics/development/conventions/documentation.html
04:33 nafg whytewolf: I know next to nothing about python. I guess you're saying that the modules are vanilla pydocs which I'm guessing are the analogue of javadocs etc. etc., and the link you gave is the structured "prose" docs which are generated independently?
04:34 whytewolf yeah pretty much.
04:34 Eugene joined #salt
04:34 whytewolf it is all generated using Sphinx
04:35 whytewolf which combines the different ways of documenting into the full site that is seen
04:35 hoonetorg joined #salt
04:35 brd_ It is pretty easy
04:37 whytewolf pretty easy to make simple changes. unless as a first step just changing the template to point to the doc base directory instead of getting granuler.
04:37 nafg whytewolf: I located another sphinx site that has such a link. I don't know sphinx though. I don't know whether it's just the snippet I'm seeing or it needs some plugin. Here's what I found:
04:37 nafg https://github.com/slick/slick/blob/master/slick/src/sphinx/theme/layout.html#L22
04:37 nafg <span class="github"><a href="{{ theme_github }}{{pagename}}.rst">edit this page on github</a><span>
04:38 nafg yeah it looks like it's referencing some theme
04:38 rem5 joined #salt
04:39 whytewolf I'm not saying impossable because it is possable. just not going to be easy off the bat
04:39 nafg I didn't understand what you wrote
04:41 whytewolf basicly setup something like what you are saying for the modules/state/etc etc, and point to doc root for the "prose" part
04:42 spuder joined #salt
04:42 nafg still trying to figure out what slick's site is doing
04:43 whytewolf which would be easier. as you can use the modules section as a test.... iirc
04:43 nafg looking at https://github.com/slick/slick/blob/master/slick/src/sphinx/conf.py
04:43 nafg they have `html_theme = "theme"` followed by `html_theme_options = { 'github' : 'https://github.com/slick/slick/edit/master/slick/src/sphinx/' }`
04:45 whytewolf I'm not seeing the link on their documentation either
04:45 whytewolf ahh it is up above
04:46 nafg seems it's built into the theme called "theme", and you have your own theme, so won't help
04:47 whytewolf well if we could find the theme might be able to find the code they use to generate that
04:47 nafg oh they also have in repo
04:47 nafg oh i'm confused
04:48 nafg the link I posted before _is_ the theme
04:48 whytewolf yeah
04:48 nafg the key is {{pagename}} that's appended to {{theme_github}} which is just a prefix setting
04:48 whytewolf need to find where they are setting theme_github and pagename
04:49 nafg maybe I was wrong in assuming html_theme_options.github became theme_github
04:49 nafg but it seems to fit
04:49 whytewolf oh doh pagename is set by sphinx
04:49 nafg and then they just append .rst to that
04:49 nafg whytewolf: in salt is sphinx pagename 1:1 with github path?
04:50 nafg whytewolf: in salt is sphinx pagename 1:1 with github (sub)path?
04:50 whytewolf no
04:50 nafg oops, used to gitter/slack style editing ;)
04:50 nafg mm so it probably won't work
04:50 whytewolf will take more code
04:50 whytewolf but it isn't impossable
04:50 nafg how do I play with it locally
04:51 whytewolf https://docs.saltstack.com/en/latest/topics/development/conventions/documentation.html#building-the-documentation
04:52 whytewolf it is pretty easy to build the documentation
04:52 nafg any particular version of sphinx needed?
04:52 whytewolf not really.
04:52 nafg apt says it would install 1.4.8-1
04:52 nafg ok
04:53 scsinutz joined #salt
04:53 whytewolf you are of coarse going to need a git cloned copy of salt.
04:53 nafg yeah just did it
04:54 nafg The 'sphinx-build' command was not found
04:54 whytewolf 0.o
04:55 whytewolf thats .... like the root of sphinx
04:55 whytewolf should be in path
04:55 nafg yeah seem to have installed wrong package
04:56 nafg needed python-sphinx I guess
04:57 nafg is it going to take so long every time I make a change?
04:57 nafg hopefully there's a Makefile for a reason ;)
04:57 nafg but it's still only at 25%
04:57 whytewolf shouldn't. iirc it does have cacheing
04:58 nafg do I need the suggested SimpleHTTPServer or can I open it with file://?
04:59 whytewolf I would sugest going with the simple server. you "caan" do file:// but some links might not translate right
05:00 nafg okay now your suggestion about just using the doc root is starting to register :)
05:00 nafg it is now at 40%!
05:01 nafg whytewolf: while we're somewhat on the subject, is there any "type" information so to speak in the modules?
05:01 nafg i.e. some "spec" more formal than prose about what's accepted where
05:02 whytewolf I think we are loose typeSetting. IIRc
05:02 nafg what does that mean?
05:03 whytewolf that is the first thing i thought of when you said type. basicly instead of having to supply what kind of type an incloming variable is enforcing the variable types.
05:03 sh123124213 joined #salt
05:03 nafg whytewolf: meaning there are `if`s and such in the beginning of each function?
05:04 whytewolf such as bob(int a, string b) [strong typeSet]
05:04 nafg I think your using terminology that I'm not familiar with?
05:04 nafg *you're
05:04 nafg I don't have a lot of familiarity with python (not none but not much)
05:05 nafg what is `typeSet`?
05:05 nafg Anyway I have the server running
05:05 leonkatz joined #salt
05:05 tharkun Good $date I need to know where to find salt 101 and I believe python 101 would also be a good idea. Any suggestions
05:05 nafg I notice that it's lacking (1) above the right-side TOC, the version switcher and search bar, and (2) the footer that says Generated on ..., You are viewing the docs for...
05:06 nafg tharkun: perhaps https://docs.saltstack.com/en/getstarted/ ?
05:06 nafg Click on each box in the diagram, it's a tutorial
05:06 nafg each
05:06 nafg whytewolf: ?
05:07 whytewolf sorry, network problems
05:07 tharkun ok, I'm more of an offline on the BB screen reader but I think I can manage.
05:07 nafg np
05:07 nafg tharkun check out Zeal, it has the Dash docset for Salt
05:07 whytewolf tharkun: if you have safari oreily has some great books on python
05:07 nafg unless you mean a hardcopy book, then I certainly can't help
05:08 whytewolf iirc they also have some of the salt books that were written by salt and ex salt emploees
05:08 tharkun nafg: I commute a lot so I get to read a lot offline directly from my Cell phone.
05:09 nafg tharkun: what OS
05:09 whytewolf nafg: I was using the wrong term. I was thinking about strong vs weak typing
05:09 nafg whytewolf: ok, I still don't know what you mean :)
05:10 tharkun nafg: I have a BB but it seems I've been forced to drop it and buy a new piece of hw. I am open to suggestions.
05:10 nafg tharkun: just search the app store for something that can load Dash docsets
05:10 nafg whatever "app store" your device has
05:11 whytewolf tharkun: iphone or android... both have decent reading apps now days
05:11 whytewolf crackberries have fallen way behind in readability
05:11 tharkun And what is a nice phone to buy that will not cost me an arm and a leg. And also a kidney and half my liver?
05:12 whytewolf most likely an anroid if you don't want to pay to much. they have a much wider bredth of costs
05:12 whytewolf depends on location, if it is your company phone, and service provider
05:13 nafg tharkun: search on Amazon and Ebay, there are good things for cheap (and not good ones)
05:13 nafg tharkun: it's a whole discussion, which I think we'd better not have here (I don't mind privately)
05:13 tharkun whytewolf: I am currently self employed so expenses are at the minimun. I just hope to find something as sturdy and reliable as my old BB
05:14 whytewolf any phone with an otterbox case
05:14 tharkun nafg: It will have to be some other time. I am too sleep deprived to make a meaningfull comment on a foreign language at the moment.
05:14 tharkun lol
05:15 nafg sublime just started doing some things I didn't know it could do
05:16 nafg whytewolf: do you have any more info on when pagename doesn't match source file?
05:16 whytewolf sublime has some pretty nice features
05:16 whytewolf unforchantly not.
05:16 nafg yeah, I just don't recall it showing a popover with hyperlinks to possible definition sites
05:17 whytewolf ohhh yeah it has done that for a while. liked that feature. it almost made me leave vim
05:17 evle joined #salt
05:17 nafg whytewolf: actually I think it should, it seems that it's not the output path but the source path
05:17 nafg sphinx docs say
05:17 nafg pagename
05:17 nafg The “page name” of the current file, i.e. either the document name if the file is generated from a reST source, or the equivalent hierarchical name relative to the output directory ([directory/]filename_without_extension).
05:17 sp0097 joined #salt
05:18 whytewolf humm. could try it. the only one I am wondering about is salt/*/* files
05:18 Valfor joined #salt
05:18 Valfor joined #salt
05:18 nafg what is that?
05:19 whytewolf the state/modules/reactors/runners/pillars
05:19 whytewolf etc.
05:22 nafg whytewolf: nah that looks good too. What I did is I just dumped {{pagename}} right after <body> and then I'm clicking around localhost:8000 and checking the path in sublime under doc/ and so far it checks out
05:22 nafg I think I'll submit a PR without bothering to put the github url in a config (if reviewers want it that can be done afterwards)
05:22 nafg next step is UX -- where to put it
05:22 nafg to put the link
05:23 whytewolf at the bottom?in the footer
05:23 nafg hmm, I'd prefer at the top
05:23 nafg maybe with Table of Contents  Glossary  previous  next  index
05:23 nafg maybe to the left, and muted font
05:24 whytewolf doesn't leave a lot of room for text.
05:28 nafg whytewolf: for what text?
05:28 whytewolf the link description :P
05:28 nafg You mean the H1?
05:29 nafg Actually maybe a better place would be more associated with the H1. But let's do the bikeshedding on the PR
05:31 whytewolf on that note i think i am heading to bed
05:31 nafg oops it's badly aligned. But let me open a WIP PR for now
05:31 nafg whytewolf: let me show you a screenshot how I did it
05:31 nafg https://usercontent.irccloud-cdn.com/file/hUH3Trbd/
05:32 nafg Besides for vertical alignment, in principle is it a bad place?
05:32 whytewolf I don't think so. looks alright to me
05:32 nafg ok cool. Good night
05:32 whytewolf [besides the alignment]
05:32 whytewolf night
05:34 samodid joined #salt
05:35 felskrone joined #salt
05:45 big|bad|wolf joined #salt
05:49 nafg https://github.com/saltstack/salt/pull/39749   /cc whytewolf
05:49 saltstackbot [#39749][OPEN] WIP: Add "Edit on GitHub" link to the docs | What does this PR do?...
05:53 r4phidae| joined #salt
05:53 raphid4e[ joined #salt
05:53 r4ph1dae- joined #salt
05:53 raphid4e joined #salt
05:53 raphida3 joined #salt
05:53 raph1dae joined #salt
05:53 raph1d4e joined #salt
05:53 raphid43` joined #salt
05:54 ^raphida3 joined #salt
05:54 ]raphidae joined #salt
05:54 raphidae] joined #salt
05:54 `r4phid4e joined #salt
05:54 r4phida3[ joined #salt
05:54 raphid43 joined #salt
05:54 ]r4phidae joined #salt
05:54 |raph1d4e joined #salt
05:54 raphidae[ joined #salt
05:54 [raphida3 joined #salt
05:54 r4phida3_ joined #salt
05:54 raph1dae- joined #salt
05:54 raph1d4e] joined #salt
05:54 r4phida3- joined #salt
05:54 raphid43` joined #salt
05:54 [raph1d4e joined #salt
05:54 raphida3| joined #salt
05:56 |r4phidae joined #salt
05:56 bocaneri joined #salt
05:56 r4phida3 joined #salt
05:56 r4phid4e[ joined #salt
05:59 smcquay joined #salt
06:03 cryptolukas joined #salt
06:04 sp0097 joined #salt
06:13 nafg sudo salt --force-color '*' state.apply saltenv=base prints
06:13 nafg Salt request timed out. The master is not responding. If this error persists after verifying the master is up, worker_threads may need to be increased.
06:14 nafg Yet, it seems not to have returned an error code
06:14 ninjada_ joined #salt
06:17 Bryson joined #salt
06:18 nafg Cause seems to be a state that broke the master's config and restarted it
06:20 gmoro joined #salt
06:21 onlyanegg joined #salt
06:26 saintpablos joined #salt
06:27 ivanjaros joined #salt
06:28 ninjada joined #salt
06:30 hoonetorg joined #salt
06:30 pwhack joined #salt
06:32 eseyman joined #salt
06:34 big|bad|wolf joined #salt
06:37 pwhack joined #salt
06:38 sh123124213 joined #salt
06:48 pwhack joined #salt
06:55 eseyman joined #salt
06:57 gmoro joined #salt
07:07 dariusjs joined #salt
07:15 jas02 joined #salt
07:16 Inveracity joined #salt
07:26 dariusjs joined #salt
07:38 ReV013 joined #salt
08:03 aldevar joined #salt
08:05 big|bad|wolf joined #salt
08:18 ronnix joined #salt
08:20 eseyman joined #salt
08:23 big|bad|wolf joined #salt
08:24 JohnnyRun joined #salt
08:25 armyriad joined #salt
08:27 sh123124213 joined #salt
08:33 s_kunk joined #salt
08:35 ReV013 joined #salt
08:36 teclator joined #salt
08:37 armyriad joined #salt
08:44 samodid joined #salt
08:47 ashokrajar joined #salt
08:48 toanju joined #salt
08:48 Inveracity joined #salt
08:48 ashokrajar salt-ssh doesn't honour the 'log_file' configuration specified in Saltfile
08:49 ashokrajar It was working fine with older version I guess.
08:51 AndreasLutro yeah it's a known issue
08:51 AndreasLutro workaround is specifying log path in the master config
08:51 AndreasLutro https://github.com/saltstack/salt/issues/27491
08:51 saltstackbot [#27491][OPEN] salt-ssh trying to write to wrong log file path | I use salt-ssh with a Saltfile to change the location of most files. I ran a test with the current **develop** branch and this warning popped up. I can run 2015.8 without problems....
08:51 ashokrajar Thanks you. Let me try it in the master config.
08:52 Rumbles joined #salt
08:53 AndreasLutro in general the code responsible for merging saltfile and CLI options into the salt config is a massive mess
08:56 ashokrajar +1 Agree. Yeah I was lost when trying to trace the problem.
09:00 ReV0131 joined #salt
09:05 mikecmpbll joined #salt
09:11 vdt-mik joined #salt
09:12 vdt-mik hi all
09:20 vdt-mik I signed up to use salt. Prompt who knows how to do that when a minion will be online, it executed the command message master before?
09:23 netcho_ joined #salt
09:23 JohnnyRun joined #salt
09:23 manji vdt-mik, I am not sure I understand what you are trying to say
09:24 vdt-mik well, I'll try to be expressed more clearly
09:25 vdt-mik i have one minion and one master. i shutdown pc when install minion
09:26 dariusjs joined #salt
09:26 jab416171 joined #salt
09:27 vdt-mik i send on master command "sudo salt 'minion' cmd.run "net user minion 123""
09:27 vdt-mik but minion offline
09:28 vdt-mik i want when minion will online, this command will execute
09:34 jhauser joined #salt
09:36 vdt-mik Salt able to do so?
09:36 ashokrajar AndreasLutro, ssh_log_file: /tmp/salt-ssh-log.log option in Saltfile also works instead of in the master config
09:37 AndreasLutro aha? will have to try that
09:39 manji ashokrajar, which version ?
09:39 ashokrajar Latest stable => 2016.11.3
09:41 babilen vdt-mik: You should look into reactors as they allow you to define actions that will be executed when a minion comes online: https://docs.saltstack.com/en/latest/topics/reactor/
09:41 babilen vdt-mik: Alternatively you could define a startup state: https://docs.saltstack.com/en/latest/ref/states/startup.html
09:41 ashokrajar sorry it's salt-ssh 2016.11.1 (Carbon)
09:42 fredvd joined #salt
09:43 vdt-mik babilen: Thanks i`ll try it
09:45 babilen vdt-mik: You would create a proper state with https://docs.saltstack.com/en/latest/ref/states/all/salt.states.cmd.html and either configure reactors to run it or get the minion to execute it as startup state.
09:47 N-Mi joined #salt
09:47 N-Mi joined #salt
09:54 netcho_ joined #salt
10:07 netcho_ joined #salt
10:10 glyf joined #salt
10:14 gmoro joined #salt
10:17 auzty joined #salt
10:23 DEger joined #salt
10:29 whyzgeek joined #salt
10:32 leev_ joined #salt
10:33 richerve joined #salt
10:34 ReV013 joined #salt
10:39 gmoro joined #salt
10:45 netcho joined #salt
10:46 auzty joined #salt
10:48 scarcry joined #salt
10:57 gmoro joined #salt
11:04 scarcry joined #salt
11:06 jas02 joined #salt
11:06 lubyou joined #salt
11:11 jas02 joined #salt
11:12 githubcdr joined #salt
11:13 geomacy joined #salt
11:13 sh123124213 joined #salt
11:16 evle1 joined #salt
11:23 dps joined #salt
11:29 mpanetta joined #salt
11:30 mpanetta joined #salt
11:33 dps_ joined #salt
11:39 bluenemo joined #salt
11:40 dendazen joined #salt
11:42 dariusjs joined #salt
12:02 gmoro joined #salt
12:13 Dal_ joined #salt
12:16 brousch__ joined #salt
12:21 jas02_ joined #salt
12:21 jas02 joined #salt
12:26 saintpablo joined #salt
12:31 dal__ joined #salt
12:32 dal__ Hi, anyone have any pointers to using saltstack to upgrade OS releases on servers
12:35 manji that sounds so terrifying
12:37 dal__ obviously in a controlled manner :)
12:42 sh123124213 joined #salt
12:48 manji dal__, I would create an sls just for this where each state would require the previous to have excecuted correctly
12:49 ronnix joined #salt
12:50 duncanmv joined #salt
12:50 duncanmv where does this module come from "ImportError: No module named pytestsalt.utils "?
12:55 Neighbour dal__: and to supplement manji, use `failhard: True` in each state in the sls
12:55 vdt-mik hi, who use foreman + salt?
13:00 gmoro joined #salt
13:00 numkem joined #salt
13:01 duncanmv what is pedro's nick?
13:04 wavded joined #salt
13:08 rem5 joined #salt
13:11 saintpablo joined #salt
13:13 saintpablos joined #salt
13:16 aphor left #salt
13:16 aphor joined #salt
13:18 justanotheruser joined #salt
13:24 dynamicudpate joined #salt
13:31 ssplatt joined #salt
13:33 impi joined #salt
13:36 netcho_ joined #salt
13:39 dendazen joined #salt
13:40 jwerak joined #salt
13:42 wangofett joined #salt
13:46 rem5_ joined #salt
13:50 Miouge joined #salt
13:52 miker_ joined #salt
13:59 sh123124213 joined #salt
14:00 scoates joined #salt
14:01 rem5 joined #salt
14:02 rem5__ joined #salt
14:16 jwerak Hi guys, I am trying to execute salt state on master from orchestrate runner. I am trying to run state using `salt.state` (https://gist.github.com/jwerak/285aa44d041891b499e910f188bf04a8) but I am having another trouble defining id of minion running on master instance.
14:19 scsinutz joined #salt
14:19 scsinutz joined #salt
14:20 eichiro joined #salt
14:20 scsinutz joined #salt
14:21 scsinutz joined #salt
14:22 scsinutz joined #salt
14:23 scsinutz joined #salt
14:23 scsinutz joined #salt
14:24 scsinutz joined #salt
14:25 scsinutz joined #salt
14:25 scsinutz joined #salt
14:26 scsinutz joined #salt
14:27 scsinutz joined #salt
14:28 scsinutz joined #salt
14:28 eichiro joined #salt
14:28 scsinutz joined #salt
14:29 scsinutz joined #salt
14:30 scsinutz joined #salt
14:31 scsinutz joined #salt
14:31 scsinutz joined #salt
14:32 scsinutz joined #salt
14:33 scsinutz joined #salt
14:34 scsinutz joined #salt
14:34 scsinutz joined #salt
14:35 scsinutz joined #salt
14:36 scsinutz joined #salt
14:36 aphor jwerak: show us a github gist or pastebin of your orchestration state sls file.
14:37 scsinutz joined #salt
14:37 viq Anyone else on debian 7 getting Failed to fetch http://repo.saltstack.com/apt/debian/7/amd64/latest/pool/main/b/bsdmainutils/bsdmainutils_9.0.6_amd64.deb  Size mismatch
14:37 viq ?
14:37 scsinutz joined #salt
14:38 jwerak The gist I've posted is my orchestrate state: https://gist.github.com/jwerak/285aa44d041891b499e910f188bf04a8
14:38 scsinutz joined #salt
14:38 gmoro joined #salt
14:39 scsinutz joined #salt
14:40 scsinutz joined #salt
14:40 racooper joined #salt
14:40 jwerak aphor: thing is that if I am calling it like this, I need to supply minion_id :(
14:40 scsinutz joined #salt
14:41 scsinutz joined #salt
14:41 aphor jwerak: how do you know where you want ec2.accept to run?
14:42 jwerak aphor: I want it to run only on master.
14:42 scsinutz joined #salt
14:42 jwerak The purpose of this orchestrate is to react on `salt/auth` to start state that will verify and authorize minion.
14:43 scsinutz joined #salt
14:43 aphor jwerak: then you should make your life easier by calling your master's minion 'master'
14:44 scsinutz joined #salt
14:44 jwerak aphor: That is a fine idea :)
14:44 aphor since by convention 'master' is always the minion id of the salt master, it's good to hardcode that minion id in places like orchestrate tgt.
14:44 scsinutz joined #salt
14:45 scsinutz joined #salt
14:45 aphor this convention is not good if you're scaling out to the point where you need syndic, but let's defer that conversation
14:45 jwerak aphor: I've updated my gist, could I possibly call that state directly from reactor sls file instead of calling orchestrate file? https://gist.github.com/jwerak/285aa44d041891b499e910f188bf04a8
14:46 scsinutz joined #salt
14:46 aphor jwerak: calling the state module from reactor is preferred (simpler) if you don't need to do any requisites or ordering with anything else.
14:47 scsinutz joined #salt
14:47 jwerak aphor: I wouldn't mind defining `master_id` in `/etc/salt/master` and query grains['id'] for it, but it doesn't seem to work for me, all I am getting is my hostname...
14:47 scsinutz joined #salt
14:48 aphor jwerak: the minion has a file in etc it uses to persist its minion id, which defaults at first run to hostname.
14:48 aphor you will need to re-key if you change the minion_id
14:48 scsinutz joined #salt
14:49 cryptolukas joined #salt
14:49 jwerak I didn't change minion_id, only master_id, but I think same rule applies...
14:49 scsinutz joined #salt
14:49 jwerak ad calling state from reactor, is orchestrate_single for this purpose? https://docs.saltstack.com/en/latest/ref/runners/all/salt.runners.state.html#salt.runners.state.orchestrate_single
14:50 scsinutz joined #salt
14:50 scsinutz joined #salt
14:51 sh123124213 joined #salt
14:51 scsinutz joined #salt
14:52 scsinutz joined #salt
14:52 aphor jwerak: when you tgt an orchestration state, it runs in the minion targeted.
14:53 scsinutz joined #salt
14:53 scsinutz joined #salt
14:53 jwerak aphor: yes, I was now asking about triggering salt sls state directly from reactor sls on master node.
14:54 scsinutz joined #salt
14:54 aphor https://docs.saltstack.com/en/latest/topics/reactor/ <-- local.state.apply or something via a runner
14:55 scsinutz joined #salt
14:55 scsinutz joined #salt
14:56 jwerak I was hoping for something for by-passing need for tqt...
14:56 scsinutz joined #salt
14:56 jwerak I guess I can live with this as well, thanks a lot aphor
14:57 scsinutz joined #salt
14:58 scsinutz joined #salt
14:58 scsinutz joined #salt
14:59 scsinutz joined #salt
14:59 mikecmpbll is there any difference between salt['pillar.get']() and pillar.get() in jinja ?
15:00 mikecmpbll i see both, but more often the former despite the latter being shorter
15:00 scsinutz joined #salt
15:01 renaissancedev joined #salt
15:01 aphor mikecmpbll: I prefer the latter, for the same reasons as you.
15:01 scsinutz joined #salt
15:01 mikecmpbll aphor : okidokes :)
15:01 aphor what you want to avoid doing is pillar['thing'] unless you want to blow up when there is no pillar 'thing'
15:01 scsinutz joined #salt
15:02 scsinutz joined #salt
15:03 scsinutz joined #salt
15:04 scsinutz joined #salt
15:04 ReV013 left #salt
15:05 scsinutz joined #salt
15:05 PatrolDoom joined #salt
15:05 scsinutz joined #salt
15:06 nickabbey joined #salt
15:06 scsinutz joined #salt
15:07 scsinutz joined #salt
15:08 scsinutz joined #salt
15:08 scsinutz joined #salt
15:09 scsinutz joined #salt
15:10 scsinutz joined #salt
15:10 cryptolukas joined #salt
15:10 onlyanegg joined #salt
15:11 scsinutz joined #salt
15:11 scsinutz joined #salt
15:12 cscf aphor, most of my states should indeed fail if it's missing, so I use it a lot
15:12 scsinutz joined #salt
15:13 scsinutz joined #salt
15:13 sp0097 joined #salt
15:14 scsinutz joined #salt
15:14 scsinutz joined #salt
15:15 scsinutz joined #salt
15:16 scsinutz joined #salt
15:17 scsinutz joined #salt
15:17 scsinutz joined #salt
15:18 nikolay_ joined #salt
15:18 scsinutz joined #salt
15:19 jas02 joined #salt
15:19 scsinutz joined #salt
15:20 scsinutz joined #salt
15:20 scsinutz joined #salt
15:21 scsinutz joined #salt
15:21 evle joined #salt
15:22 scsinutz joined #salt
15:23 scsinutz joined #salt
15:23 scsinutz joined #salt
15:24 duncanmv joined #salt
15:24 scsinutz joined #salt
15:25 scsinutz joined #salt
15:26 scsinutz joined #salt
15:26 scsinutz joined #salt
15:27 scsinutz joined #salt
15:27 sfxandy joined #salt
15:28 Tanta joined #salt
15:28 scsinutz joined #salt
15:29 scsinutz joined #salt
15:29 scsinutz joined #salt
15:30 scsinutz joined #salt
15:31 DEger joined #salt
15:31 Reverend damn scsinutz, you having issues there ?
15:31 scsinutz joined #salt
15:31 Reverend damn scsinutz, you having issues there ?
15:31 Reverend :D
15:31 rubenb Hi. Should salt-minions be able to see the ids of other salt-minions that are targetted by a command?
15:32 scsinutz joined #salt
15:32 sfxandy hi everyone.  anybody got any experience of configuring Salt and its REST API being a WSGI compliant webserver?
15:32 rubenb ie: If I run a salt-run manage.up, minionA can see that MinionB is also targetted.
15:33 scsinutz joined #salt
15:33 scsinutz joined #salt
15:34 scsinutz joined #salt
15:35 rubenb sfxandy: I'm using cherrypy for the salt-api on localhost (without https), and then proxypassing it with https with apache.
15:35 scsinutz joined #salt
15:35 teclator joined #salt
15:35 sfxandy thats not a bad shout at all rubenb
15:36 scsinutz joined #salt
15:36 DEger joined #salt
15:36 snergster joined #salt
15:36 sfxandy can i PM you rubenb?
15:36 rubenb sfxandy: Sure.
15:36 scsinutz joined #salt
15:36 tapoxi joined #salt
15:37 scsinutz joined #salt
15:38 gmoro joined #salt
15:38 scsinutz joined #salt
15:39 scsinutz joined #salt
15:39 scsinutz joined #salt
15:40 scsinutz joined #salt
15:41 scsinutz joined #salt
15:42 scsinutz joined #salt
15:42 scsinutz joined #salt
15:43 scsinutz joined #salt
15:44 scsinutz joined #salt
15:45 scsinutz joined #salt
15:45 scsinutz joined #salt
15:46 scsinutz joined #salt
15:47 scsinutz joined #salt
15:47 CampusD joined #salt
15:47 whyzgeek joined #salt
15:48 scsinutz joined #salt
15:48 leev_ joined #salt
15:48 CampusD Hi all, question, is this a valid way to set a jinja list and then check contents against grains?  https://gist.github.com/UtahCampusD/9fe47e8eea2a54558fb22e1c2deed3cd
15:48 scsinutz joined #salt
15:49 scsinutz joined #salt
15:50 cmarzullo I think I've done something like that before.
15:50 scsinutz joined #salt
15:51 scsinutz joined #salt
15:51 netcho_ joined #salt
15:51 scsinutz joined #salt
15:52 scsinutz joined #salt
15:53 scsinutz joined #salt
15:54 scsinutz joined #salt
15:54 scsinutz joined #salt
15:54 juntalis joined #salt
15:55 scsinutz joined #salt
15:56 scsinutz joined #salt
15:57 scsinutz joined #salt
15:57 whyzgeek joined #salt
15:57 icebal_ joined #salt
15:57 scsinutz joined #salt
15:58 scsinutz joined #salt
15:59 scsinutz joined #salt
16:00 scsinutz joined #salt
16:00 debian112 any options in saltstack for this: http://docs.aws.amazon.com/cli/latest/reference/ec2/copy-image.html
16:00 scsinutz joined #salt
16:01 ivanjaros joined #salt
16:01 scsinutz joined #salt
16:02 scsinutz joined #salt
16:06 asnell joined #salt
16:09 Brew joined #salt
16:12 keltim joined #salt
16:16 cryptolukas joined #salt
16:19 nickabbey joined #salt
16:22 tkojames joined #salt
16:29 _JZ_ joined #salt
16:30 brokensyntax joined #salt
16:38 aphor debian112: there's a copy_snapshot in salt.cloud.clouds.ec2 but no copy_image
16:38 big|bad|wolf joined #salt
16:39 raspado joined #salt
16:39 aphor maybe you could add one and sublmit a PR @debian112?
16:39 aphor https://github.com/saltstack/salt/blob/develop/salt/cloud/clouds/ec2.py
16:44 tiwula joined #salt
16:46 tkojames I have JSON file with VM settings.  I am using salt-cloud. Is it possible to import these settings into a proivder file and have it be formatted in the correct YAML format? The idea is we have current salt-master that we want to auto generate all the settings of the VM's into a cloud provider file so we spin up all our vms quickly in another place if needed.
16:54 DanyC joined #salt
16:55 onlyanegg joined #salt
16:56 gtmanfred good morning
16:57 ecdhe good morning
17:00 Gareth morning morning
17:01 impi joined #salt
17:01 ecdhe eggs spam, bacon and spam, spam spam spam
17:02 keltim joined #salt
17:02 tkojames_ joined #salt
17:04 aldevar left #salt
17:07 tkojames_ joined #salt
17:10 jdipierro joined #salt
17:10 nickabbey joined #salt
17:11 mikecmpbll joined #salt
17:11 jdipierro Anyone using Vault with SDB? Can I have Salt generate a secret if one doesn't exist at the SDB location?
17:15 nickabbey joined #salt
17:16 jas02 joined #salt
17:17 jas02 joined #salt
17:18 jas02 joined #salt
17:21 winsalt joined #salt
17:27 morissette joined #salt
17:27 nafg Does salt-cloud talk to the master at all? It's installed on the master but I'm thinking to skip that and just run it in CI off the git repo
17:29 scsinutz joined #salt
17:32 iggy nafg: you can install salt-cloud anywhere (I run it from my laptop sometimes)
17:33 gtmanfred nafg: you can install it anywhere, but it also creates the keys directly on the master, so you will need to use one of the other methods for accepting minion keys
17:33 miker_ joined #salt
17:37 winsalt this is weird, I am trying to use pkg.remove but the quiet flag "/q" is getting formatted to "\\q" when it runs.  Escaping the forward slash made it look like "\\\\q".  Any idea what it should be instead?
17:37 DEger joined #salt
17:37 shoemonkey joined #salt
17:38 nafg gtmanfred: if I'm running it off the master how can I script adding them?
17:38 gtmanfred you don't have to script adding them,salt-cloud creates them and puts them in the correct directory
17:38 brakkisath joined #salt
17:39 jas02 joined #salt
17:40 brakkisath This may be a simple config bug, but after updating to the latest salt-minion, I'm having commands like "salt 'ts-*' state.highstate" come back with "Module 'state' is not available."
17:40 leonkatz joined #salt
17:40 brakkisath Is that because the master isn't correctly syncing modules/states with the minions?
17:40 jas02 joined #salt
17:41 gtmanfred that doesn't make any sense, the state module should always load
17:41 brakkisath I know... It's driving me insane. I thought I had a system go bad, so I decided to update another one. Now this one is broken, too.
17:42 onlyanegg joined #salt
17:42 whytewolf the state module doesn't get synced from the master. it comes with the minion software.
17:42 Reverend joined #salt
17:43 whytewolf how did you update?
17:43 brakkisath What's weird is the minion debug logs shows the whole state kick off just fine. I can watch the whole config of the system get checked out and tested.
17:43 KyleG joined #salt
17:43 KyleG joined #salt
17:44 brakkisath I added the official saltstack repo (previously used epel) and then did a salt-minion update.
17:45 brakkisath I figured I had a config issue when I realized that the minion was running the highstate but the master was insantly kicking back an error.
17:45 whytewolf try shutting down the minion software, then search for any that are still running.
17:45 Trauma joined #salt
17:45 whytewolf maybe you have two copies running. one looking for the modules in a location that doens't exist anymore
17:46 * whytewolf shrugs
17:46 gtmanfred oh, that is an interesting idea
17:47 brakkisath Oh boy. That was it.
17:47 brakkisath You guys saved me from pulling my hair out
17:47 brakkisath Thanks whytewolf
17:48 whytewolf no problem :) glad my oddball thinking helped
17:48 brakkisath Now I have to figure out why I had two copies of the minion after the update completed.
17:48 gtmanfred there was an old old bug for the version that i believe is in epel
17:48 gtmanfred where the restart in the post script doesn't fully stop it for some reason
17:49 brakkisath Interesting, that may be exactly what I came across then.
17:50 DEger joined #salt
17:51 brakkisath Is there any way to have a state that does the minion updates cleanly? I'd assume I can't killall salt-minions because then the whole update would instantly drop dead.
17:51 gtmanfred you could do an at job that kills them and then starts the minion again
17:51 whytewolf well you could add a delayed restart.
17:51 whytewolf using a tool like at
17:52 gtmanfred or do like cmd.run 'pkill -9 salt-minion && service salt-minion start'
17:52 brakkisath That's a good point, as long as I can get the repo/packages in order, I don't mind it telling the master that updates are good but on next restart will be the new version.
17:52 whytewolf humm, killing in the middle of the state even to restart wouldn't that kill the current session outright?
17:53 samodid joined #salt
17:53 whytewolf i was thinking more like is described here https://docs.saltstack.com/en/latest/faq.html#what-is-the-best-way-to-restart-a-salt-daemon-using-salt
17:53 gtmanfred hrm, yeah, you could do a sig term, which would allow the children to continue until finished
17:54 amcorreia joined #salt
17:54 cryptolukas joined #salt
17:55 brakkisath Thanks for that link, I think I can just wipe out all the minions and restart after 60 seconds.
17:56 nickabbey joined #salt
17:57 jdipierro Anyone using Vault with SDB? Can I have Salt generate a secret if one doesn't exist at the SDB location?
17:57 gtmanfred I do not believe that is supported, but that would be super awesome
17:58 gtmanfred jdipierro: similar to this value on grains https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.grains.html#salt.modules.grains.get_or_set_hash
17:59 gtmanfred jdipierro: https://github.com/saltstack/salt/issues/39763
17:59 saltstackbot [#39763][OPEN] Create a way to set or get hash options on sdb | Description of Issue/Question...
17:59 gmoro joined #salt
17:59 jdipierro OOoo thanks for the issue link
17:59 gtmanfred yar, i will try to get to it next week
18:02 brakkisath Here is likely another noob question: I get this "Specified SLS ethtool in saltenv base is not available on the salt master or through a configured fileserver"
18:03 brakkisath Is that not part of whole basic setup that would get installed with salt?
18:03 gtmanfred where is ethtool.sls or ethtool/init.sls ?
18:03 eseyman joined #salt
18:03 gtmanfred we do not provide any default .sls files
18:04 brakkisath Ah, okay. That's likely the issue when. If I do a basic find, I'm seeing "/usr/lib/python2.6/site-packages/salt/states/ethtool.py"
18:04 brakkisath no ethtool.sls anywhere, though.
18:04 gtmanfred that is just the module that would be used when you write an ethtool.sls file
18:04 gtmanfred https://docs.saltstack.com/en/latest/ref/states/all/salt.states.ethtool.html
18:05 Gareth brakkisath: state modules are different than state files, you don't run the state modules directly.
18:06 winsalt does anyone know why win_pkg is reversing the slashes in the uninstaller flags?
18:06 brakkisath Ah, okay so I may be misunderstanding that whole thing. Like that link you sent, I just had eth0: ethtool.coalesce defined exactly like the first YAML example there
18:07 candyman88 joined #salt
18:07 whytewolf brakkisath: defined where?
18:07 Gareth brakkisath: did you create an SLS file some place it somewhere on the salt master?  Potentially /srv/salt/?
18:08 brakkisath Yeah, I have that all nailed down. Bascially in our networking file that configures all network interfaces using network.managed I just added some ethtool.ring ones that did our optimizations
18:08 DEger joined #salt
18:08 brakkisath That SLS file loads just fine as long as I don't use the ethtool.X stuff.
18:09 Gareth brakkisath: how are you calling the run for the SLS file?
18:10 brakkisath salt 'kvm03c1*' state.sls cloud1-networking test=True
18:10 brakkisath Would be how I'm doing the testing.
18:10 gtmanfred is ethtool installed on the minion?
18:10 Aleks3Y joined #salt
18:10 gtmanfred what is the error you get back when you run the state file with the ethtool state defined in it?
18:11 brakkisath ethtool is indeed on the minions. I can manually run the commands just fine.
18:11 brakkisath kvm03c1.pit:
18:11 brakkisath Data failed to compile:
18:11 brakkisath ----------
18:11 brakkisath Specified SLS ethtool in saltenv base is not available on the salt master or through a configured fileserver
18:11 gtmanfred can you paste your state file to gist.github.com?
18:12 s_kunk joined #salt
18:14 brakkisath Will do, one moment. I want to make sure I have my ducks in a row here.
18:15 s_kunk joined #salt
18:15 s_kunk joined #salt
18:20 brakkisath I realize now I had a minion stuck running on a different host I was doing network work on.
18:20 brakkisath The ethtool module appears to be having issues... "Comment: 'module' object has no attribute 'get_coalesce'" but I can probably resolve that on my own.
18:21 jas02 joined #salt
18:21 jdipierro Can I call a runner from within a custom module?
18:21 gtmanfred only if the minion that is running the module is on the master
18:22 gtmanfred use salt['saltutil.runner']()
18:23 gtmanfred if you are on another minion, you will need peering enabled, which brings in other security things, but you could also do salt['publish.runner']()
18:23 gtmanfred https://docs.saltstack.com/en/latest/ref/peer.html
18:24 jdipierro Gotcha; I think I'm gonna have to do that. Trying to use the `vault.generate_token` runner to get the minion a vault token.
18:26 gmoro joined #salt
18:27 jas02 joined #salt
18:28 gmoro joined #salt
18:29 Edgan joined #salt
18:31 jdipierro Can I call a util function from the CLI? Trying to determine if the minion can get the vault credentials from the master.
18:31 gtmanfred you cannot
18:31 gtmanfred you would need to make a module, but from a module you could call __utils__['module.func']()
18:32 financeMann joined #salt
18:32 financeMann Hi
18:32 jas02 joined #salt
18:32 financeMann I have a php app on linode and I need to automate it’s deployment and database migration
18:32 financeMann is salt great for this?
18:32 jholtom joined #salt
18:33 gtmanfred automating the database migration would be tricky, but it can do that
18:33 financeMann My background is in jenkins/bamboo, should I Just use jenkins or bamboo for this instead of salt?
18:35 gtmanfred I have only  ever used jenkins for test suites, and i have never used bamboo, so i don't know.  But salt is great for configuring and orchestration
18:35 tkojames How Do I Install the latest Dev version of salt? I tired the following but getting errors when trying to run salt. "git clone git://github.com/saltstack/salt : cd salt  : sudo python setup.py install --force
18:35 gtmanfred tkojames: make sure you pip install the requirements/ files
18:35 gtmanfred pip install -r requirements/zeromq.txt
18:36 gtmanfred or the easiest way is to just pip install teh git repo
18:36 gtmanfred pip install git://github.com/saltstack/salt.git
18:36 gtmanfred pip install git://github.com/saltstack/salt.git#egg=salt
18:37 Gareth financeMann: you could use a combination of Salt & Jenkins.  The Salt plugin for Jenkins works well.
18:37 gtmanfred ^^
18:38 financeMann Gareth so is salt more focused on actually managing the infrastructure than the actual apps running in your boxes?
18:39 financeMann in terms of deploying a new version of a website
18:39 Gareth The nice thing about Salt is that it's SO flexible that you can literally use it for just about everything. :)
18:40 Gareth You can use it to maintain and manage the infrastructure, you can also use to deploy apps and websites.  You can have salt runs be an entire highstate, eg. everything that would apply to a machine or set of machines, or have that salt run be specific states or even just module runs, eg. remote execution.
18:40 financeMann Gareth can I do everything through the GUI website or does it require a lot of back-end scripts and such
18:41 Gareth financeMann: it's going to require a bit of backend scripts, mostly in the force of Salt states.
18:41 Gareth if you're going the Jenkins Salt plugin route.
18:42 jdipierro gtmanfred: I'm gonna guess I can't use __utils__ to call a method prefixed with _?
18:42 gtmanfred you cannot
18:42 gtmanfred anything that is considered a private variable in python, i.e. starting with _, is not loaded by the __dunder__ dictionaries
18:42 gtmanfred you would need to import salt.utils directly to use them
18:43 financeMann gareth i want to use only a single application
18:44 financeMann either salt entirely or bamboo or jenkins entirely
18:44 Gareth Ahh.
18:44 Gareth But you want a GUI to interact with the process?
18:44 iggy it must be nice to be able to say you are only using one tool
18:45 * iggy looks around at the 50 tabs open just for internal tools
18:46 financeMann Gareth yup a gui
18:46 financeMann if I dont have a GUI i might as well write the program myself
18:46 iggy salt doesn't have a gui
18:47 Gareth financeMann: bamboo or Jenkins would be the way to go then.
18:47 iggy (well, the enterprise version does)
18:47 Gareth there is also Saltpad....but even the GUIs require you to have some states behind the scenes.
18:48 five04tluv_ joined #salt
18:50 gtmanfred i dislike guis
18:50 five04tluv_ looking for salt command to report minions that do not have a certain grain set
18:50 gtmanfred salt -C 'not G@grain:val' test.ping ?
18:51 five04tluv_ perfect
18:52 Gareth gtmanfred: they have their place :) I think a Salt GUI for reporting would be hugely beneficial....for actually running things, not so much.
18:52 Gareth maybe running simple things.
18:52 gtmanfred yeah, for reporting i guess
18:52 Gareth people like dashboards.
18:54 iggy it feels like most people already have monitoring tools setup by the time they get to salt
18:54 iggy so what it really needs is some integration with other tools
18:54 * iggy $0.02
18:55 SaucyElf joined #salt
18:56 gtmanfred i agree with that
18:56 * gtmanfred lunch time!
18:56 Gareth Yeah. Most people have their own monitoring already in place.  I'm talking about dashboards.  Something where you can at a quick glance know "What is the state of my infrastructure?"  "Am I running highstates on a regular basis, how many are failing?" "Am I running in a multi master setup, how many minions are attaching to each master?"
18:56 Gareth the things you typically see on big TVs around offices.
18:56 KyleG splunk would let you do that
18:56 KyleG or elastic search, whatever
18:56 KyleG ELK
18:57 iggy yeah, we use opentsdb/graphite/a bunch of other stuff that I don't know of... it should handle said dashboards
18:58 iggy (and indeed it does, but because we wrote custom collectd plugins... whereas if salt had some of tie-in there it would have been easier)
18:58 brakkisath netdata is a fun dashboard
18:58 brakkisath Salt could use a "hit list" dashboard. A list of the machines with recent changes and then a list of changes that affecting the most machines.
18:59 brakkisath *that affected the most
18:59 gtmanfred we have a lot of this stuff in the enterprise product
18:59 Gareth iggy: that's point :) Everyone has written something custom because it's not available.
18:59 Gareth that's my point rather.
19:00 brakkisath You guys should have an enterprise demo site, it would be neat to at least see what it offers
19:01 ChubYann joined #salt
19:02 iggy gtmanfred: too bad when people actually engage sales, they never hear back
19:03 jas02_ joined #salt
19:03 iggy brakkisath: there are some youtube videos that show off the enterprise gui
19:04 brakkisath Cool, I'll go take a look at them. I was always interested in seeing what it looked like
19:04 mikecmpbll joined #salt
19:04 iggy another note about dashboards (in general, hit list in particular)... what works for people with 10-100 salt minions doesn't always work for people with 20000+
19:05 gtmanfred you didn't hear it from me, but there might be another major release of the ui/eapi soon, so i might expect a new video on youtube at some point probably
19:05 iggy hear what?
19:06 gtmanfred exactly
19:12 bantone ;)
19:12 kojiro joined #salt
19:13 twork_ ok, true or false: if a minion is set to call the 'users' formula; and, that minion is linked to some set of pillar files with user accounts defined in them; then that minion will have accounts for those users regardless of what happens in any other state file?
19:14 twork_ (if this sounds familiar it's because i've been beating my head on it for months and getting lots of help here and still getting lost.)
19:18 ronnix joined #salt
19:22 jas02 joined #salt
19:24 Tanta depends
19:24 Tanta failure modes and thresholds are configurable
19:27 twork_ i don't follow, but i think the answer is basicaly "yes", if what you want is to link a minion to a pillar (of user data) but have those accounts treated as something other than logins
19:34 dcovello joined #salt
19:35 Guest19319 joined #salt
19:37 eseyman joined #salt
19:41 sarlalian joined #salt
19:42 dcovello Hey everyone! With regards to the recent TLS Support implementation for the TCP transport mentioned here : https://docs.saltstack.com/en/latest/topics/transports/tcp.html . Does the salt-minion somehow resolve the IP of the salt-master and connect directly to the IP as opposed to connecting to the master's hostname? Im hoping to proxy minion connections based on SNI defined on the TLS connections but im observing that the SNI value i
19:42 dcovello the salt-master and not the hostname
19:45 gtmanfred i do not believe that you can proxy the connections
19:45 gtmanfred unless you use salt-proxyd
19:45 AndreasLutro it's techincally not possible to connect to a hostname
19:45 sh123124213 joined #salt
19:46 AndreasLutro anything that ever connects "by hostname" does a dns lookup then connects to an IP
19:46 gtmanfred https://pypi.python.org/pypi/salt-broker/0.2.5
19:46 aldevar joined #salt
19:47 gtmanfred that is the only thing that I know worked at some point with proxying commands, but i don't think it works with tcp
19:49 kiltzman joined #salt
19:50 sarlalian joined #salt
19:50 kiltzman joined #salt
19:51 kiltzman joined #salt
19:51 kiltzman joined #salt
19:52 kiltzman joined #salt
19:52 fracklen joined #salt
19:52 kiltzman joined #salt
19:54 pcn joined #salt
19:55 pcn Hey, I have a question about calling cmd.run in an execution module.
19:55 pcn If I have a timeout set, how do I determine if the call failed?
19:55 kubuntu_ joined #salt
19:55 kubuntu_ joined #salt
19:56 kubuntu_ joined #salt
19:56 gtmanfred does it not kill the command if the timeout is reached?
19:56 kubuntu_ joined #salt
19:56 kubuntu_ joined #salt
19:57 kubuntu_ joined #salt
19:58 pcn It should, but in the context of my module I've got rv = __salt__['cmd.run']('something', timeout=120) f'rinstance
19:58 pcn What does rv contain to know that there's a timeout?
19:59 dps joined #salt
20:00 jas02 joined #salt
20:01 gtmanfred do a cmd.run 'sleep 300' timeout=5
20:01 gtmanfred and see what it returns to the commandline
20:01 gtmanfred it will return a string that says it timed out
20:01 gtmanfred local:
20:01 gtmanfred sleep 300 : Timed out after 5 seconds
20:03 jhauser joined #salt
20:05 pcn OK, so the return will be a dictionary containing the command name, and a value starting with the string "Timed out"
20:05 gtmanfred it won't be a dictionary, just a string
20:06 gtmanfred in the place of the stdout of the command, will be the string '<cmd> : Timed out after <timeout> seconds'
20:08 pcn OK, thanks
20:13 jas02 joined #salt
20:20 jas02 joined #salt
20:32 jas02 joined #salt
20:33 dcovello Hrm alright, thanks for the responses guys
20:35 dcovello Unfortunately it looks inside minion.py there is a resolve_dns() function which is used to pass on the opts value 'master uri' in the form 'tcp://{ip}:{port}'. This is causing the TLS implementation to set the SNI value to the IP address
20:37 AndreasLutro I doubt it... tcp itself doesn't care about tls
20:37 Sketch or SNIs
20:41 AndreasLutro then again it might look like salt passes the 'tcp://{ip}:{port}' onto the underlying tornado client class which is where tls validation happens
20:41 dcovello yes
20:42 dcovello tornado automatically assigns the SNI based on the hostname passed in, however IP is passed in unfortunately
20:42 AndreasLutro look for a github issue and open on if there isn't one
20:44 dcovello okay, again thanks for the responses guys
20:46 J0hnStee- joined #salt
20:48 GnuLxUsr_ joined #salt
20:48 Micromus_ joined #salt
20:48 Hipikat_ joined #salt
20:48 tooth_ joined #salt
20:48 Ahlee_ joined #salt
20:48 kevc_ joined #salt
20:49 ksa joined #salt
20:49 Ahlee_ joined #salt
20:50 descrepes_ joined #salt
20:52 benner_ joined #salt
20:52 Sacro_ joined #salt
20:53 nickabbey joined #salt
20:53 carmony_ joined #salt
20:54 djgerm if I want to replace a handful of lines in a file, is there a way (other than templating the file) of doing it in one call?
20:54 cscf djgerm, only if they are contiguous
20:54 duncanmv joined #salt
20:55 ThomasJ joined #salt
20:55 jas02 joined #salt
20:56 rubenb Is there a way to see which minions have connected in the last n minutes, without using the manage.state runner?
20:56 hemebond1 rubenb: Watch the event bus?
20:57 rubenb Interesting approach. Thanks.
20:58 rubenb manage.state runner does not really scale, and caused massive cpu 'spikes' on Windows machines.
20:58 dhoutz joined #salt
20:59 hemebond1 What is manage.state?
21:00 rubenb Sorry, salt-run manage.status. (or in my case, salt-run manage.up)
21:00 hemebond1 Oh status.
21:00 hemebond1 One of those functions doesn't touch the minions.
21:00 hemebond1 I can't remember which one.
21:01 twork_ I can't seem to find an answer to this: does top.sls get run through Jinja the way other sls files are, before YAML?
21:01 hemebond1 reaped maybe.
21:01 hemebond1 Who came up with these terrible function names?
21:01 manji twork_, yes
21:01 joshin joined #salt
21:01 joshin joined #salt
21:01 hemebond1 Half these functions do the same thing.
21:01 twork_ thanks
21:02 manji twork_, do double check, but I am pretty positive
21:02 rubenb hemebond1: I thought both touch the minion, the results are just filtered.
21:02 hemebond1 According to the docs some of the functions do not touch the minions.
21:02 schinken joined #salt
21:02 manji hemebond1, you mean like touch them improperly ?
21:02 hemebond1 Not that it seems to work on 2016.3
21:02 manji :p
21:03 hemebond1 manage.reaped "Print a list of all minions that are up according to Salt's presence detection (no commands will be sent to minions)"
21:03 hemebond1 Function doesn't work properly at all.
21:03 hemebond1 It just lists all my minions.
21:03 manji reaped ?
21:03 rubenb Hm, I see.
21:03 manji indeed that is a weird name yes
21:04 rubenb manage.reaped and manage.alived are the same?
21:04 hemebond1 They seem to do the same thing.
21:04 hemebond1 At least according to their docstrings.
21:05 rubenb .allowed also does the same.
21:06 rubenb and .joined, .list_state, .present
21:07 twork_ eh, drat, that doesn't fix my issue either.  dammit.
21:08 whytewolf reaped and alived do do the same thing. the only difference is they pass managed.list_state a state of reaped or alived. but list_state only seems to care about state if the transport is raet
21:08 hemebond1 Bit of a mess.
21:09 dps joined #salt
21:10 whytewolf a comment in list_state # Always return 'present' for 0MQ for now
21:11 hemebond1 D-:
21:11 rubenb Also, they show my laptop to be present/reaped, even though it's powered off for about 5 hours.
21:12 rubenb At least... Checking...
21:12 dps_ joined #salt
21:12 rubenb Jup, powered down for about 5 hours.
21:13 hemebond1 Every function, at least on 2016.3, just returns all my minions.
21:13 hemebond1 At least the functions that claim to not contact the minions.
21:13 whytewolf thats because they all us list_state
21:13 hemebond1 I can't help but feel that none of those functions should have been put in.
21:14 whytewolf they were built when raet was going to be the next big thing
21:14 hemebond1 Ah I see.
21:14 egilh joined #salt
21:15 whytewolf they are good in concept. but since most of those states are not tracked with 0mq they become useless on other transports.
21:16 hemebond1 Are they going to be fixed to work with TCP transport?
21:16 * whytewolf shrugs
21:17 whytewolf not sure if tcp transport tracks those states either
21:17 whytewolf would have to ask someone with more insider knowledge
21:17 whytewolf would love it if they were though.
21:18 whytewolf kind of wish the plug on raet would be officially pulled also
21:26 whytewolf humm, guess it will come at some point. there is this note # TODO: implement other states spport for 0MQ
21:26 hemebond1 It's mostly a shame that the docstrings aren't clear and explicit on the current state of the functions.
21:26 ronnix joined #salt
21:27 whytewolf yeah they should at least mention it only does something useful on raet for now
21:27 manji documentation has been challenging from day 1
21:27 manji :/
21:31 sh123124213 joined #salt
21:32 censorshipwreck joined #salt
21:35 rsalmond joined #salt
21:36 rsalmond Heya, is there a process for contributing boto states for aws resources?
21:37 rsalmond Or rather, before we build the thing we want salt to do I guess is there a good reason that some AWS resources do not already have states?
21:39 hemebond1 rsalmond: Probably not a good reason the states don't exist, likely more that no one has written them yet.
21:40 shoemonkey joined #salt
21:40 rsalmond Cool.
21:40 rsalmond Just didn't want to tear off building to find out someone decided it shouldn't be there.
21:40 rsalmond Tnx.
22:00 cyborg-one joined #salt
22:03 minum joined #salt
22:03 DanyC joined #salt
22:04 DanyC joined #salt
22:07 minum Hi all. I have a decent number of minions (~350), and am now at the point where any grain matches take 15 seconds just to return a test.ping. Most configs are default (cachedir, etc).
22:08 Edgan minum: all on the same LAN, or are some remote?
22:09 minum Some are remote but within the same hosting environment (across oceans but 10.0 subnet)
22:09 geomacy joined #salt
22:11 minum I would expect caching to perform better
22:12 minum Is there a way to confirm master is using localfs cache (other than the presence of files in the cache dir)?
22:12 DanyC_ joined #salt
22:13 minum Edgan: Some are remote but same host & ~150ms ping
22:14 netcho_ joined #salt
22:18 tkojames I have JSON file with VM settings.  I am using salt-cloud. Is it possible to import these settings into a provider file and have it be formatted in the correct YAML format?
22:20 __number5__ joined #salt
22:25 __number5__ joined #salt
22:27 Renich joined #salt
22:28 leonkatz joined #salt
22:31 relidy If I'm iterating over some pillar data, can I make use of the salt['pillar.get']('...') method on the value of that iteration? I'm trying to do something like this: https://gist.github.com/rhoths/a75377534b34671857e2a8cd54ed6cd7. I'd like to provide it a set of defaults to merge in, so maybe I'm just barking up the wrong tree?
22:39 irctc567 joined #salt
22:43 shoemonkey joined #salt
22:49 Tanta joined #salt
22:53 aldevar left #salt
22:58 jrgochan joined #salt
22:58 rylnd hey guys, general question. if you need some serious orchestration, like deploying VMs on VMware, then applying state files in a certain order to certain VM (because they depend on each other) and informing people about the status via slack, would you rather use the orchestrator or go straight ahead and create a custom runner? i am looking for some best
22:58 rylnd practice here to determine which route to go for the level of complexity. thanks
23:00 gtmanfred I would use state.orch
23:01 * whytewolf is a fan of state.orch
23:07 rylnd thanks. maybe you guys can answer me another question that i had today
23:08 rylnd i have an orch and use a slack state to send a message to a slack room. i pass pillar info to that slack state. i would like to do something like this https://gist.github.com/jbfriedrich/59192cee02ea932d73ce8e99e8905fcc. but of course my example does not work, but you should get the idea what i want to try. i want to use a variable in the pillar data that i
23:08 rylnd pass.
23:09 gtmanfred what does the slack.sendmsg-instance state look like?
23:10 rylnd i would like to send status messages with embedded details like server names and other info
23:10 rylnd gtmanfred: one sec, let me login to vpn
23:11 cliluw joined #salt
23:12 rylnd gtmanfred: i have updated the gist and added the info
23:13 gtmanfred where are you using the pillar['minionid'] ?
23:14 rylnd gtmanfred: frick. sorry. copy and paste error. i am not awake for long. let me fix that real quick
23:14 gtmanfred :)
23:20 rylnd gtmanfred: thanks for helping out. i now updated it to the later, more real example i had this afternoon :-)
23:20 gtmanfred where does the `{{server}}` come from?
23:21 gtmanfred also what is your actual error?
23:21 rylnd i put that in for illustration
23:21 jeffspeff joined #salt
23:21 rylnd i know that that doesnt work
23:21 rylnd as you can see, i want to pass some information, like the instance name to the message and send it to slack. like "deploying component to instnace foobar" or something like that
23:21 rylnd i wonder how to do that, as {{ server }} in that contect of course would not work, even if it was defined
23:22 gtmanfred why wouldn't it work if it was defined?
23:23 rylnd it throws "Pillar data must be formatted as a dictionary, unless pillar_enc is specified"
23:23 rylnd every time i want to try something like that
23:23 gtmanfred hrm, odd cause it is a dictionary.
23:23 rylnd exactly my though
23:23 rylnd * thought
23:25 gtmanfred If someone else has a thought, I would be interested, but I have to pack up for the day, got a thing i got to go to tonight, sorry
23:25 onlyanegg joined #salt
23:27 whytewolf I'm running it through my spider decoder ring now
23:27 gtmanfred <3
23:27 gtmanfred thanks whytewolf
23:27 rylnd gtmanfred: no biggie. thanks so far
23:27 rylnd thanks whytewolf
23:31 rylnd i would also be interested to understand if it is possible to do use the orchestrator to target a minion based on certain criteria and then extract information from grains and assign them to a variable. so for example, I target for 'G@shard:{{ shard }} and G@environment:{{ env }} and G@role:fs', and it matches only one minion. I now want to get the minion id
23:31 rylnd or the hostname as assign it to {{ instancename }} to use it in slack messages. How would I be able to achieve this in the orchestrator. is that possible at all?
23:31 rylnd thanks guys! much appreciated!
23:31 whytewolf humm
23:33 whytewolf okay.... interesting! one sec i will post results
23:34 whytewolf https://gist.github.com/whytewolf/fccbe7645275cef79cf6ee4f17e972f7
23:34 whytewolf that worked
23:35 whytewolf it looks like putting the {} in was causing it to preproccess before getting to yaml
23:39 PeterO joined #salt
23:40 whytewolf as for using the minion id in the slack message. that might be better done inside your state file that gets run by the state. normally when i do something like this  put the server before the message so in my output section i have something like - message: '>{{salt.grains.get('id')}}: {{pillar.message}}'
23:41 whytewolf that way it comes out as if my minion was say salt01.local 'salt01.local: Preparing file server'
23:41 whytewolf which is just way more readable to me
23:42 rylnd whytewolf: thanks. that was my ideas as well before i stopped working this afternoon. so there is no way to put contents from a variable inside the pillar that i pass over from the orch to the slack state file?
23:43 whytewolf no you can use variables. I just don't know about the grain data part of it
23:45 whytewolf updated my test to show using variable and that did work
23:51 jwerak` joined #salt
23:52 __number5__ joined #salt
23:53 kiltzman joined #salt
23:53 rylnd whytewolf: gotcha. thanks
23:53 whytewolf no problem
23:54 kiltzman joined #salt
23:54 kiltzman joined #salt
23:55 nickabbey joined #salt
23:55 rylnd now i just have to figure out why i get these weird "[salt.transport.ipc][ERROR   ][20930] Exception occurred while handling stream: [Errno 0] Success" errors from
23:55 rylnd i think i saw an issue about it today
23:56 kiltzman joined #salt
23:56 rylnd once that error pops up, i have to restart the salt master or i get the weirdest effects (like salt-cloud not being able to use pyvmomi to deploy vms)
23:56 whytewolf that is odd
23:57 __number5__ joined #salt
23:57 whytewolf there is this issue https://github.com/saltstack/salt/issues/34985
23:57 saltstackbot [#34985][OPEN] Exception occurred while handling stream: [Errno 0] Success | Description of Issue/Question...
23:57 whytewolf but no fix or cause is ever mentioned
23:57 kiltzman joined #salt
23:58 rylnd yeah
23:58 jas02 joined #salt
23:59 rylnd it happens since i am using the orch to use the cloud runner to deploy via map file
23:59 rylnd https://github.com/saltstack/salt/pull/34456 might be realted too, its mentioned
23:59 saltstackbot [#34456][MERGED] Be more careful when making the SMinion | What does this PR do?...

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