我有很多服务器(超过50个)都从Salt Stack获取配置(到目前为止我喜欢它)。但所有这些自动化让我有点担心。如果我每天晚上在所有服务器上安排salt运行highstate,我该如何确保正确应用更改?我是否可以记录更改,以便我可以每天查看对服务器的任何更改,或者至少可以解决盐在一夜之间神奇变化的问题?
现在如果我用盐' *'在master上的state.highstate,我得到很多页输出到屏幕,然后必须滚动很多才能找到任何变化。此外,此过程是手动的。我喜欢预定和自动化的东西。
答案 0 :(得分:1)
我正在考虑的一种可能性是将Log Level on the minion增加到信息。然后使用logstash使用/ var / log / salt / minion并使用Elasticsearch或Kibana监视器更改日志。
答案 1 :(得分:0)
默认情况下,有关从Salt运行的作业的数据将返回到主服务器。 指定返回者将确保数据也发送到指定的返回者接口。
在调用命令时指定要使用的返回者:
salt '*' test.ping --return smtp_return
包含特定数据以区分作业与其他作业可能很有用。以计划模块为例。通过使用元数据参数,值可以与计划作业相关联,尽管这些元数据值在作业执行中不被使用,但它们可以用于稍后搜索特定作业。
job1:
schedule.present:
- function: state.apply
- seconds: 1800
- splay: 5
- metadata:
foo: bar
salt-master上的示例作业搜索可能与此类似:
salt-run jobs.list_jobs search_metadata='{"foo": "bar"}'
有关更多示例,请查看salt.runners.jobs和returners文档。