我想写一个有效的“虚拟谷物”,用其他谷物的价值来定义一些价值,用一种定制谷物。 具体来说,我想提供一个粮食价值env,告诉我主机运行在哪个虚拟环境。选项将是aws,或者目前没有,但将来将包括数据中心和办公室。 我将使用这些信息来确定使用哪个SMTP中继等configuration。 我的第一个尝试是使用__grains__字典,但它似乎是空的时,在自定义谷物访问。 def find_env(): if __grains__['os'] == 'Amazon': return {'env':['aws']} return {'env': []} 这导致一个例外: KeyError: 'os' 我意识到,我可以静态地分配在奴才或命令行上的谷物,但我觉得任何可以自动导出的信息应该是。 有没有办法在编写自定义谷物时访问现有的谷物数据,或者使用另一种自动分类主机的方式,以便我可以将状态作为目标?
我试图configuration一个状态,将查看系统的主目录,并遍历他们检查特定的文件。 为了做到这一点,我最初写道: {% for userdir in salt['cmd.run']('ls /home').split('\n') %} 为我的循环,这很好。 不过,我希望能够轻松地将其设置为可替代的环境,所以我曾经考虑将主目录位置存储在一个支柱内,并将行更改为: {% for userdir in salt['cmd.run']('ls pillar['home']').split('\n') %} 给了Jinja syntax error: expected token 'comma', got 'home'; 我假设因为嵌套的双套 所以我试了一下: {% for userdir in salt['cmd.run']('ls pillar["home"]').split('\n') %} 这给了我: Rendering SLS failed: mapping values are not allowed here; 我已经看过尽可能多的支柱循环情况,我可以尝试find一个我可以解决的例子,但似乎并不存在。 是否有可能从国内调用支柱信息? 还是有更好的方法来实现这个目标? 任何帮助,将不胜感激。
我正在一个需要通过合并请求审查盐州和支柱变化的环境中工作。 目前,当我们需要在提交之前testing我们的变化时,我们login了salt master,在更改了我们的同事并执行testing之后,检查了我们正在处理的分支。 这种方法的问题在于,只要需要执行testing,就需要单个用户基本上locking盐主。 因此我的问题是: 有没有一种方法可以为一个salt命令指定salt主configuration和/或state / pillar根目录?
关于在国家档案中通过支柱,我有一点点困惑。 我正在使用一个Orchestrator编排两个vms上的运行状态(例如vm1和vm2)。 这些国家不相互依赖 对于每一个虚拟主机,我都通过一个同样重要但不同价值的支柱 我对Salt有限的了解告诉我,既然国家没有任何依赖,pipe弦乐器可以同时执行它们。 如果情况确实如此,支柱价值会发生什么变化。 这两个vms是否看到了相同的支柱价值? 从本质上讲,我的问题是,当支柱被传递给不同奴才国家的文件,做相同的钥匙合并(最后一个胜利)的支柱,或是支柱本地化到他们的目标
有一个简单的方法来计算比赛返回的小分队的数量,例如: salt -C 'G@ec2_roles:test' match.count
当SaltStack中的主服务器有一个dynamicIP地址时,pipe理一个主服务器主位置的最好方法是什么? 有没有办法自动更新奴才(主)的IP地址?
我想要在我的networking接口上添加post-up和post-down命令。 salt.states.network可以做到吗? 如果不是最好的方式来添加他们使用盐,知道我不能简单地将它们添加到文件的末尾,因为有其他接口。
我在我的后缀sls中pipe理main.cfconfiguration文件。 如果同一个爪子也分配了amavis状态,则content_filter = smtp-amavis:[127.0.0.1]:10024应该被追加到托pipe的main.cf文件中。 我的后缀sls看起来像这样: /etc/postfix/main.cf: file.managed: – template: jinja – source: salt://postfix/files/etc/postfix/main.cf 在我的amaviss sls中 ,我尝试附加上述行: /etc/postfix/main.cf-amavis: file.append: – name: /etc/postfix/main.cf – text: "content_filter = smtp-amavis:[127.0.0.1]:10024" – require_in: – file: /etc/postfix/main.cf 然而, append发生之前manage而不是执行它,反之亦然。 Name: /etc/postfix/main.cf – Function: file.append – Result: Changed Name: /etc/postfix/main.cf – Function: file.managed – Result: Changed 将内容追加到托pipe文件的正确方法是什么? 还是有另一种方法来解决我的问题?
我是SaltStack的新手。 我的第一个状态文件中有一个错误。 状态文件是: openvpn: pkg.installed: [] /etc/openvpn: file.recurse: – source: salt://myvpn/openvpn-files service.running: [] 而错误: State 'openvpn' in SLS u'myvpn' is not formed as a list 你能说我失败了吗?
我想通过salt在/etc/zypp/zypp.conf中设置以下设置: solver.allowVendorChange = true 这个怎么做? 有一个zypper模块,但我没有办法更新上述设置: https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.zypper.html