Comment by Michael Mol on Constructing Dependencies from a Pillar in Saltstack
Ask that as a separate question, and I'll see if I can put together a satisfactory answer without bouncing against my NDA.
View ArticleComment by Michael Mol on Using requisite injection to order states
Good catch. My mind went numb preparing this question, thanks to a bunch of formatting headaches. Fixed.
View ArticleComment by Michael Mol on Assertions and constraints
I'll edit the answer to be a bit less specific.
View ArticleComment by Michael Mol on How to avoid interactive dialogs when running...
You can (probably?) simplify that to apt-get update ; DEBIAN_FRONTEND=noninteractive apt-get upgrade -yq. I don't thinkapt-get update prompts for anything, so it probably doesn't need DEBIAN_FRONTEND,...
View ArticleComment by Michael Mol on Jenkins Pipeline - Clean before checkout - git...
I've had this happen when doing non-containerized Habitat package builds. In my case, the habitat studio aborted a build, but hadn't unmounted its bind mounts of, e g. /dev, /proc and friends. I...
View ArticleAnswer by Michael Mol for Constructing Dependencies from a Pillar in Saltstack
This templated SLS file works splendidly:{% if 'components' in salt.pillar.items() %}include:{% for component in salt.pillar.get('components').keys() %} - {{ component }}{% endfor %}{% endif %}However,...
View ArticleAnswer by Michael Mol for Laptop Internet connection monitoring
I've started abusing SyncThing for this purpose (among others), configuring it as a system service on laptops, then locking down it's UI to prevent it from being able to be used by a local connection...
View ArticleAnswer by Michael Mol for Using requisite injection to order states
This turns out to be a known issue:The require_in requisite does not support everything that require does, mainly id does not support sls or state_id without specifying a state module.So by modifying...
View ArticleAnswer by Michael Mol for How to examine Jinja output in Saltstack?
Given how much time I spent weeks ago struggling with a closely-related issue, I wish I'd figured this out sooner.The solution appears to be to use salt.modules.cp.get_template to have the Salt minion...
View ArticleAnswer by Michael Mol for How can I share a (global) variable between salt...
When I encountered a related problem, I wound up having Jinja run execute Salt modules.In my case, it was cmd.run to run mktmp (and, at the end of the template, rm for cleanup), with file.append and...
View ArticleSecurely grab minion ID in pillar top file template?
I found this SLS file in a pillar top.sls targeting example:top.sls:base:'*': - hostspecificslshostspecificsls:# See https://groups.google.com/forum/#!topic/salt-users/UWfP6bMe6F8{% include 'hosts/'+...
View ArticleAnswer by Michael Mol for Securely grab minion ID in pillar top file template?
There is currently one safe way to do this.You can use {{opts.id}} as an explicit way to grab the minion ID. opts is technically an implementation detail; the opts dictionary is a Salt internal...
View ArticleDeriving an item value from a structured file in Zabbix
Zabbix's builtin items for monitoring system parameters are reasonably rich, but there are occasionally things it doesn't seem to make trivial to obtain, such as how many dirty cache pages there...
View ArticleHow to examine Jinja output in Saltstack?
I have a templated SLS in Salt I'm trying to build, but it's emitting invalid syntax, which is resulting in errors such as:my-minion-id: - State 'system' in SLS 'network' is not formed as a listIn...
View Article