通过 salt 验证配置更改

通过 salt 验证配置更改

背景:最近我发现我们的服务器存在一个问题,其中一个服务器上的 zookeeper 无法启动。这是由于 myid 文件为空(它需要一个数字)导致的。执行 salt 无法修复它。事实证明,该问题是由最近的主机名更改引起的。我修复了 sls 文件,但任何此类调整都可能导致它再次崩溃。

所以,我的问题是:我可以使用 salt 来验证某些更改是否正确应用了吗?在这种情况下,我可以检查文件的大小或验证内容是否包含单个数字。理想情况下,这将作为状态执行的一部分运行,但如果有其他方法,我很乐意听到。

具体来说,我并不想验证或检查状态文件本身。我只是想确保最终结果在某种程度上是有效的。例如,文件包含一个数字并且不为空。

答案1

伴随Roald Nefs 的回答,您可以module.run在状态内使用来执行状态内的模块。因此,就我的情况而言,我最终这样做了:

myid_file_test:
    module.run:
        name: file.search
        path: /path/to/myid
        pattern: '\d'

如果模式匹配失败,则会报告失败,这正是我想要的。

答案2

随着salt.module.文件模块您将能够管理有关 minion 上的常规文件、目录和特殊文件的信息,设置/读取用户、组、模式和数据。

该模块包括一个search()函数允许您在文件中搜索某个模式的出现情况。

salt '*' file.search /path/to/the/file pattern='='

该模式是一个正则表达式,使用 Python 的search()

您可以使用diskusage()函数递归计算路径的磁盘使用量并以字节为单位返回:

salt '*' file.diskusage /path/to/the/file

相关内容