如何从SaltStack记录状态更改?

时间:2014-10-09 23:12:44

标签: salt-stack

我有很多服务器(超过50个)都从Salt Stack获取配置(到目前为止我喜欢它)。但所有这些自动化让我有点担心。如果我每天晚上在所有服务器上安排salt运行highstate,我该如何确保正确应用更改?我是否可以记录更改,以便我可以每天查看对服务器的任何更改,或者至少可以解决盐在一夜之间神奇变化的问题?

现在如果我用盐' *'在master上的state.highstate,我得到很多页输出到屏幕,然后必须滚动很多才能找到任何变化。此外,此过程是手动的。我喜欢预定和自动化的东西。

2 个答案:

答案 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.jobsreturners文档。