将Salt Stack的运行结果存储到数据库等外部系统中

在一个命令执行之后,minion会将执行结果返回给master,这些结果默认是存储在master本机的/var/cache/salt/master/jobs/目录下,这个目录可以在配置文件里面自定义。
除了默认的缓存机制,salt还提供了额外的两种机制,来将数据存储到其他的系统中,比如数据库, 本地的系统日志,或者其他你想存储的地方。

  • External Job Cache
  • Master Job Cache

这两种机制之间的最大的区别在于结果是从哪里返回的。(master还是minion)

External Job Cache -minion side returner

配置使用 External Job Cache 时,数据会和之前一样,返回到 salt master 本地的默认缓存。同时 minion 会运用salt returner 模块发送到配置的外部存储中。
这里写图片描述

  • 优点:数据的存储不会给 master 造成额外的负担。
  • 缺点:每个 minion 都需要连接到外部存储器,会产生大量的链接。同时需要在所有的 minion 配置returner 模块。

Master Job Cache -master side returner

2014.7.0.这个版本之后的支持
可以通过配置 Master Job Cache ,从 salt master 返回执行结果到外部存储中。这样就不用在每一台minion上配置 External Job Cache。在这种配置中,minion和之前一样返回结果到 master 的 Default Job Cache,之后master通过自身运行的Salt returner模块将数据发送到外部存储中。
这里写图片描述

  • 优点:外部存储设备只需要一个连接,这个对数据库或者类似的系统是优先选择的。
  • 缺点:master需要额外的负载。

配置 External Job Cache 或者 Master Job Cache

第一步:理解salt返回机制

  在你配置其中一种Job Cache之前,你有必要了解salt的returner模块,returners是salt的可配置的模块,它接收jobs执行信息,并进行必要的操作将数据发送到外部系统。例如returner会建立连接,认证,然后格式化并上传数据。
  salt的returners系统为 External Job Cache 和 Master Job Cache 提供核心功能,两个系统使用的是同样的returners。
  salt目前提供多种不同的returners,让你可以方便的连接到各种外部系统中。这里 提供一个完整的returner列表。不同的returner配置不同,在使用前确保仔细阅读了连接中的内容。

第二步:配置returner

在了解了整体架构并准备好外部系统之后,现在看一下具体的配置:

External Job Cache
returner的配置信息,可以写在minion的配置文件,pillar或者grains中。
如果在多个地方设置了external_job_cache 的 returner 配置文件,则按照下面的顺序检索,使用第一个被检索到的配置:

  • minion配置文件
  • minion’s grains
  • minion’s pillars

Master Job Cache:
Master Job Cache 的 returner 配置信息应该在master的配置文件里面设置。
下面有两个配置文件的例子:
MySQL requires:

mysql.host: 'salt'
mysql.user: 'salt'
mysql.pass: 'salt'
mysql.db: 'salt'
mysql.port: 3306

Slack requires:

slack.channel: 'channel'
slack.api_key: 'key'
slack.from_name: 'name'

在配置了returner并将配置写到配置文件之后,可以启用 External Job Cache 或者 Master Job Cache。

第三步:启用

配置文件就一行,用户将job执行结果的数据通过之前配置好的returner发送到外部系统中。

External Job Cache
通过将下面的配置加到 master 的配置文件中来启用 External Job Cache。

ext_job_cache: <returner>

例如:

ext_job_cache: mysql

注意: External Job Cache 的 returner 的配置文件是写在 minion 端的配置文件中的,而 External Job Cache 的配置文件是配置在master端的配置文件中的。

MASTER JOB CACHE
通过将下面的配置加到 master 的配置文件中来启用 MASTER JOB CACHE。

master_job_cache: <returner>

例如:

master_job_cache: mysql

确保此处的returner的配置是在master的配置文件中的,在更改配置文件之后,记得重启master端来确保配置生效。service salt-master restart

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值