Perl 6 - the future is here, just unevenly distributed

IRC log for #salt, 2016-12-16

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

All times shown according to UTC.

Time Nick Message
00:02 bltmiller joined #salt
00:03 edrocks joined #salt
00:05 aarontc joined #salt
00:05 stooj joined #salt
00:25 djgerm i've been trying to wrap my brain around what you're saying there… you have a grain that's multiple lines?
00:26 djgerm is that common?
00:36 whytewolf i think they meant a _grain
00:39 ponyofdeath anyone here have a good idea how to know when vm was provisioned with vagrant from the grains info?
00:40 pipps joined #salt
00:44 kiorky joined #salt
00:48 pipps joined #salt
00:57 sh123124213 joined #salt
01:01 hemebond ponyofdeath: Do you mean "when" as in finished provisioning? Or "when" as in "was this provisioned by Vagrant or something else"?
01:05 raspado joined #salt
01:06 jas02 joined #salt
01:07 ponyofdeath hemebond: just detect it and include pillar data based on it
01:07 hemebond Have you looked through the grains?
01:07 ponyofdeath yeah i dont see anything vagrant related
01:07 hemebond Actually...
01:08 ponyofdeath i could check for the vagrant user
01:08 iggy I don't think there's anything like that
01:08 hemebond Vagrant isn't a virtualizer.
01:08 hemebond So it'll be whatever platform is running the VM.
01:08 ponyofdeath yeah i was wondering if someone alread had dome something
01:09 hemebond How would you know?
01:09 ponyofdeath vagrant user and ssh key vagrant needs
01:09 hemebond Unless the Vagrant setup put something on the machine as an indicator.
01:09 ponyofdeath yeah vagrant setup should really do something like that
01:09 jmickle joined #salt
01:09 iggy sounds like you're doing something wrong
01:09 ponyofdeath but to have a vagrant image i think there is a requirement for the vagrant user and ssh key pair
01:09 iggy I've never had a vagrant machine last more than like an hour
01:10 ponyofdeath well yeah
01:10 ponyofdeath but i want to do a few things different in the vagrant environment
01:10 iggy set the grain yourself?
01:10 hemebond Vagrant I think can set grains for you.
01:10 hemebond Or put a file on the machine with grains.
01:10 ponyofdeath ahh perfect
01:11 ponyofdeath thats it
01:11 hemebond I've not done it but I thought it could.
01:15 whytewolf grrr pygit2 is such a disapointment why does it need frigging gcc to be installed
01:16 lws joined #salt
01:17 jeddi joined #salt
01:20 sarcasticadmin joined #salt
01:25 buu_ joined #salt
01:27 lws joined #salt
01:31 debian112 joined #salt
01:31 amontalban joined #salt
01:31 stooj joined #salt
01:31 aw110f joined #salt
01:35 gableroux joined #salt
01:39 lws joined #salt
01:40 jmickle joined #salt
01:45 XenophonF GitPython is the way to go.
01:45 XenophonF pygit2+libssh2=sucks
01:47 pipps joined #salt
01:50 lws joined #salt
01:51 whytewolf ... GitPython can do authenticated key based repos? according to the docs "pygit2 only"
01:51 eprice joined #salt
01:52 nickabbey joined #salt
02:02 edrocks joined #salt
02:03 lws joined #salt
02:03 jmickle joined #salt
02:07 raspado joined #salt
02:07 jas02 joined #salt
02:10 XenophonF whytewolf: not sure what you mean
02:11 XenophonF like, a password-protected ssh key?
02:11 whytewolf XenophonF: https://docs.saltstack.com/en/latest/topics/tutorials/gitfs.html#per-remote-configuration-parameters
02:12 XenophonF ah
02:12 Nahual joined #salt
02:13 XenophonF i have that configured in the salt-master user account's .ssh/config file
02:13 XenophonF GitPython uses git, which uses ssh, like normal
02:13 f1r3 joined #salt
02:14 lws joined #salt
02:14 onlyanegg joined #salt
02:16 aidin joined #salt
02:22 Guest87098 joined #salt
02:25 lws joined #salt
02:30 sh123124213 joined #salt
02:36 lws joined #salt
02:37 netcho joined #salt
02:40 sebastian-w joined #salt
02:42 pipps joined #salt
02:46 evle joined #salt
02:48 ilbot3 joined #salt
02:48 Topic for #salt is now Welcome to #salt! <+> Latest Versions: 2016.3.4, 2016.11.0 <+> 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:54 pipps joined #salt
02:55 fracklen joined #salt
03:00 lws joined #salt
03:01 sh123124213 joined #salt
03:06 nickabbey joined #salt
03:21 lws joined #salt
03:22 jmickle joined #salt
03:28 debian112 joined #salt
03:30 bastiandg joined #salt
03:39 eprice joined #salt
03:53 borgstrom joined #salt
03:53 netcho joined #salt
04:03 edrocks joined #salt
04:05 dxiri joined #salt
04:06 pipps joined #salt
04:08 raspado joined #salt
04:10 aidin1 joined #salt
04:12 ajw0100 joined #salt
04:13 lws joined #salt
04:23 preludedrew joined #salt
04:24 lws joined #salt
04:39 jmickle joined #salt
04:41 nickabbey joined #salt
04:43 amontalban joined #salt
04:43 amontalban joined #salt
04:45 lws joined #salt
04:57 mavhq joined #salt
05:01 jmickle joined #salt
05:02 sh123124213 joined #salt
05:03 Rubin joined #salt
05:04 mattp_ joined #salt
05:04 eprice joined #salt
05:08 pipps joined #salt
05:11 jas02 joined #salt
05:33 raspado joined #salt
05:35 pipps joined #salt
05:41 onlyanegg joined #salt
05:54 netcho joined #salt
05:55 rdas joined #salt
06:00 justan0theruser joined #salt
06:03 ivanjaros joined #salt
06:05 edrocks joined #salt
06:08 mpanetta joined #salt
06:12 wangofett joined #salt
06:13 jas02 joined #salt
06:14 jmickle joined #salt
06:22 lws joined #salt
06:26 mpanetta joined #salt
06:27 SpX joined #salt
06:28 vodik joined #salt
06:33 gladia2r joined #salt
06:34 q1x joined #salt
06:49 sh123124213 joined #salt
06:53 raspado joined #salt
06:53 raspado i have a salt schedule, the cron is set to 0 */6 * * *
06:53 raspado is that going to run every 6th hour once the schedule was added
06:54 onlyanegg joined #salt
06:54 bayindirh raspado: The cron will run at 00:00, 06:00, 12:00, 18:00. Every day
06:55 raspado hmmm so it should have ran at 06:00
06:55 bayindirh Cron time fields are not relative, but absolute.
06:55 raspado okay thanks bayindirh
06:55 bayindirh Have you set the executable flag on the file?
06:55 bayindirh You're welcome.
06:56 fracklen joined #salt
07:01 raspado is there a way I can do something like this "if [".euw1.", ".euw2."] in __grains__['fqdn'] "
07:02 raspado so if either euw1 or euw2 matches in grain
07:02 buu I'm going to go with "yes"
07:02 buu What''s stopping you?
07:03 bayindirh https://docs.saltstack.com/en/getstarted/config/jinja.html <~ This page says you can.
07:04 Fiber^ joined #salt
07:15 jas02 joined #salt
07:17 jas02 joined #salt
07:18 ivanjaros joined #salt
07:19 jas02 joined #salt
07:23 sh123124213 joined #salt
07:24 aidin joined #salt
07:25 jas02 joined #salt
07:26 sh123124213 joined #salt
07:27 sh123124213 joined #salt
07:29 jas02 joined #salt
07:31 J0hnSteel joined #salt
07:35 jas02 joined #salt
07:45 raspado is a job is running
07:46 raspado on a minion and its still running when its supposed to run next, will salt run that job again
07:46 raspado so having 2 identical jobs running?
07:46 amontalban joined #salt
07:46 amontalban joined #salt
07:48 fracklen joined #salt
08:01 edrocks joined #salt
08:10 netcho joined #salt
08:15 samodid joined #salt
08:15 rofl_____ is there a way to log all run salt commands to a salt returner?
08:18 jas02 joined #salt
08:22 felskrone joined #salt
08:24 rofl_____ could one enable a returner by default for all salt runs ex?
08:26 fracklen joined #salt
08:26 mpanetta joined #salt
08:30 Witol joined #salt
08:31 fracklen joined #salt
08:32 icebal joined #salt
08:32 Witol Hi there! - It is possible to use salt-ssh with sudo user and not using NOPASSWD in sudoers ?
08:32 Witol I see that it works when i put passwd in roster file but it not work if i prompt salt-ssh with   --askpas
08:33 Witol it is possible to use that without password stored in roster file ?
08:34 wangofett joined #salt
08:35 bayindirh raspado: IIRC, Salt will refuse to run a statefile that's already running on a minion. Why not try with something harmless?
08:35 Ztyx joined #salt
08:44 dariusjs joined #salt
08:52 toanju joined #salt
08:53 madboxs joined #salt
08:56 _Cyclone_ joined #salt
09:00 sebastian-w joined #salt
09:12 netcho is there a way of using the same cloud profile for multiple subnets?
09:13 netcho withouth having 3 of them for each subnet
09:14 Witol any help ?
09:16 buu Write the prompt to the standard error and read the password from the standard input instead of using the terminal device.  The password must be followed by a newline character.
09:16 netcho if i set multiple availabilty zones in provider config will it accept multuple subnets in profile?
09:16 buu Witol: Wait, where do you want to store the password?
09:16 mikecmpbll joined #salt
09:16 teclator joined #salt
09:19 jas02 joined #salt
09:20 rofl_____ so its not possible to use slack returner as a audit log for all ran salt commands?
09:22 Witol i just want to prompt password from command line
09:22 Witol using switch   --askpas
09:22 buu Witol: so who is going to enter it?
09:22 Witol person who prompt salt-ssh from command line
09:23 buu and why
09:23 buu Witol: sudo is running on the minion..
09:23 Witol we got some machines where we can't install salt minion and we we can't add to sudoers NOPASSWD
09:24 jeddi joined #salt
09:25 Witol storing passwd in roster file is not good idea - for now better is to prompt password from terminal
09:27 Witol so problem is how to use salt-ssh with sudo and not using NOPASSWD
09:32 jas02 joined #salt
09:32 catpig joined #salt
09:35 Witol ant without sroing password in roster file
09:35 Witol and without sroing password in roster file
09:39 madboxs joined #salt
09:44 N-Mi_ joined #salt
09:50 xMonkModex joined #salt
09:51 xMonkModex Hi all. Does anyone have a good simple script to check if there are any pending changes on the salt clients usable by the likes of nagios?
09:52 Reverend pending changes?
09:52 Reverend like, unapplied configs?
09:54 Witol|2 joined #salt
09:54 madboxs joined #salt
09:54 xMonkModex Reverend: Exactly that.
09:55 xMonkModex In our environment, there's a number of people and a number of machines. To mitigate any errors, would be good to make sure that changes made will result in updates to one or more machines before a later date.
09:57 Reverend reactor?
09:57 Reverend salt-mine?
09:59 xMonkModex I don't use either :-/
09:59 xMonkModex Simple master-client setup.
10:06 nickabbey joined #salt
10:14 babilen xMonkModex: Continuously running highstates would ensure that changes only exist for a very short time
10:15 amontalban joined #salt
10:15 amontalban joined #salt
10:15 xMonkModex babilen: What's the best method to achieve my intentions? :-)
10:16 babilen xMonkModex: What *are* your intentions exactly?
10:16 babilen What does it mean for "changes made will result in updates to one or more machines before a later date" ?
10:17 xMonkModex Given 50 salt clients on a master, someone changing something to affect one node accidentally affects 10 nodes. I want a nagios/whatever alert to say "hey, node 3 has pending changes"
10:17 xMonkModex So that 2 months down the line, a change intended for node3 does not also bring about the other changes not intended for it.
10:20 babilen So you don't want to apply pending changes?
10:21 xMonkModex babilen: Assume that I do not. And that something is misconfigured.
10:21 xMonkModex If I am considering an unlikely use-case then feel free to tell me :-)
10:21 babilen You could run a highstate with test=True and work with the output of that
10:22 babilen Might be easier as JSON, but that depends on what you actually want to do with it
10:22 xMonkModex Yes. And I believe salt has implemented a return-code passthrough too.
10:22 xMonkModex babilen: I was hoping there was a simple salt return of "X pending changes, $?"
10:23 jhauser joined #salt
10:23 xMonkModex Seems from a salt-client perspective this would be quite easy to implement.
10:23 babilen Isn't that what a highstate with test=True gives you?
10:24 amcorreia joined #salt
10:24 xMonkModex It gives surplus feedback really. Means I need to "pluck out" the pending changes in a dirty way.
10:25 s_kunk joined #salt
10:25 xMonkModex If there's nothing cleaner, it'll have to do :-)
10:29 jas02 joined #salt
10:31 babilen xMonkModex: Well, that is the way to ask the minion if it has pending changes that would be applied during a highstate
10:32 jas02 joined #salt
10:33 cyteen joined #salt
10:36 Hydrosine joined #salt
10:43 fracklen joined #salt
10:43 jas02 joined #salt
10:44 mher718 joined #salt
10:48 SamYaple joined #salt
10:50 mavhq joined #salt
10:55 o1e9 joined #salt
10:55 guerby joined #salt
10:58 Hydrosine joined #salt
10:59 dariusjs joined #salt
11:01 N-Mi__ joined #salt
11:04 edrocks joined #salt
11:07 jas02 joined #salt
11:08 Inver joined #salt
11:16 mher718 joined #salt
11:16 mher718 hello guys.. need help
11:16 mher718 about state and pillar
11:17 mher718 i am currently working for a radius salt-state
11:17 mher718 here's my radius state..
11:17 mher718 {% for user in salt['pillar.get']('freeradius:users') %} {{ user['username'] }} MD5-Password := "{{ user['password'] }}"        Service-Type = NAS-Prompt-User,        Fortinet-Access-Profile = "{{ user['group'] }}",        Cisco-AVPair = "shell:priv-lvl=15" {% endfor %}
11:18 fracklen joined #salt
11:19 thealphaking01 joined #salt
11:19 thealphaking01 hey
11:19 thealphaking01 if i do something from the salt master, such as salt '*' state.apply minion1
11:20 mher718 here's my sample config => https://gist.github.com/elmeramigleo/9367975f44115ead3669a366cc1356a2
11:20 thealphaking01 and minion1 contains file.managed with file location as salt:://minion1/files/conf
11:21 thealphaking01 then will the minion take this file from master?
11:22 mher718 sorry.. should be this one => https://gist.github.com/elmeramigleo/3e2267dd41ccc5a0a3df74993f3c9989
11:22 thealphaking01 no no, thats not my doubt. if i do salt '*' state.apply minion1 with minion1 having salt://minion1/files/conf, then when the init.sls of minion1 is running, where does it take the file from?
11:22 thealphaking01 i think i was unable to explain properly
11:22 thealphaking01 in the master, i ran salt * state.apply nginx
11:23 mher718 i need a config that can read pillar file even without the av-role: level-1, av-lvl: 1 in it
11:23 thealphaking01 inside the init.sls of nginx , for nginx config I take it from salt://nginx/files/nginx.conf
11:24 mher718 because i am getting this error => Comment: Unable to manage file: Jinja variable 'dict object' has no attribute 'av-role'
11:24 thealphaking01 but will this work in the minion, even though this particular file isnt present in the minion? will this file be fetched from the master
11:25 babilen thealphaking01: salt:// is file_roots and comes from the master (and is, in its entirety) available to all minions
11:27 dariusjs joined #salt
11:28 thealphaking01 thanks man
11:30 mher718 any takers from my question? :)
11:31 peters-tx joined #salt
11:32 babilen mher718: So you don't want to define av-role in the rendered file if it is not defined in the pillar?
11:32 eqa1981 joined #salt
11:32 eqa1981 hello guys
11:32 eqa1981 need your help
11:32 eqa1981 https://gist.github.com/elmeramigleo/3e2267dd41ccc5a0a3df74993f3c9989
11:33 rai__ joined #salt
11:33 eqa1981 i am getting this error when i run the state
11:33 babilen eqa1981: I was just helping a guy with the same question
11:33 babilen Curious
11:33 eqa1981 Comment: Unable to manage file: Jinja variable 'dict object' has no attribute 'av-role'
11:33 babilen In fact I believe that you might be the same person
11:34 eqa1981 my previous firefox session was closed.. it's also me
11:34 babilen 12:32:22 babilen > mher718: So you don't want to define av-role in the rendered file if it is not defined in the pillar?
11:34 babilen Or rather: Cisco-AVPair
11:34 eqa1981 there's a user profile that don't need the Cisco* param
11:35 eqa1981 that's why the user3 don't have Cisco* param in the pillar file
11:35 babilen So check if they are defined ( {% if pillar.foo.av-role is defined %} .... {% endif %} )
11:35 babilen And enclose the optional bits therein
11:36 babilen You have to adapt the pillar.foo.av-role to your actual needs. In your case it should presumably be user.av-role
11:37 eqa1981 hmmm...
11:37 eqa1981 where should i put that?
11:37 eqa1981 sorry, i am still in learning phase with regards to salt-stack
11:38 babilen Around https://gist.github.com/elmeramigleo/3e2267dd41ccc5a0a3df74993f3c9989#file-gistfile1-txt-L7 and the next line
11:39 babilen http://jinja.pocoo.org/docs/dev/templates/#if
11:42 eqa1981 ok
11:46 aidin joined #salt
11:48 netcho joined #salt
11:48 netcho joined #salt
11:48 sebastian-w joined #salt
11:50 eqa1981 i have managed to make it work on a different approach..
11:50 eqa1981 thanks for your help
11:50 jas02 joined #salt
11:54 nickabbey joined #salt
11:55 SamYaple is there a way I can get a module to execute from within a virtualenv (in this case dockerng)?
11:56 J0hnSteel joined #salt
11:57 onmeac joined #salt
11:58 mher718 joined #salt
12:01 Bryson joined #salt
12:10 Straphka joined #salt
12:12 amontalban joined #salt
12:12 amontalban joined #salt
12:12 sebastian-w joined #salt
12:14 Straphka joined #salt
12:19 thealphaking01 joined #salt
12:19 thealphaking01 hey,
12:20 thealphaking01 i am doing something like, cmd.run: - name: | salt master -d
12:20 thealphaking01 while running this, it says master timed out
12:21 madboxs_ joined #salt
12:24 Kelsar joined #salt
12:25 sebastian-w joined #salt
12:25 mikecmpb_ joined #salt
12:28 mpanetta joined #salt
12:29 Ztyx left #salt
12:30 Kelsar joined #salt
12:31 Bryson joined #salt
12:32 saintromuald joined #salt
12:33 sebastian-w_ joined #salt
12:42 stooj joined #salt
12:44 ThierryR joined #salt
12:45 Kelsar joined #salt
12:52 Kelsar joined #salt
12:52 thealphaking01 how do i automate salt key acceptance?
12:52 thealphaking01 what do i write in reactor?
12:54 chowmein__ joined #salt
12:57 babilen thealphaking01: That's exemplified in the reactor documentation
12:58 babilen But you could just automatically accept keys if that is what you want
13:03 amontalban joined #salt
13:03 amontalban joined #salt
13:04 dariusjs joined #salt
13:04 tkharju joined #salt
13:05 thealphaking01 i am getting an error saying master hostname salt not found
13:06 babilen Did you configure your DNS server to correctly resolve 'salt' ?
13:08 thealphaking01 i am running things locally using vm
13:08 thealphaking01 in my minion i have pointed to the master IP saying master: 192.168....
13:09 thealphaking01 and in the master i have set auto accept as true
13:09 babilen Why is it trying to resolve 'salt' then?
13:09 thealphaking01 don't know
13:10 babilen You might want to provide actual errors, commands and configuration on a pastebin
13:10 babilen Also some information on your VM setup and steps you've taken to ensure that the VMs can communicate with each other
13:10 thealphaking01 when i do a service salt-minion start, it would try to hit the master right?
13:11 numkem joined #salt
13:12 babilen It would, yes
13:13 JohnnyRun joined #salt
13:19 thealphaking01 figured out the error, thanks :)
13:25 ProT-0-TypE joined #salt
13:30 tellendil joined #salt
13:31 tellendil Hi ! I've got a question about file.managed.  I'm running my file through a jinja template and would need to include the content of another file into it. Is this feasible ? I tried the`include` jinja directive, but that says "not found".
13:36 amontalban joined #salt
13:36 amontalban joined #salt
13:42 Bico_Fino joined #salt
13:42 thealphaking01 in my master config, i have written reactor: - 'salt/minion/*/start': /srv/reactor/start.sls
13:42 thealphaking01 but its not responding. this should happen whenever a new minion connects, right?
13:43 XenophonF tellendil: are you trying to catenate two files, one of which is the template and the other is a file on the minion's file system?
13:45 tellendil XenophonF: no, both files are on the master
13:45 XenophonF why bother splitting the template into two parts?
13:45 XenophonF keep it simple
13:46 XenophonF combine the two files ahead of time
13:46 tellendil XenophonF: because one is a ssh public key, that I need in the other file and in other places
13:47 tellendil so I don't see how I could combine them before running the state
13:47 XenophonF so one file is... something, and you deploy it elsewhere, and the other file is an SSH public key
13:47 XenophonF why not put the SSH public key into a variable, and then with a little jinja magic, if the variable is defined, sub in the value, otherwise don't
13:48 XenophonF and use whitespace trimming to clean up the excess?
13:48 XenophonF i mean, without a concrete example of what you mean, i'm guessing
13:48 tellendil the first file is a tinc configuration yup, that expects the public key to be in. Could I load the file in the variable ? that would be the best
13:48 XenophonF you can have multiline strings
13:48 XenophonF whether as jinja variables or as pillar data or whatever
13:48 XenophonF hang on let me see if i can give you a real example
13:49 tellendil XenophonF: that would mean having the file in a pillar, which I'd rather avoid if possible :/
13:49 edrocks joined #salt
13:49 XenophonF it's not as ugly as you think
13:49 tellendil otherwise twice a "append" in the file ? would that work ?
13:49 thealphaking01 how do i make reactor respond always?
13:49 thealphaking01 for all events?
13:50 XenophonF tellendil: here's an example of a pillar key that contains two X.509 certificates as its value - https://github.com/irtnog/salt-pillar-example/blob/master/login/example/com/init.sls#L170
13:50 XenophonF er,
13:51 XenophonF no better example - here's a RSA public key in Pillar data - https://github.com/irtnog/salt-pillar-example/blob/master/login/example/com/init.sls#L78
13:51 debian112 joined #salt
13:51 kulty joined #salt
13:52 XenophonF and here's the jinja template that ends up subbing in the key - https://github.com/irtnog/shibboleth-formula/blob/master/shibboleth/idp/files/conf/metadata-providers.xml#L120
13:54 XenophonF and here's what the resulting file ends up looking like (sorry, XML) - https://gist.github.com/xenophonf/791b51b739a9badc43ca70aae7dce7b5#file-metadata-providers-xml-L75
13:54 XenophonF sorry, not a great example given the complexity of the template and the output file
13:55 Brew joined #salt
13:55 XenophonF but the whole point of jinja/mako/wempy/etc. is that you can define a very generic template and then substitute values (Grains, Pillar data, variables defined in Salt State files, etc.) into the template
13:56 XenophonF if you're thinking that you need to somehow concatenate two files on the master, then you're doing it wrong
13:58 thealphaking01 hey guys
13:58 thealphaking01 my reactor isn't getting triggered
13:58 tellendil XenophonF: mmh ok
13:58 thealphaking01 i want to trigger it always
13:58 thealphaking01 anyway to do that?
13:58 tellendil thanks a lot for the example ! Il have to look a bit more at this then thanks !
13:59 XenophonF tellendil: the Jinja whitespace control stuff took me a while to grok
13:59 XenophonF but i was able to make my template XML files look pretty nice eventually
14:00 XenophonF thealphaking01: you might need to ask later when whytewolf or iggy are on
14:00 XenophonF they do stuff with reactors
14:00 XenophonF maybe babilen too
14:07 numkem joined #salt
14:07 pysen joined #salt
14:08 babilen thealphaking01: A reactor wouldn't always react, but only when there are events.
14:08 babilen So .. we need a more detailed example of what you tried, what you expected and what happened (use one of http://paste.debian.net, https://gist.github.com, http://sprunge.us, … to show us)
14:09 babilen In the end it sounds as if you want to use a glob that matches everything
14:11 ivanjaros3916 joined #salt
14:12 kulty joined #salt
14:14 racooper joined #salt
14:15 tmrtn[m] joined #salt
14:16 sarcasticadmin joined #salt
14:17 _Cyclone_ joined #salt
14:18 SamYaple when using the python renderer in salt, is there an accepted way to import a common file like with jinja2 {% from 'path/to/file.sls' import funcname %}
14:19 babilen It's Python, so "import re" would import the 're' module
14:20 m0d joined #salt
14:25 hlub it seems like restart of salt-minion is required to see a new file with salt-call cp.list_master, when this file is accessed via gitfs. I'm using version 2016.11.0.
14:26 hlub or it might be a restart of the master, not sure.
14:26 babilen That shouldn't be necessry. Run "salt-run fileserver.update" to update file_roots
14:26 XenophonF hlub: the salt fileserver only updates its clone of the git repo every 60s
14:26 nickabbey joined #salt
14:27 babilen This is being ^^
14:28 hlub I was relying on that every minute update. waited much longer times. have to test the update command.
14:30 kbaikov joined #salt
14:36 SamYaple babilen: import a module installed on the host, not a file transfered over from salt. then we are talking about relative imports
14:36 SamYaple babilen: i can make that work, but im asking how others have done this/is there an accepted practice
14:37 babilen SamYaple: What are you trying to achieve?
14:37 thealphaking01 hey
14:37 thealphaking01 in my reactor, i have done something like cmd.run: - name: | salt 'tag' state.apply module
14:38 babilen That wouldn't work
14:38 babilen But go on
14:38 thealphaking01 when i am doing salt 'minion' state.apply module from my cli, the module works
14:38 Bico_Fino joined #salt
14:38 DEger joined #salt
14:39 thealphaking01 cmd.run: - name: | salt 'minion' state.apply module
14:39 _Cyclone_ joined #salt
14:39 SamYaple babilen: shared class and functions defined in a file at /srv/salt/blah/macros.py, much like you can import jinja2 macros from the same file with {% from 'blah/macros.j2' import funcname %}
14:39 thealphaking01 but the reactor is unable to do it.
14:39 thealphaking01 even though it shows me that this was rendered
14:39 babilen SamYaple: You can define those in a custom execution module, sync that to the minions and import it. At least that *should* work, hope there isn't a race condition in the loader somewhere
14:40 tellendil XenophonF: not the best, but this worked : public_key: "{% include "files/tinc/" + vpn + "/" + node["name"] + "/rsa_key.pub" %}", again not very nice, but I'll got for it for now
14:40 babilen thealphaking01: Yes, that is expected. Use state.apply rather than cmd.run with a suitable tgt: expression in the reactor
14:41 babilen thealphaking01: Or salt.state
14:41 thealphaking01 this would just be state.apply, or local.state.apply?
14:41 dariusjs joined #salt
14:42 babilen The latter
14:42 babilen And you'd have to specify the state
14:42 babilen Lunch!
14:42 babilen (so late)
14:42 SamYaple babilen: yea i had considered that but didn't want to for reasons I dont remember. ill look into it again. thanks!
14:43 thealphaking01 salt.state gave me an error saying 'salt' is not present as a key
14:43 thealphaking01 how do i specify the state?
14:45 thealphaking01 right now i have written: do_something: local.state.apply: tgt: {{ data["id"] }}
14:45 thealphaking01 where do i write the state?
14:45 thealphaking01 -sls: state_name
14:45 thealphaking01 ?
14:47 feld joined #salt
14:49 cscf thealphaking01, not sure what you mean
14:50 thealphaking01 lets say i want to run the state temp. how do i specify this while using local.state.apply:
14:51 babilen thealphaking01: It's typically a function argument -- See, for example, the add_new_minion_to_pool example in the documentation
14:51 Tanta joined #salt
14:52 babilen Pass arguments as arg or kwarg depending on type
14:53 jschoolcraft joined #salt
14:57 thealphaking01 i wrote something, but it took all of my sls files
14:58 dxiri joined #salt
14:58 Bico_Fino joined #salt
14:59 m0d I’m trying to write my first engine that will run on a minion, but I don’t understand where the engine should be located on the minion. The documentation says that it should be in the Salt path, but I guess I am confused as to what that means. Do I have to specify engine_dirs in the minion configuration or is there a default path that Salt looks for engines? Also, does the engine file need to be managed or can it be put in a _engines directo
15:00 debian112 joined #salt
15:01 babilen thealphaking01: "something" ?
15:03 thealphaking01 i wrote: local.state.apply: tgt ... -sls: -salt://temp
15:03 thealphaking01 but instead of temp, its taking top.sls
15:04 babilen Yes, you have to pass it as argument. Did you check the documentation I mentioned earlier?
15:05 babilen There is a very clear and complete example that shows everything you need
15:05 anotherzero joined #salt
15:06 Reverend joined #salt
15:06 netcho joined #salt
15:07 thealphaking01 couldnt find it
15:07 babilen Where did you look?
15:08 thealphaking01 got it
15:09 godlike joined #salt
15:09 godlike joined #salt
15:10 al joined #salt
15:11 ThomasJ joined #salt
15:12 SamYaple babilen: that was the shortest lunch ever
15:14 babilen Well .. I packed something :)
15:14 mpanetta joined #salt
15:15 mpanetta joined #salt
15:16 nickabbey joined #salt
15:19 dxiri joined #salt
15:19 whytewolf m0d: https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.saltutil.html#salt.modules.saltutil.sync_engines would imply that you can just use _engines and then sync
15:21 jcl[m] joined #salt
15:21 saintaquinas[m] joined #salt
15:21 jerrykan[m] joined #salt
15:21 Guest85946 joined #salt
15:21 Mads[m]1 joined #salt
15:21 M-MadsRC joined #salt
15:21 dnull[m] joined #salt
15:21 M-liberdiko joined #salt
15:21 freelock[m] joined #salt
15:22 m0d whytewolf: thanks, I'll give that a try
15:27 gableroux joined #salt
15:29 cyteen joined #salt
15:31 keltim joined #salt
15:33 salato can I override grains from cli?
15:35 nickabbey joined #salt
15:44 dnull joined #salt
15:49 babilen salato: They are provided by the minion .. not sure if you can override them. Why do you want to?
15:50 babilen They are typically rather static and minion specific data that should be correct (and if its not correct we should address that)
15:50 netcho joined #salt
15:54 jas02 joined #salt
15:54 jas02 joined #salt
15:55 salato babilen: only for testing purposes in this case
15:55 babilen Testing what?
15:55 salato I had something like "disablecron" in a dev minion
15:55 salato and want to have "disablecron: True" there without changing that grain
15:55 babilen Not sure if you can pass that
15:56 babilen What happens if you try?
15:56 salato try what :)
15:56 babilen Passing grains on the command line
15:56 salato I totally ignore the syntax
15:57 salato grains.set "disablecron" True ?
15:57 jas02 joined #salt
15:57 babilen No, that sets the grain
15:57 babilen You want to pass them on the command line, just like you can pass pillars, don't you?
15:57 salato (also I have problem specifying things like saltenv=something when having parameters in the salt command..)
15:58 salato in the command environment?
15:58 babilen Don't ask me about environments. They were (are?) a complete pain in the arse and I gave up on them completely a long time ago
15:58 salato no I mean, shell environment
15:58 salato like: foo=bar command
15:58 netcho u canno pass ENV in pillar afaik
15:58 netcho if that is what u ask
15:59 salato ok so, babilen can you give me an example of what you mean?
16:00 babilen No, I can't because I am not sure what *you* want to do
16:00 salato lol, ok
16:00 salato this wasn't so important anyway, thanks for the patience :)
16:00 babilen You can pass pillars on the command line like: salt 'foo' state.apply pillars='{"foo":"bar"}'
16:00 babilen It sounds as if you want to specify grains on the fly in a similar manner.
16:01 m0d whytewolf: thanks again, that solved my issue
16:01 babilen I don't think that you can do that, but you could try grains='{"foo":"bar"}'
16:01 salato babilen: trying
16:01 babilen I don't actually expect that to work, but that should be easy to find out
16:01 babilen (assuming that is what you want)
16:02 salato babilen: that keyword is not valid, says salt
16:02 salato so no.
16:02 babilen There you go then
16:04 ivanjaros joined #salt
16:04 netcho if i understand correctly u wnt to have a temp value for that grain only during that state run? salato
16:08 teclator joined #salt
16:08 salato netcho: yes
16:09 salato that's correct
16:10 bigjazzsound joined #salt
16:13 _JZ_ joined #salt
16:13 madboxs joined #salt
16:13 aidin joined #salt
16:14 raspado joined #salt
16:23 Bico_Fino joined #salt
16:30 sp0097 joined #salt
16:32 Salander27 joined #salt
16:32 samodid joined #salt
16:35 Bico_Fino joined #salt
16:37 thealphaking01 joined #salt
16:37 thealphaking01 in reactor, i cannot get the extra data i am passing
16:38 sh123124213 joined #salt
16:38 thealphaking01 i used salt.call event.send 'hitting/master' '{hostname: minion1}
16:38 ajw0100 joined #salt
16:38 thealphaking01 in reactor when i do data["data"]["hostname"] it says the key is not present
16:38 thealphaking01 but i am doing this using their example only
16:39 babilen thealphaking01: You are not defining the top-level 'data' key
16:39 babilen (which is why it is missing)
16:40 thealphaking01 so, how should i send it?
16:40 babilen {'data': .... } if you want to use data['data']
16:41 babilen You obviously have to nest dictionaries if you want to use, well, nested dictionaries
16:42 babilen Or just use data['hostname']
16:43 djgerm joined #salt
16:43 thealphaking01 still says dict object has no attribute called hostname
16:44 babilen What did you do and how do you test it?
16:45 babilen It's rather customary to use the top-level 'data' key
16:46 thealphaking01 salt.call event.send 'hitting/master' '{hostname: minion1}'
16:46 cyborg-one joined #salt
16:46 thealphaking01 and then in jinja, if data["hostname"] == "minion1"
16:46 dxiri joined #salt
16:46 babilen Is that literally your command?
16:47 babilen Or some approximation thereof?
16:47 thealphaking01 literally
16:48 babilen You have to make hostname and minion1 strings .. the way you defined it salt/Python expects that to be (defined) variables
16:48 babilen Use '{"hostname": "minion1"}'
16:53 onlyanegg joined #salt
16:54 JohnnyRun joined #salt
17:02 Salander27 joined #salt
17:04 tiwula joined #salt
17:05 dxiri joined #salt
17:15 madboxs joined #salt
17:20 netcho joined #salt
17:21 keltim joined #salt
17:23 lws joined #salt
17:32 theblazehen joined #salt
17:34 lws joined #salt
17:37 s_kunk joined #salt
17:38 amontalban joined #salt
17:41 s_kunk joined #salt
17:44 nicksloan joined #salt
17:45 djgerm if a grain comes back with many values, how do I specify the second one?
17:45 djgerm I figured something like grains.get ipv4[1] but no love
17:47 sh123124213 joined #salt
17:49 bbradley joined #salt
17:51 Edgan joined #salt
17:53 nickabbey joined #salt
17:55 djgerm also is there a way to render a jinja template with utility or something?
18:00 djgerm grains.item ipv4:1 did it!
18:01 iggy man... paste sites are beautiful things
18:02 bltmille_ joined #salt
18:02 iggy djgerm: no way to render a standalone template really... I've generally resorted to salt-call -l debug state.apply state.foo test=True
18:02 djgerm hmm ok
18:04 aw110f joined #salt
18:04 djgerm that should do it!
18:05 aw110f_ joined #salt
18:05 aarontc joined #salt
18:09 DEger joined #salt
18:09 sh123124213 joined #salt
18:16 madboxs joined #salt
18:18 edrocks joined #salt
18:26 bltmille_ joined #salt
18:26 netcho joined #salt
18:26 lws joined #salt
18:27 johnkeates joined #salt
18:33 djgerm joined #salt
18:36 mikecmpbll joined #salt
18:36 pipps joined #salt
18:47 woodtablet joined #salt
18:54 jikjak joined #salt
18:55 anotherzero joined #salt
18:57 jikjak I have a scenario that I'd like some advice on if possible. I'm deloying a java application - I get by build artifacts from one location, and the configuration for the applications is built by salt. So I have 2 file.recurse states: one for the code, one for the configuration.
18:57 Xopher joined #salt
18:58 jikjak Sometimes there is a file from the code that needs to be removed when a new version is deployed, but if I put clean: True in my file.recurse state I'm going to wipe out all the configuration every time I run a highstate
18:58 jikjak How can I make sure files related only to the old application version are removed, without also removing my config every time I highstate
18:59 jikjak The config would of course get replaced, but now my highstate isn't idempotent any more.
18:59 jikjak Any tips?
19:04 eprice joined #salt
19:07 netcho joined #salt
19:17 iggy djgerm: generally you'll be better off if you learn how to read the output from show_sls/show_highstate... i.e. salt-call state.show_sls --out=yaml state.foo
19:23 Praematura joined #salt
19:23 jikjak One example of what would help is a way to apply an include_pat to what gets cleaned in the directory I'm writing to, as well as what gets copied to it. i.e so files matching .jar or .class would be candidates for getting cleaned up as well as files to get copied to the minion.
19:25 jikjak I fell like this can't be very unusual thing to want - getting build artifacts from one place and config from another putting them into an overlapping directory structure
19:26 iggy jikjak: could you use one file.recurse and 2 different file_roots with the same directory structure (one being jar's and one being config)? Salt will merge them together before the file.recurse
19:28 cyteen joined #salt
19:29 pipps joined #salt
19:29 whytewolf file.recurse also won't affect another file.recurse if it requires it
19:29 tkharju joined #salt
19:30 iggy even with clean?
19:30 jikjak Hi iggy, thanks for the suggestion. That sounds like a good idea. I didn't realize the two roots would be merged in the 1 state. I'll see if it will work for - it gets more complicated because there are also some file.managed states that get put into the same directory structure, so I don't know if I'll be able to condense it down to 1 file.recurse
19:31 whytewolf even with clean
19:32 * iggy had no idea
19:33 jikjak whytewolf: so you're saying I could put the configuration in using one file.recurse, then have the build artifacts put in using another that has "clean: True", and if the second one "require"s the first, the then anything that is managed by the first will not be removed?
19:34 whytewolf humm. hold on. my test is acting strange.. clean isn't working at all
19:34 whytewolf it isn't cleaning anything
19:36 whytewolf okay. looks like there might be a bug in file.recurse.
19:36 iggy :surprised_face:
19:36 morissette joined #salt
19:37 whytewolf but yes. if file.* functions are all chanined together in requires they are meant to work together and build merge directories so that the file functions don't do double the work
19:38 whytewolf the bug I'm seeing seems to be attached to that functionality
19:38 whytewolf if i remove the require it "cleans" the directory and anythign not required. however whent he require is there. no clenaing is being done
19:40 Bico_Fino joined #salt
19:42 whytewolf the description of clean kind of hints at the merging functionality but doesn't get to indepth about it
19:42 whytewolf Make sure that only files that are set up by salt and required by this function are kept. If this option is set then everything in this directory will be deleted unless it is required. 'clean' and 'max_depth' are mutually exclusive.
19:43 bltmille_ joined #salt
19:44 whytewolf humm. I'm a version behind let me make sure it hasn't already been fixed
19:52 jikjak Ah, I hadn't figured out the word "required" in those docs actually refers to the require statement in salt (rather than just the colloquial meaning).
19:54 nickabbey joined #salt
19:56 jikjak Hey, while I'm here - I had another more general question. https://docs.saltstack.com/en/latest/ref/states/requisites.html says I can "require" and entire sls file. Can I use other requisites with an entire sls file, like "onchanges" or "watch"?
19:58 whytewolf "yes" but keep in mind that entire sls file requisites are like going through the whole file one by one and adding each item. and that onchanges and watch fire off on an any match not an all match
20:05 amontalban joined #salt
20:05 amontalban joined #salt
20:09 ivanjaros joined #salt
20:10 Praematura joined #salt
20:12 lws joined #salt
20:18 dyasny joined #salt
20:20 edrocks joined #salt
20:21 whytewolf fun, just love fileing bug reports ...
20:22 diegows joined #salt
20:23 dyasny joined #salt
20:28 lws joined #salt
20:29 toanju joined #salt
20:33 jikjak whytewolf: thanks for your help. I'll be keeping an eye on that issue in git. Pending a fix there I think you've solved my problem.\
20:34 bowhunter joined #salt
20:35 mpanetta joined #salt
20:37 lws joined #salt
20:40 pipps joined #salt
20:41 pipps99 joined #salt
20:46 nixjdm joined #salt
20:52 jikjak If I include one sls file in another is there anyway to pass jinja variables form one to the other? I want to define a variable in the outer sls and use it when rendering the inner one.
20:53 whytewolf jinja includes are compleatly seperate from sls includes
20:55 whytewolf jikjak: you would still need to use this style include for the jinja parts [and I am unsure of how that would render]
20:55 whytewolf https://docs.saltstack.com/en/latest/topics/jinja/index.html#include-and-import
20:56 jikjak yeah, at the moment I'm using jinja includes, and so when I set jinja variables they are available in the included files. Given the result of my last question it would be convenient to use salt includes so I can require the sls file I included rather than a list of states.
20:57 jikjak Sounds like I'll have to stick with the current style of include though
20:57 whytewolf jikjak: unforchantly because the sls is rendered after the jinja. that wouldn't work.
20:57 jikjak ok, thanks again.
20:58 jas02 joined #salt
21:04 austin_ joined #salt
21:07 SamYaple is there any way for me to get an index number of some kind for each server? for example, server1, server2, server3, I could call a variable like {{ group.index }} which would be 1, 2, and 3 respectively
21:21 buu SamYaple: How would that make any sense?
21:21 cscf SamYaple, are you using a for loop?
21:21 buu SamYaple: You could write a for loop over 1,2,3..
21:22 cscf I loop over a Pillar list of haproxy backend server IPs and use {{ loop.index }} to name them
21:22 SamYaple cscf: yea i suppose that would work. didn't know if there was another builtin
21:22 SamYaple thanks
21:24 bowhunter joined #salt
21:26 swills joined #salt
21:27 djgerm1 joined #salt
21:29 pipps joined #salt
21:33 vodik joined #salt
21:44 cyborg-one joined #salt
21:46 debian112 joined #salt
21:53 woodtablet joined #salt
22:02 woodtablet hello
22:03 woodtablet i have a pillar called roles, and if a machine has a role, i want it install from a formula
22:03 woodtablet how do i do an include for something like that ?
22:04 woodtablet i know how to get a machine to install package if it has a role.. for example, I have this:
22:04 woodtablet https://gist.github.com/gwaters-web/fcadd4d548ef21aec560285ca27d4976
22:08 cyteen joined #salt
22:18 djgerm1 can reactor states be gitfs'd?
22:19 djgerm1 or would one simply control them by salting their master?
22:21 dendazen joined #salt
22:21 dendazen Hey guy i get this error
22:21 dendazen https://gist.github.com/anonymous/38df0ae6243a7e0fe9b76d358c6a56ec
22:28 iggy djgerm1: in newer versions of salt, you can use salt:// uri's for reactors
22:29 iggy dendazen: sounds pretty straightforward? You're missing an include
22:29 dendazen oh include in that state?
22:29 iggy yes
22:30 pipps joined #salt
22:30 iggy woodtablet: include is indented... it shouldn't be
22:30 bfrog joined #salt
22:30 iggy woodtablet: but it also shouldn't be inside a key
22:30 bfrog so started using formulas, they're pretty awesome for the most part
22:31 iggy ehhh
22:31 bfrog I had used the iptables one before, but needed some hacking to get it working the way I wanted
22:31 woodtablet iggy: ya, i have moving it out of the tomcat key.. trying that. thanks iggy
22:31 bfrog the file.recursive stuff seems relatively slow though to verify things are the same
22:32 bfrog thats my only complaint really, stemming from the users formula (user_files)
22:33 * whytewolf shrugs.
22:33 whytewolf formulas are not my thing
22:33 bfrog whytewolf: don't like em?
22:33 whytewolf the term "needed some hacking to get working the way i wanted" is common
22:34 whytewolf if your hacking it then most likely it wasn't a good fit to begin with
22:34 djgerm1 thanks iggy
22:34 bfrog the iptables formula is lacking a mine target rather than a set list of ips is all
22:34 bfrog and i fixed that over a year ago and just rolled my own based on the formula
22:35 bfrog everything else is nice though, especially since I'm trying to switch from centos to debian
22:36 whytewolf personally i find they tend to be bloated and most of them don't hit the items i need in my enviroments. I end up doing twice the work to get any of them to fit my setup
22:36 jeddi joined #salt
22:36 whytewolf and I'm not a snowflake
22:42 johnkeates joined #salt
22:44 whytewolf i think one of my other gripes about formulas is they don't tend to share data very well.
22:45 iggy they aren't really developed by a central team
22:45 woodtablet formulas are a great starting point
22:45 iggy there's a team that basically merges whatever doesn't look totally stupid
22:46 whytewolf i sometimes wonder about that totally stupid part
22:46 iggy so yeah, it's basically the proverbial 10000 monkeys with keyboards
22:46 johnkeates formulas can share data by using defaults.yaml and SPM dependancies if an online repo ever gets setup
22:46 johnkeates i've had one or more issues open on that for months
22:46 iggy don't get me started on SPM
22:46 johnkeates seems that people care more about salt than making it work :D
22:47 johnkeates haha yeah, SPM, the pain of a generation.
22:48 whytewolf it would be nice start if they just had at the very basic a standard for configuration data that allowed easy access and lookup tables
22:48 johnkeates there is in the template-formula
22:48 johnkeates map.jinja+defaults.yml
22:51 Praematura joined #salt
22:51 iggy far from perfect, but it was the best we could come up with in the 2014.1 days
22:51 sh123124213 joined #salt
22:52 whytewolf i remeber that... does anyone actualy use it to create new formulas?
22:56 iggy hopefully
22:56 fxhp joined #salt
22:56 iggy I'd hate to think I made Puneet do all that work for nothing
22:57 dxiri joined #salt
22:58 woodtablet whytewolf and iggy: yes, i do and did =p
22:58 jas02 joined #salt
22:58 jeddi joined #salt
23:01 pipps99 joined #salt
23:05 nicksloan joined #salt
23:05 Trauma joined #salt
23:07 woodtablet how do i do roles and pillars?
23:07 pipps joined #salt
23:07 woodtablet i am trying to assign a tomcat pillar to machines with a certain role, so i am trying todo a compound match like this:
23:08 iggy you can't match pillars in pillars
23:08 woodtablet https://gist.github.com/gwaters-web/b9fd8704306e0b6028463b7b4dee0289
23:08 woodtablet oh shoot
23:08 iggy because the pillars haven't been pillared by the time you pillar
23:09 woodtablet how do i give pillars to certain machines then ?
23:09 iggy id?
23:09 woodtablet crude..
23:10 woodtablet how do you configure machines with different roles ?
23:10 AndreasLutro just move your logic from roles.sls into top.sls
23:10 AndreasLutro https://www.lutro.me/posts/dangers-of-targetting-grains-in-salt
23:10 woodtablet AndreasLutro: in the pillar's or the salt's top ?
23:11 iggy we have a cmdb that we wrote an ext_pillar for that has the "roles"
23:11 AndreasLutro assuming you showed us the pillar top.sls, pillar
23:11 AndreasLutro yeah using an external pillar with more logic built-in is another option
23:11 woodtablet ya, that is my pillar top.sls
23:12 woodtablet iggy - can you link me too something to read ?
23:12 woodtablet stupid laptop is about to die
23:12 woodtablet wish i brought my charger..
23:13 ntropy joined #salt
23:13 iggy it's all pretty specific to our setup
23:13 woodtablet AndreasLutro - thanks i ll read your post, and try to reformulate my "plan"
23:13 woodtablet iggy - oh, ok
23:15 jas02 joined #salt
23:15 woodtablet brb, need to switch machines
23:15 woodtablet left #salt
23:20 woodtablet joined #salt
23:20 woodtablet bam
23:22 madboxs joined #salt
23:29 woodtablet does anyone have an example of using an external pillar to store role like data ?
23:30 woodtablet i just read andrealutro's post, and now.. i want to see how complicated it would be to switch to that, since my original idea doesnt work lol
23:32 woodtablet or i guess i could do it like you said put the roles in the top
23:34 dxiri_ joined #salt
23:35 woodtablet Andrelutro - do you use a yaml file for your external_pillar roles ? like this:
23:35 woodtablet http://devop.ninja/configuration%20management/2015/03/01/beyond-grains-roles-with-an-external-pillar/
23:37 pipps joined #salt
23:40 jas02 joined #salt
23:41 onlyanegg joined #salt
23:42 jas02 joined #salt
23:45 pipps joined #salt
23:47 jas02 joined #salt
23:49 bowhunter joined #salt
23:51 iggy there are things like the reclass, stack, varstack ext_pillar that might work
23:54 woodtablet ohh wow
23:54 woodtablet iggy: i was going to write something like that, good to know! thanks!
23:55 jeddi joined #salt
23:57 iggy https://docs.saltstack.com/en/latest/salt-modindex.html#cap-p
23:57 iggy full list of ext_pillars

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