Perl 6 - the future is here, just unevenly distributed

IRC log for #salt, 2017-02-24

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

All times shown according to UTC.

Time Nick Message
00:00 nafg Should the top file be kept in the salt master repo, or separately?
00:00 nafg In one sense it's "above" the salt master...
00:00 nafg I guess no harm in it being together
00:01 alexlist joined #salt
00:02 nZac joined #salt
00:02 nafg Maybe minions would have two repos, 1 for "base state" (like installing docker) and one for the app config (maybe keep that in the app's source code repo)
00:03 nafg Maybe I should use a master_top module, anything that's very convenient on GCE?
00:04 nafg Or if I'm not already using Cobbler etc. then it's not buying me much?
00:07 nafg I think what I would like is a way to assign machine classes via GCE labels
00:09 shoemonkey joined #salt
00:10 masuberu joined #salt
00:22 J0hnSteel joined #salt
00:30 MConceicao joined #salt
00:31 seanz joined #salt
00:37 abednarik joined #salt
00:40 onlyaneg1 joined #salt
00:58 madboxs joined #salt
00:59 ronnix joined #salt
01:02 madboxs_ joined #salt
01:09 brousch__ joined #salt
01:12 Poppabear joined #salt
01:12 Poppabear joined #salt
01:13 oaken_chris joined #salt
01:16 nZac joined #salt
01:18 dps joined #salt
01:31 onlyanegg joined #salt
01:35 ronnix joined #salt
01:38 toastedpenguin joined #salt
01:40 toastedpenguin left #salt
01:41 mikecmpbll joined #salt
01:45 iggy nafg: if you look around there are some grains/etc to look at gce pillar data
01:45 iggy err... gce tag data
01:53 masber joined #salt
01:57 mikecmpbll joined #salt
01:58 nickabbey joined #salt
01:59 nickabbey joined #salt
01:59 nafg iggy: yeah I found it. Unfortunately I can't seem to figure out how to use labels, but tags could work
02:00 mavhq joined #salt
02:01 onlyanegg joined #salt
02:03 nafg https://www.irccloud.com/pastebin/28Qocvaw/
02:10 hemebond Base is the default environment.
02:27 foundatron joined #salt
02:29 Nahual joined #salt
02:30 joshbenner joined #salt
02:36 StolenToast joined #salt
02:36 onlyanegg In this video from saltconf15, Thomas Jackson from LinkedIn talks about using multi-master and multi-syndic in cluster mode https://www.youtube.com/watch?v=qjFOY-QrW_k&feature=youtu.be&t=32m50s
02:37 onlyanegg However, I don't see this documented in the high availability features section
02:38 onlyanegg Is this a valid architecture? Or maybe it never really got past a development phase?
02:39 joshbenner We're evaluating Salt -- one of the things I'm not clear on yet: how do people usually maintain their master's link to 3rd party formulas? It seems like every time we decide to depend on a formula, we'd have to add it to gitfs_remotes or clone it to master and add it to file_roots or somesuch.
02:40 hemebond joshbenner: I clone it on the master and symlink the subdirectory into my states directory.
02:40 joshbenner hemebond: Do you automate that somehow?
02:40 hemebond Nope.
02:41 hemebond Not really something that changes frequently.
02:46 joshbenner I've got dev teams who'd ideally be able to declare dependencies in their states and have those deps resolved/satisfied without further manual steps on the master. Hmm.
02:46 hemebond Well it could be automated.
02:46 hemebond But that's not really something Salt can/should do.
02:46 hemebond All you need is the git_repo_url,dirname
02:46 hemebond And then you could easily write a script that goes through and clones and symlinks.
02:46 joshbenner In your experience, do you end up using many 3rd party formulas, or do you tend to more use your own states and few formulas?
02:46 hemebond I try to use third-party formulas as much as possible.
02:46 hemebond At least the ones in saltstack-forumlas.
02:48 ilbot3 joined #salt
02:48 Topic for #salt is now Welcome to #salt! <+> Latest Versions: 2016.3.5, 2016.11.2 <+> 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 catpigger joined #salt
03:06 scsinutz joined #salt
03:07 masuberu joined #salt
03:08 nZac joined #salt
03:09 wonko21 joined #salt
03:13 DammitJim joined #salt
03:15 prg3 joined #salt
03:19 Red_ joined #salt
03:33 ronnix joined #salt
03:38 DanyC joined #salt
03:38 dxiri joined #salt
03:43 cryptolukas joined #salt
03:47 madboxs joined #salt
03:47 nafg joshbenner: what I'm trying to set up now, the master is also a minion and managed by salt, so the whole /etc/salt/master is in git
03:48 nafg I want to get to a workflow where I can update anything normal on the master by pushing to git, and if it's not on master then it runs in dry-run moe
03:48 nafg *mode
03:49 bwellsnc joined #salt
03:49 nafg Actually I'm not sure how to achieve that -- if it's a gitfs pointed to branch X and I update branch Y, the salt master won't see branch Y, so idk how I could dry run it
03:50 nafg one option might be, push to master, and only do real run if the commit has a tag
03:51 bwellsnc hey guys, I am running the salt integration with foreman and I have an interesting problem.  In order for the reports to get uploaded into foreman I have to run 'salt '*' -b 10 state.highstate test=True' as a cron job before the upload-salt-reports is run.  The problem is for every 10 runs, 1 of those will hang and stay hung until I kill it.  Is there a known problem that could cause this.  Thanks!
03:51 nafg the other option I guess would be that on non-master branches or PRs, clone it to a tmp directory and somehow temporarily override the root just for the dry run? Is that possible?
03:52 nafg I could pass it a modified alternative config directory I suppose...
04:00 madboxs joined #salt
04:01 ivanjaros joined #salt
04:02 justanotheruser joined #salt
04:06 masber joined #salt
04:09 ronnix joined #salt
04:10 masber joined #salt
04:10 mpanetta joined #salt
04:15 armguy joined #salt
04:21 nafg Once I'm working this way, maybe I should skip using gitfs backend, and let the gitlab job do the pulling
04:31 gableroux joined #salt
04:36 oaken_chris joined #salt
04:45 icebal_ joined #salt
04:47 iggy nafg: there are tools to do testing of salt (kitchen salt, etc)
04:47 iggy it's probably best to do testing there, and then push between branches
04:48 nafg iggy: that will test against my existing minions? My understanding is that it's a different kettle of fish
04:48 nafg it's about creating a whole test version of your whole infrastructure
04:48 nafg am I wrong?
04:49 nafg All I want to do is tell salt "do a dry run but using X as the base path rather than the one in /etc/salt/master"
04:49 iggy pretty much (although, I think you can limit to whatever roles/etc have changed
04:49 nafg pretty much what
04:50 iggy you really don't want to run tests against production as a first step
04:50 nafg why not? Is dry run unsafe?
04:50 nafg I don't want to set up doubles o everything
04:50 nafg *of
04:50 iggy (test=True rarely runs the way people expect it to once your states eclipse a certain complexity)
04:51 iggy f.ex. a test=True on one of the server types I'm responsible for runs 7 states... a full state run is over 300 states
04:51 nafg so what's the alternative? ignoring the names of particular tools, what will take place in your suggestion?
04:52 iggy having actual dev/qa/staging/etc areas
04:52 nafg so twice as many machines? Not in the budget
04:52 iggy they don't need to exist at all times, spin stuff up when you need to test and then tear them down
04:52 nafg atm
04:53 nafg but right now my salt information is not going to be enough to recreate everything
04:53 nafg we're going to have to break in gradually
04:53 nafg Are you essentially saying that test=true is broken?
04:54 iggy it may work just fine for you, give it a shot
04:54 iggy and no, you can't temporarily change file_roots for just a single run
04:54 nafg ok :) so back to my question, can I tell salt "dry run *those* files, not the default root"
04:54 nafg because I don't want to replace /srv/salt until it's good
04:56 nafg I see salt-call has such options, but not salt command
04:58 iggy yeah, because salt is a tool to tell a running minion process to do stuff, whereas salt-call is a tool to run stuff locally on minions directly
04:58 iggy but salt-call can't change the file_roots setting on the master, only when running "masterless"
04:58 nafg and only for the machine it's running on
04:58 nafg so not going to help
05:03 nafg Ok so maybe I could pass it a custom config dir, which `include`s the main config file but overrides the file_roots?
05:03 nafg If a config file includes another one and they both define the same setting, is it merged or overwritten?
05:04 nafg oh wait, maybe environments can help?
05:05 nickabbey joined #salt
05:05 sriman joined #salt
05:07 iggy you can't pass config to salt
05:07 nafg ok can all minions be in two enviroments?
05:08 iggy environments may work, but you're kind of on your own on that one
05:08 nafg iggy: I mean the -c param, but I think environments make more sense
05:08 nafg wdym by that?
05:08 nafg is it a bad idea to have a minion in two environments?
05:09 iggy most people avoid environments, so you just may not get a lot of assistance when using them
05:10 rdas joined #salt
05:12 icebal_ joined #salt
05:16 nafg Hmm, what's the reason for that?
05:30 hemebond Usually easier to avoid environments.
05:30 hemebond Environments can have side-effects that are not obvious.
05:37 onlyanegg joined #salt
05:39 DanyC joined #salt
06:05 ninjada_ joined #salt
06:06 bocaneri joined #salt
06:11 dps joined #salt
06:11 dxiri joined #salt
06:25 sriman hi, how to set the output (list) of a command to a variable.
06:26 scsinutz joined #salt
06:26 sriman hemebond: is there any way to set the stdout of a command to a variable?
06:26 nidr0x joined #salt
06:26 hemebond To a variable?
06:27 hemebond Yeah, if you're running a module function in a state you can assign the output to a variable.
06:27 iggy {% set foovar = salt.cmd.run('mycommand with args') %}
06:27 iggy but keep in mind that gets run at template compile time
06:27 sriman my case is to update a password for a user only if the user exists.
06:27 sriman how to check the condition here?
06:27 iggy onlyif would be better
06:28 hemebond ^
06:28 sriman iggy: the cmd set will work for list??
06:29 iggy - onlyif: getent passwd iggy
06:29 iggy or something like that
06:30 sriman iggy: alright. thanks
06:40 Inveracity joined #salt
06:40 DanyC joined #salt
06:54 ThatBob9001 joined #salt
06:57 sriman hemebond: in /etc/salt/master i added new environment like - /home/user/win_2012
06:58 sriman it isnot working... but when i changed to /home/user/windows it worked
06:59 sriman so, my question is.. will it accept `_` in the path
07:01 ronnix joined #salt
07:05 hemebond Uh, I would have expected it to.
07:08 ninjada joined #salt
07:08 nethershaw joined #salt
07:10 squelch joined #salt
07:11 felskrone joined #salt
07:12 dxiri joined #salt
07:13 felskrone joined #salt
07:14 aldevar joined #salt
07:19 wangofett joined #salt
07:20 jas02 joined #salt
07:22 jas02 joined #salt
07:23 sriman hemebond: http://paste.openstack.org/show/600329/
07:23 sriman can u go through this.
07:24 preludedrew joined #salt
07:24 sriman my goal is to get the lsit of users assigned to a variable
07:25 sriman iggy: http://paste.openstack.org/show/600329/, can u help me
07:25 jas02 joined #salt
07:27 netcho joined #salt
07:30 Neighbour sriman: Instead of cmd.run: echo, try this:
07:30 Neighbour module.run:
07:30 Neighbour -name: test.outputter
07:30 Neighbour - data: {{ user || yaml_dquote }}
07:30 Neighbour sorry, users, not user :)
07:33 Rumbles joined #salt
07:35 sriman Neighbour: http://paste.openstack.org/show/600330/
07:35 sriman experiencing an error
07:37 colttt joined #salt
07:47 sriman hemebond: http://paste.openstack.org/show/600330/
07:48 hemebond What is yaml_dquote?
07:49 hemebond Pretty sure you don't want || in there.
07:49 fracklen joined #salt
07:50 aldevar Hi all
07:50 aldevar Since yesterdey I try to understand how I can send several pillar from the command line
07:51 GothAck joined #salt
07:51 aldevar reading this : https://docs.saltstack.com/en/latest/topics/pillar/index.html#setting-pillar-data-at-the-command-line
07:51 sriman hemebond: tried even that. and the stderr is ` '{'run': 'shell'}.run' is not available. `
07:52 aldevar But, what if I want to send several pillars on the command line?
07:53 aldevar Here are my sls files, the del_sched job is givin me an error https://gist.github.com/aldevar/f1109833411ef9783ec27f59b06c4286#file-init-sls
07:55 sriman aldevar: salt '*' state.apply pillar='{"cheese": "spam","password": "xyz",}'
07:55 aldevar I just added the error it gives : https://gist.github.com/aldevar/f1109833411ef9783ec27f59b06c4286#file-erroroutput-txt
07:55 hemebond sriman: You want | not ||
07:55 hemebond {{ users|yaml_dquote }}
07:56 sriman this way u can pass multiple vars
07:57 sriman hemebond: tried same
07:57 sriman ret:                   {'retcode': 0, '_error': 'Failed to return clean data', 'stderr': "'{'run': 'shell'}.run' is not available.", 'stdout': ''}
07:58 sriman and this is the output
07:59 aldevar sriman, I though that would work, but the coma seems to be a problem in the state definition, look init.sls line 38. This line is giving me an error
07:59 fracklen joined #salt
08:04 sriman aldevar: pillar= better try with pillar:
08:06 aldevar Unfortunately, it gives me the exact same output...
08:07 sriman so, i'm helpless... its beyond my knowledge
08:07 aldevar On the line - pillar:'{"client": "toto","form_time_date": "25/02/2017 0 ...
08:07 aldevar expected <block end>, but found ','
08:08 aldevar (at "toto", )
08:08 aldevar Thanks for your help sriman, I appreciate
08:13 juntalis joined #salt
08:22 evle1 joined #salt
08:24 madboxs_ joined #salt
08:25 mk-fg joined #salt
08:25 mk-fg joined #salt
08:26 fracklen joined #salt
08:28 sriman hemebond: http://paste.openstack.org/show/600342/
08:28 sriman can u help me with this
08:28 sriman Neighbour: can u please check the link
08:29 hemebond To be perfectly honest I've never tried to capture the output of cmd.run in a state.
08:29 hemebond But you probably need to find a way to get the output as JSON.
08:31 sriman how you can check the user is existing or not , in case you want to update the password for the perticular user.
08:31 sriman if user exists, then update
08:32 hemebond Didn't someone give you an example of onlyif?
08:32 sriman or else print stmt like user doesnot exists.
08:33 JohnnyRun joined #salt
08:35 sriman any one more thing, how to added our own statements as comments??
08:35 Neighbour sriman: sorry, it should be a single |, not a double
08:35 Hybrid joined #salt
08:37 Neighbour sriman: if you want to access the output of the cmd, use run_all instead of run
08:37 Neighbour see https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.cmdmod.html#salt.modules.cmdmod.run_all
08:44 sriman Neighbour: http://paste.openstack.org/show/600342/
08:44 sriman can u please go through this
08:45 Neighbour what do you want me to do with that?
08:46 sriman how to store the values of stdout in a variable? (like register)
08:47 Neighbour {%- set var = salt['cmd.run'](args) %}
08:57 cryptolukas joined #salt
08:57 DanyC joined #salt
08:58 sriman Neighbour: can u write a state that updates the password for the user given. (condition: onlyif the user exists)
08:59 Rumbles joined #salt
09:00 Neighbour {%- if 'myuser' in salt['useradd.getent']() %}
09:00 Neighbour state to update password here
09:00 Neighbour {%- endif %}
09:01 Neighbour If useradd.getent gives a list of users, the docs say "Returns the list of all info for all users", so without actually trying, I'm not quite sure
09:01 Neighbour oh, wait, there's a useradd.list_users()
09:01 Neighbour that's better :)
09:02 CrummyGummy joined #salt
09:03 DanyC joined #salt
09:03 gmoro joined #salt
09:09 DEger joined #salt
09:12 s_kunk joined #salt
09:16 dxiri joined #salt
09:18 teclator joined #salt
09:22 jhauser joined #salt
09:23 BHauser joined #salt
09:23 ivanjaros joined #salt
09:27 Antiarc joined #salt
09:31 DanyC_ joined #salt
09:31 achedeuzot joined #salt
09:36 mk-fg joined #salt
09:36 mk-fg joined #salt
09:38 achedeuzot joined #salt
09:40 ronnix joined #salt
09:46 netcho joined #salt
09:54 jagguli- joined #salt
09:54 ronnix joined #salt
09:55 Vaelatern joined #salt
10:01 jas02 joined #salt
10:02 rdas joined #salt
10:05 ronnix_ joined #salt
10:08 jas02 joined #salt
10:08 netcho joined #salt
10:09 yidhra joined #salt
10:10 jagguli- joined #salt
10:11 scarcry joined #salt
10:14 ronnix joined #salt
10:18 ronnix joined #salt
10:36 funabashi joined #salt
10:36 delpanto93 joined #salt
10:40 thealphaking01 joined #salt
10:40 thealphaking01 Hey Guys
10:40 thealphaking01 I had a query about how source_hash works
10:40 thealphaking01 Lets say my file in the salt://files/file has a source hash = 'A'
10:41 thealphaking01 and the source hash i specified in my command ( or .sls file ) has a source hash 'B'
10:41 thealphaking01 will it still copy file 'A' to where i want it to be copied?
11:03 AndreasLutro it should fail with an error at that point saying that hashes don't match
11:03 AndreasLutro (untested, just guessing)
11:12 felskrone1 joined #salt
11:17 DanyC joined #salt
11:26 ronnix joined #salt
11:30 DanyC joined #salt
11:34 mihait joined #salt
11:36 Kelsar joined #salt
11:40 cryptolukas joined #salt
11:43 lasseknudsen2 joined #salt
11:44 sriman Neighbour: http://paste.openstack.org/show/600366/
11:45 sriman Neighbour: script is successful, but the condition is not perfect to my requirement.
11:46 sriman AndreasLutro: Hi
11:46 DanyC joined #salt
11:47 sriman can u please check the above link
11:47 sriman ?
11:47 Rumbles joined #salt
11:53 JohnnyRun joined #salt
11:53 brousch__ joined #salt
11:54 oaken_chris joined #salt
12:09 daxroc Morning all
12:09 daxroc Is there a concept of aliases for hosts ?
12:09 daxroc *aliases for minions - associating the minion id to a service ?
12:12 Neighbour sriman: What are your requirements then? Besides that the user must exist
12:12 XenophonF daxroc: https://docs.saltstack.com/en/latest/topics/targeting/nodegroups.html
12:13 sriman my req. is to update the pswd of the existing user
12:13 XenophonF alternatively, you can target using a grain or pillar key shared by a set of minions, which is how I do it
12:13 abednarik joined #salt
12:14 XenophonF something like I@role:identity-providers (all Shibboleth IdPs in my data centers worldwide)
12:14 sriman Neighbour: my req. is to update the pswd of the existing user. I want to work on conditions
12:15 lasseknudsen joined #salt
12:15 aldevar Hi XenophonF. I figured out how to use several pillars when creating a scheduled job in a state
12:15 Neighbour sriman: but the code you already have fulfills your requirement. What more do you want it to do?
12:16 aldevar You can look the diff here if your interested in the solution https://gist.github.com/aldevar/f1109833411ef9783ec27f59b06c4286/revisions#diff-144325f93617e166ab05bc785286e45f
12:16 sriman Neighbour: The code i have is not checking for the existence of the user.
12:16 aldevar And thanks for your help and the comment on gist
12:17 sriman the code i have is working but the result is not as expected. state is not executed and i hope it is failing at the condition check.
12:19 sriman in the code i have, user with the name 'sriman123' is already present in the minion and need to update pswd for the user 'sriman'
12:19 sriman sorry sriman123
12:19 sriman Neighbour: got my point??
12:19 BHauser joined #salt
12:22 Neighbour sriman: it seems that the "useradd" module is present as "user" (didn't notice that before)
12:23 Neighbour so the called function should be 'user.list_users' instead of 'useradd.list_users'
12:26 BHauser Hi all, does anyone maybe know a good starting point to interface with the zmq bus on salt (I want to do the exact same thing as salt-call event.send but hopefully much more msg's per second)
12:27 Aanuka joined #salt
12:28 sriman Neighbour: Thanks. Its working now. and one more question, if the user is not existing, i need to through the error message as " user doesnot exist"
12:29 Neighbour then you need to add {%- else %} and a call to test.fail_without_changes
12:29 Neighbour see {%- if 'sriman123' in salt['useradd.list_users']() %}
12:29 Neighbour user account for {{ pillar['username'] }} :
12:29 Neighbour user.present:
12:29 Neighbour - name: {{ pillar['username'] }}
12:29 Neighbour - password: {{ salt['shadow.gen_password'](pillar['password']) | json }}
12:29 Neighbour {%- endif %}
12:29 Neighbour whoops
12:29 Neighbour see https://docs.saltstack.com/en/latest/ref/states/all/salt.states.test.html#salt.states.test.fail_without_changes
12:29 Neighbour sorry about that
12:30 dxiri joined #salt
12:31 scristian joined #salt
12:32 Aanuka Does anyone know, or heard if the DSC Module are actively being worked on? We are mainly an Windows shop and are having a hardtime to eval. Salt in those terms.
12:37 JohnnyRun joined #salt
12:45 sriman Neighbour: http://paste.openstack.org/show/600368/
12:45 sriman one more time please ;)
12:45 sriman check the else part
12:47 Neighbour the 'comment' is only for success states, try using the 'name' argument
12:47 sriman tried with that ,
12:47 sriman name is getting displayed and the script is failing
12:48 sriman comment got is Failure!
12:49 Neighbour yes, that's a hardcoded comment for that state (I presume)
12:52 sriman so, how to add my own message as a comment in else part?
12:52 sriman Warning :     Warnings: 'Comment' is an invalid keyword argument for               'test.succeed_without_changes'. If you were trying to pass               additional data to be used in a template context, please populate               'context' with 'key: value' pairs. Your approach will work until               Salt Nitrogen is out. Please update your state files.
12:53 Neighbour sriman: You can't, you either specify the message in the 'name', or you edit salt's sourcefile for this in order to allow you to pass a comment
12:54 sriman okay .. for diff states, i need to add diff. messages
12:54 sriman so, we cannot edit salts source file for all the states.
12:55 sriman so anyother way,
12:56 Neighbour you can use a variable for the name
12:56 CrummyGummy joined #salt
12:56 hlub postgresql's database state support only parameters lc_collate and lc_ctype but not lc_all for instance.. :(
13:02 sriman Neighbour: yes , and the final state is here. can u please check it and update the changes required. http://paste.openstack.org/show/600370/
13:02 oaken_chris joined #salt
13:03 sriman any code changes to become more pretty.
13:13 diagnostuck joined #salt
13:15 abednarik joined #salt
13:19 jas02 joined #salt
13:30 tapoxi joined #salt
13:31 mavhq joined #salt
13:45 daxroc Do compound grain matchers work ? I'm trying -C "G@ec2_roles:testing and not G@ec2_roles:test" seems to return both minions with grains roles:test,testing
13:48 daxroc uggh my bad stale roles
13:49 abednarik joined #salt
13:54 Brew joined #salt
13:59 icebal_ joined #salt
14:00 toanju joined #salt
14:04 teclator joined #salt
14:07 edrocks joined #salt
14:08 ninjada joined #salt
14:09 dxiri joined #salt
14:09 nickabbey joined #salt
14:19 dps joined #salt
14:27 candyman88 joined #salt
14:28 numkem joined #salt
14:34 Drunken_Panda hey guys im trying to get an augeas state to work ( first time using augeas and cant seem to get it to work) anyone know whats up ? https://gist.github.com/anonymous/bb77b74724900a89a458013cba66a4b4
14:34 Drunken_Panda I simply get cannot save file
14:36 Cottser joined #salt
14:37 XenophonF aldevar: glad you got it working
14:39 benner why '*'  target (async) is much faster than subset of hosts (list)?
14:40 dxiri joined #salt
14:42 dxiri joined #salt
14:49 XenophonF wow augeas is really cool
14:49 XenophonF i should use that more
14:50 XenophonF Drunken_Panda: i think your error is that you specified the lens "grub.lns" when it probably ought to be just "grub"
14:51 XenophonF none of the examples in the augeas state docs use that suffix
14:56 ssplatt joined #salt
15:03 ronnix joined #salt
15:04 nickabbe_ joined #salt
15:08 netcho joined #salt
15:09 Tanta joined #salt
15:11 bwellsnc joined #salt
15:12 bwellsnc This is going to be probably a really simple question, I am wanting to run a highstate against a single state init.sls file... I am updating one thing across my network and I don
15:12 bwellsnc don't want to do anything else but that one
15:13 Neighbour bwellsnc: then don't run a highstate :)
15:13 Neighbour use `mgmt minion state.apply your.state` to apply a single state to a minion
15:15 bwellsnc oh ok
15:20 ivanjaros joined #salt
15:22 babilen bwellsnc: You can also use state.sls_id if you want to run an individual state in a SLS
15:24 gmoro joined #salt
15:35 mpanetta joined #salt
15:47 bwellsnc Neighbour: that works, just couldn't find it, thanks!
15:48 bwellsnc pushing out a new nrpe config, so I am going to run this first: salt '*' state.apply nrpe-base env=Staging test=True
15:48 WesleyTech_ joined #salt
15:49 _JZ_ joined #salt
15:49 Neighbour watch out though, you will apply that state even to minions where the state is not linked in the states/top.sls
15:49 nickabbey joined #salt
15:51 bwellsnc I am using foreman with salt and this state is associated to the top of my staging host group which is associated also to the Staging environment in salt
15:52 bwellsnc Plus, going to run it with test first, have been bitten a couple times without having that
15:53 netcho joined #salt
15:53 toastedpenguin joined #salt
15:55 dyasny_ joined #salt
16:09 onlyanegg joined #salt
16:11 anotherzero joined #salt
16:16 keltim joined #salt
16:16 JohnnyRun joined #salt
16:17 dxiri joined #salt
16:22 ThatBob9001 joined #salt
16:25 Aleks3Y joined #salt
16:35 ronnix joined #salt
16:36 oaken_chris joined #salt
16:39 teclator joined #salt
16:42 abednarik joined #salt
16:45 ny101 joined #salt
16:47 scc joined #salt
16:49 ny101 hi all, i am new to salt and was hoping someone more experienced could advise me on the best way to do something. I essentially want to write a worflow that will perform an OS upgrade on a minion. The workflow would first running some prechecks on the minion using a qc script and assuming thos passes then run another script that would upgrade OS and all hardware firmware etc
16:49 sjorge joined #salt
16:49 sjorge joined #salt
16:50 ny101 should i be looking at orchestrate runner to be able to do all of this?
16:50 darvon joined #salt
16:50 Reverend expr_form for glob matching should beeeee?
16:50 Reverend I've used expr_form: grain
16:50 eichiro joined #salt
16:51 Reverend but never just hte standard shit... just leave it empty?>
16:52 ny101 does anyone know if this kind of workflow can or should be written using orchestrate runner?
16:52 ny101 or if there is a better way of doing this kind of thing in salt
16:53 ny101 i have written an ansible playbook to do this but i was wondering if the same thing was achievable in salt
16:54 cryptolukas left #salt
16:54 AndreasLutro ny101: if you don't need anything to be done across multiple minions, orchestration is pointless. personally I just write shell scripts for OS upgrades
16:55 jas02 joined #salt
16:56 ny101 thanks AndreasLutro. Initially this would be to do one server at a time but the ultimate goal would be to run this workflow again several hundred servers in paralell
16:57 DanyC joined #salt
16:59 AndreasLutro then you could just distribute said script and run it using salt '*' cmd.run
16:59 AndreasLutro or cmd.script with a salt:// url, that would let you skip the distributing part
16:59 ny101 ok thanks
17:00 AndreasLutro orchestration is more useful if you need something like, change the load balancer to serve a "come back later" page, upgrade the servers in the correct order, then bring the load balancer back online
17:00 aldevar left #salt
17:05 DanyC joined #salt
17:08 hpc-guy-again joined #salt
17:09 ninjada joined #salt
17:12 gmoro joined #salt
17:12 gableroux joined #salt
17:12 hpc-guy-again Hi.  I'm looking for events related to minions rebuilding and coming up without their old key.  I'm not finding anything I can respond to.  Am I missing something?  Is salt-run state.event pretty=True showing me all relevant events or is there a better way to listen?
17:13 ronnix joined #salt
17:15 cyborg-one joined #salt
17:16 jas02 joined #salt
17:24 DammitJim joined #salt
17:24 DammitJim is there something special I need to do to have salt "install" a systemd service?
17:26 cmarzullo systemctrl deamoncontrol reload
17:26 cmarzullo /bin/systemctl daemon-reload
17:26 DammitJim I need to use cmd.run in my state, then?
17:27 cmarzullo cmd.wait and watch the unit file you create
17:27 DammitJim oh gosh, where can I read about this?
17:27 cmarzullo https://gist.github.com/anonymous/56ff028d564f6cbc400b1b9085004d71
17:28 cmarzullo systemd is a prety huge topic. But it's out there.
17:28 cmarzullo that gist is what I use for the broken haveged on debian.
17:30 Guest78421 joined #salt
17:30 DammitJim LOL
17:30 DammitJim thanks cmarzullo ... I'll review this
17:33 DammitJim cmarzullo, do you mind sharing what the haveged.service file looks like?
17:33 DammitJim I'm starting to create templates for these things for different services...
17:33 hpc-guy-again Does anyone know?  Is there something more verbose for monitoring events than salt-run state.event?  Thanks
17:34 cmarzullo There's not much to it. You can find your own examples of systemd unit files in /lib/systemd/system/*.service
17:34 gtmanfred morning
17:35 cmarzullo It really depends on the service you are trying to run.
17:35 gtmanfred hpc-guy-again: that is the only event bus stuff on the master, you could check the event bus on the minion but I am not sure what you would find there, otherwise set debug logging on the minion and master and see what shows up
17:36 hpc-guy-again Okay, thanks.
17:36 DammitJim oh ok, so nothing crazy
17:37 cmarzullo yeah.
17:37 cmarzullo Some services have all sorts of stuff.
17:37 cmarzullo like special shutdown commands or whatevers
17:37 Edgan joined #salt
17:38 nickabbe_ joined #salt
17:39 teclator joined #salt
17:44 gsminion joined #salt
17:52 onlyanegg joined #salt
18:02 leonkatz joined #salt
18:04 DammitJim joined #salt
18:04 leonkatz anyone had issues with jinja yaml filter
18:04 leonkatz i'm trying to render a bunch of grains, but only the first line is indented
18:05 leonkatz the rest have no leading spaces
18:05 Inveracity joined #salt
18:05 scsinutz joined #salt
18:06 benner why '*'  target (async) is much faster than subset of hosts (list)?
18:07 leonkatz sorry this if for salt-cloud profiles
18:07 leonkatz i'm using pillar data to populate
18:18 abednarik joined #salt
18:18 ChubYann joined #salt
18:26 gableroux joined #salt
18:28 cmarzullo {{ pillar_values|yaml(False) }}
18:29 leonkatz yup thats what i'm using
18:29 cmarzullo {{ pillar_values|yaml(False)|indent }}
18:29 leonkatz just found a work around, {{ pillar_values|yaml(False)|indent(4) }}
18:29 leonkatz yup
18:29 cmarzullo heheh nice
18:29 leonkatz but thats a work around
18:30 leonkatz should this be a bug
18:30 cmarzullo probably depends on what your template lookslike
18:31 leonkatz is it ok to paste 3 lines here?
18:32 gtmanfred I marked your thing as a bug leonkatz
18:32 leonkatz grains:
18:32 leonkatz dns:
18:32 leonkatz type: {{ dns_type }}
18:32 leonkatz {{ pillar['common.dns']['bind9']['grains']|yaml(False)|indent(4) }}
18:44 fracklen joined #salt
18:46 jeffspeff joined #salt
18:47 jeffspeff What is the proper way to do this? {% if salt['pkg.installed']('my_package') == False %}
18:47 scsinutz joined #salt
18:49 cmarzullo mybe pkg in pkg.list_pkgs ?
18:51 jeffspeff i'm trying to do it in a state file
18:51 cmarzullo sure. I'm just being lazy and not writing out full jinja.
18:52 cmarzullo more so saying check if you package name in the dict returned by list_pjgs
18:52 cmarzullo pkg.installed installs a package
18:56 ssplatt joined #salt
18:59 leonkatz anyone had issues with salt-cloud picking up an aws profile/role?
18:59 Drunken_Panda XenophonF when i specify grub the output states did you mean grub.lns
19:00 scsinutz joined #salt
19:01 vodik joined #salt
19:01 masuberu joined #salt
19:02 k_sze[work] joined #salt
19:02 gtmanfred jeffspeff: {% if 'my_package' not in salt['pkg.list_pkgs']() %}
19:03 fracklen joined #salt
19:04 XenophonF Drunken_Panda: yes - replace `grub.lns` with `grub`
19:06 cscf Is there an easy way to specify the MAC address for salt-virt to give the VM, without changing the network profile?
19:08 SaucyElf joined #salt
19:09 s_kunk joined #salt
19:09 abednarik joined #salt
19:10 ninjada joined #salt
19:11 jeffspeff gtmanfred thanks!
19:13 Drunken_Panda Xeno ahh yes it runs now but doesn’t actually mod the file
19:14 Drunken_Panda does it need to go to the augeas knows about ?
19:14 Drunken_Panda eg /etc/grub/grub.conf
19:24 debian112 joined #salt
19:25 debian112 so have questions around: salt.states.boto_elb.present
19:26 debian112 is it just using classic or can I assign a elb to a vpc?
19:26 cyborg-one joined #salt
19:27 gtmanfred it looks like it can specify a list of vpc subnets to attach to the elb
19:27 jeffspeff my state file keeps returning an error that it's missing an 'endif'; i'm not seeing it... can someone point out what i'm missing please? here's the state file and the error https://gist.github.com/jeffclay/059e09e82458b62cf4a3b6f2111bb645
19:27 gtmanfred jeffspeff: you have an extra endif
19:28 gtmanfred ?
19:28 gtmanfred oh... hrm
19:28 jeffspeff talking about line 39?
19:28 jeffspeff line 39 is closing the first if from line 6
19:28 gtmanfred yeah, that is odd
19:28 aldevar joined #salt
19:29 robawt salt coming to Scale?
19:30 robawt I blame the local LA Salt guys for my addiction to TLT chimi churri wings
19:30 DEger joined #salt
19:31 gtmanfred jeffspeff: i am getting the same error...
19:31 jeffspeff what gives? i have other state files with nested if's like that and they work fine.
19:32 jeffspeff maybe it's not liking my comments?
19:32 gtmanfred oh
19:32 gtmanfred it is because of the comment you have
19:33 gtmanfred jeffspeff: remove line https://gist.github.com/jeffclay/059e09e82458b62cf4a3b6f2111bb645#file-triton-sls-L4
19:33 gtmanfred or comment it
19:33 gtmanfred with {# around the {%
19:33 gtmanfred jeffspeff: put {# at line 3 and #} at the end of line 5
19:35 DammitJim man, I guess I've been missing out on formulas for creating users, huh?
19:36 jeffspeff gtmanfred it doesn't look right to me... i updated the gist. can you check?
19:37 gtmanfred leave the # at the fronthat should work, but you can leave the # at the front of the line, {# is to let stuff be comments for jinja, and they get removed before the file gets run
19:37 gtmanfred {#
19:37 gtmanfred ##the awesome guys in IRC gave the solution to the package checking
19:37 gtmanfred ##[13:02:54] @gtmanfred:jeffspeff: {% if 'my_package' not in salt['pkg.list_pkgs']() %}
19:37 gtmanfred ##checking to see if Triton DLP is already installed or not.  #}
19:37 gtmanfred use that
19:37 gtmanfred it might look better?
19:38 gtmanfred or just remove the comment with me on the line entirely
19:38 gtmanfred the {% if, there is what is causing your error, even though it is a comment in yaml, it is not commented out in jinja, and is still run.
19:39 gtmanfred your thing in the gist will render though
19:39 jas02 joined #salt
19:40 jeffspeff thanks, testing now
19:40 fracklen joined #salt
19:42 DammitJim can one do an if statement in a salt state to use a property?
19:43 DammitJim like if there is no password specified in pillar, then don't set a password in the state
19:45 edrocks joined #salt
19:46 jeffspeff gtmanfred thanks for the help. if you refresh the gist you'll see what i went with that worked
19:51 gtmanfred DammitJim: yes, you can do that
19:52 quasiben joined #salt
19:57 teclator joined #salt
20:00 darvon joined #salt
20:00 DanyC joined #salt
20:03 DammitJim gtmanfred, would I do that with an 'if pillar['password'] is defined' ?
20:03 gtmanfred no
20:03 DammitJim oh
20:03 gtmanfred {% if pillar.password is defined %}
20:03 gtmanfred {% if 'password' in pillar %}
20:04 gtmanfred {% if 'password' in pillar and pillar['password'] %}
20:04 DammitJim woot? OMG
20:04 gtmanfred you cannot do isdefined if you treat pillar as a dictionary
20:04 gtmanfred because it will get a key error if it doesn't exist
20:04 DammitJim oh
20:04 gtmanfred but if you use the dot notation,it will return false if it has an error
20:04 DammitJim gotcha
20:15 g3cko joined #salt
20:15 cscf salt-virt keeps trying to put the VM on br0 which doesn't exist, despite the fact that I redefined the default to br526, and it worked with br523 earlier...
20:15 DammitJim man, why is it that now that I created this user using salt, when I log on via ssh to that server, the prompt is just $
20:15 cscf DammitJim, redefine PS1 if you want a normal prompt
20:17 pcn Has anyone used the slack engine?
20:17 gtmanfred minimally
20:18 pcn It seems like it needs more permissions and logging and dunno what else.  Do you know if it's got some features like that planned?
20:19 gtmanfred you would have to talk to Gareth
20:19 DammitJim PS1?
20:19 gtmanfred https://github.com/saltstack/salt/pull/39499
20:19 saltstackbot [#39499][OPEN]  Slack Engine Access Groups | Finally getting around to adding a PR for something I started working on at the last Salt conference.  ...
20:19 gtmanfred DammitJim: that is defines your prompt in bash
20:20 DammitJim but what defined it in salt when creating the user?
20:20 DammitJim or did I miss it?
20:20 bob97 joined #salt
20:20 gtmanfred what is the users shell? sh or bash?
20:20 gtmanfred it probably defaults to /bin/sh
20:20 DammitJim oh, I didn't define one
20:20 gtmanfred which just puts $ as the prompt
20:20 gtmanfred then that is the reason, set the shell to bash and it should be the normal one
20:21 DammitJim gotcha!
20:22 pcn Where does gareth hang out?
20:24 zulutango joined #salt
20:24 gtmanfred here?
20:25 pcn Oh, he's just Gareth here?
20:25 * pcn waves at Gareth
20:25 gtmanfred no, gareth somewhere else :P
20:27 dxiri joined #salt
20:31 bob97 How do I fix a salt-call KeyError?
20:31 druonysus joined #salt
20:31 gtmanfred can you post the error to a gist?
20:32 bob97 I call a custom module named 'oracle_dba'  the function completely executes and then returns. with this error:
20:32 austin_ joined #salt
20:32 bob97 [ERROR   ] An un-handled exception was caught by salt's global exception handler: KeyError: 'oracle_dba' Traceback (most recent call last):   File "/bin/salt-call", line 11, in <module>     salt_call()   File "/usr/lib/python2.7/site-packages/salt/scripts.py", line 379, in salt_call     client.run()   File "/usr/lib/python2.7/site-packages/salt/cli/call.py", line 58, in run     caller.run()   File "/usr/lib/python2.7/site-packages/salt/cl
20:32 DammitJim this is so weird
20:32 DammitJim I hashed the password for a user
20:32 DammitJim put it in pillar
20:32 bob97 func.__module__].__context__.get('retcode', 0)
20:33 DammitJim but I can't log on to that server
20:33 DammitJim nevermind
20:34 gtmanfred bob97: please paste the full log output to a gist.github.com
20:35 bob97 [ERROR   ] An un-handled exception was caught by salt's global exception handler: KeyError: 'oracle_dba' Traceback (most recent call last):   File "/bin/salt-call", line 11, in <module>     salt_call()   File "/usr/lib/python2.7/site-packages/salt/scripts.py", line 379, in salt_call     client.run()   File "/usr/lib/python2.7/site-packages/salt/cli/call.py", line 58, in run     caller.run()   File "/usr/lib/python2.7/site-packages/salt/cl
20:35 DammitJim what pastebin do we use on here?
20:35 gtmanfred i prefer gist
20:35 bob97 ret = self.call()   File "/usr/lib/python2.7/site-packages/salt/cli/caller.py", line 209, in call     func.__module__].__context__.get('retcode', 0) KeyError: 'oracle_dba' Traceback (most recent call last):   File "/bin/salt-call", line 11, in <module>     salt_call()   File "/usr/lib/python2.7/site-packages/salt/scripts.py", line 379, in salt_call     client.run()   File "/usr/lib/python2.7/site-packages/salt/cli/call.py", line 58, in ru
20:35 gtmanfred bob97: please paste it to a pastebin
20:35 bob97 oh.
20:36 bob97 working on that now...
20:36 yetanotherzero joined #salt
20:37 bob97 https://gist.github.com/anonymous/9828b351e2503c7938f7847c3bd49c39
20:37 dxiri joined #salt
20:38 gtmanfred i have never seen that before
20:39 edrocks joined #salt
20:39 bob97 I've been tinkering with the function return dictionary, thinking that salt-call is looking for 'retcode' in there somewhere, but I can't get rid of that error.
20:40 DammitJim gtmanfred, I tried {% if pillar.password is defined %} and it doesn't seem to work
20:40 jas02 joined #salt
20:40 gtmanfred when you run salt \* pillar.get password
20:40 gtmanfred does it show the password?
20:40 gtmanfred if it doesn't, then that would be why
20:41 DammitJim oh, that's simple, huh?
20:41 tapoxi so, custom grains over salt-ssh, how do? tried defining them in my roster but nothin' doin'
20:41 DammitJim I am doing users: myuser: password: 'password'
20:41 oida joined #salt
20:42 gtmanfred then you will want to do {%- if pillar.users.myuser.password is defined %}
20:42 DammitJim if I am doing for login, user in pillar.get('local_users', {}).items()
20:42 tapoxi nm just needed to manually sync
20:42 DammitJim it's THAT easy?
20:42 gtmanfred i mean, you will get a dictionary object back called user, just do the dotnotation for that object
20:43 DammitJim but myuser is dynamic, ya know? it's the name of the user and it changes
20:44 DammitJim let me gist it
20:44 oida joined #salt
20:45 gtmanfred sure, don't use the pillar object then
20:46 DammitJim https://gist.github.com/anonymous/cf0090afd32a82854c2c8e14e861cdb9
20:46 gtmanfred if you do {%- for login, user in pillar.get('local_users', {}).items() %}, then do the correct dot notation on the `user` object, like {%if user.password is defined %}
20:47 oida joined #salt
20:47 DammitJim I think my hierarchy is messed up
20:48 gtmanfred DammitJim: i commented in your gist, that should work
20:48 DammitJim what?
20:48 DammitJim OMG, I'm going to shoot myself
20:51 scsinutz joined #salt
20:52 darvon joined #salt
20:53 scc joined #salt
20:56 toastedpenguin joined #salt
20:59 rubenb joined #salt
21:02 toastedpenguin left #salt
21:10 jwon joined #salt
21:11 swills joined #salt
21:11 ninjada joined #salt
21:11 DammitJim thanks
21:11 DammitJim btw
21:18 gtmanfred no problem :D
21:25 jas02 joined #salt
21:29 CampusD joined #salt
21:32 fracklen joined #salt
21:33 gableroux joined #salt
21:43 debian112 ok thanks: gtmanfred
21:43 debian112 with the elb question
21:43 austin_ custom grains are typical ran at what point?
21:44 austin_ minion start
21:44 austin_ sync
21:44 debian112 I was able to use the subnets to use the elb with the vpc
21:44 austin_ high state
21:45 debian112 I have another question here:
21:45 debian112 boto_elb.register_instances can I use server tags like the  Name, or is it just instance ids?
21:50 jwon_ joined #salt
21:55 Rkp joined #salt
21:59 frew joined #salt
21:59 joshin joined #salt
22:01 gtmanfred austin_: whenever the grains are refreshed
22:01 gtmanfred so on sync/refresh grains, and on highstates
22:01 gtmanfred and on minion start
22:02 alem0lars joined #salt
22:02 gtmanfred debian112: i have no idea, most of that stuff you are going to have to test to find out
22:02 debian112 yeah I tried seems like its just id's
22:03 debian112 so far I was able to build the elb and settings in salt
22:03 edrocks joined #salt
22:08 austin_ gtmanfred: thanks.
22:09 bob97 joined #salt
22:12 raspado joined #salt
22:13 raspado can I do an or match somehow? "{% if grains['domain'] == 'domain1' OR 'domain2' %}"
22:16 Tanta joined #salt
22:21 raspado would this be a best approach? {% if grains['domain'] in ['domain1','domain2'] %} ?
22:23 ThatBob9001 joined #salt
22:29 Tanta that's the clearest approach
22:29 Tanta no mysteries in that code
22:29 raspado righto
22:30 viccuad joined #salt
22:31 viccuad Hi folks. So, using cmd.run and runas: myuser, is not enough, because I need to enable systemd user unit files (and for that you need to properly log in)
22:31 ThatBob9002 joined #salt
22:32 viccuad I suppose that `runas` just uses `su`, which is not enough at all, since then you will not get your own dbus instance for that user, and therefore `systemd --user` fails
22:32 viccuad is there any way to enable systemd user files with salt?
22:32 jas02 joined #salt
22:33 ThatBob9002 joined #salt
22:33 Tanta yes, runas: root
22:33 Tanta root creates the system init files
22:33 Brew joined #salt
22:33 ThatBob9001 joined #salt
22:34 ThatBob9002 joined #salt
22:34 viccuad but I'm setting up systemd user init files, which reside in /.config/systemd/user/*, and are run against the dbus instance in the user slice, not the system slice
22:35 SaucyElf joined #salt
22:35 viccuad I *need* runas: myuser, it is a different use-case that normal unit files
22:36 gtmanfred are you trying to do it with the sevice unit?
22:36 gtmanfred service state/module?
22:36 ThatBob9001 joined #salt
22:37 gtmanfred because if you want it to do systemctl start --user service, that won't be possible until nitrogen https://github.com/saltstack/salt/pull/39248
22:37 saltstackbot [#39248][MERGED] add runas as a global state variable | What does this PR do?...
22:37 gtmanfred actually
22:37 gtmanfred yeah good luck doing that
22:37 gtmanfred there would be some weird logind stuff that needs to happen that we don't support
22:38 gtmanfred and i don't think that systemctl even supports
22:38 viccuad :/
22:39 gtmanfred it might be able to be done with systemd-run --user=<user> systemctl --user start <service>
22:39 gtmanfred but i would be surprised if that worked
22:39 gtmanfred user session units are meant for actually logged in users, not automation
22:43 SaucyElf joined #salt
22:43 gtmanfred yeah, that would be interesting to do, i just don't think it is reasonable to do, enabling services, sure, but you can do that with a file.symlink, but actually starting the service, unless salt is running as a user session unit, i don't believe will be possible
22:45 ThatBob9001 joined #salt
22:45 ThatBob9002 joined #salt
22:45 viccuad gtmanfred: thanks for the enlightenment though
22:47 ThatBob9001 left #salt
22:48 phtes joined #salt
22:48 nafg joined #salt
22:49 hillna joined #salt
23:02 daxroc joined #salt
23:02 czchen joined #salt
23:02 phtes joined #salt
23:02 lkannan joined #salt
23:04 zifnab joined #salt
23:04 hillna joined #salt
23:05 cjdc joined #salt
23:05 vegardx joined #salt
23:06 cjdc hi guys, I'm getting Comment: Source file salt://foobar not found
23:06 cjdc on file.managed
23:07 cjdc http://pastebin.com/6tzT9xnR
23:07 gtmanfred does it show up in cp.list_master ?
23:07 cjdc do you see anything wrong?
23:07 gtmanfred does the file exist in /srv/salt/root/test.html ?
23:07 nafg joined #salt
23:09 cjdc right...it has to be inside /srv/salt...
23:09 cjdc working now
23:09 cjdc tks
23:12 ninjada joined #salt
23:30 swa_work joined #salt
23:31 toastedpenguin joined #salt
23:40 viccuad is there a way to bundle all calls for installing packages? instead of having 1 call per package I list for install?
23:40 jas02 joined #salt
23:41 ekristen joined #salt
23:47 Edgan viccuad: https://paste.fedoraproject.org/paste/8~RfU4QM-uV56ZjAUQyvJV5M1UNdIGYhyRLivL9gydE=  ??
23:49 joshbenner Literally the first thing I'm trying to do with Salt is edit a line in a file... and it doesn't work.
23:49 joshbenner https://github.com/saltstack/salt/issues/27295
23:49 saltstackbot [#27295][OPEN] salt.modules.file.line documentation improvements | See https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.file.html#salt.modules.file.line....
23:49 gtmanfred viccuad:check out pkgs: in the pkg.installed/pkg.latest commands
23:49 gtmanfred viccuad: you can also use mod_aggregate https://docs.saltstack.com/en/latest/ref/states/aggregate.html
23:50 joshbenner ... and this problem has apparently existed since September 2015
23:57 joshbenner file.replace does what I want -- file.line is a red herring!
23:57 ekristen anyone have a good example of the proper way to write an execution module that executs a CLI tool and requires it be present on the filesystem for the module to load?
23:58 yetanotherzero joined #salt

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