【SaltStack】常用模块和sls文件书写技巧
状态模块:pkg
功能:管理软件包状态
常用方法:
pkg.installed #确保软件包已安装,如果没有就进行安装
pkg.latest #确保软件包是最新版本,不是的话就升级
pkg.remove #如果之前安装了软件包就卸载
pkg.purge #卸载软件包并删除配置文件
状态模块:file
功能:管理文件状态
常用方法:
file.managed #保证文件存在并且内容一致
file.recurse #保证目录存在并且为对应状态
file.absent #如果文件存在就进行删除
状态模块:service
功能:管理服务状态
常用方法:
service.running #确保服务处于运行状态,没有运行的话则启动
service.enabled #让服务开机自动启动
service.disabled #让服务开机不要自动启动
service.dead #确保服务处于停止状态,服务在运行的话则停止
状态模块:requisites
功能:处理状态间关系
常用方法:
require #我依赖某个状态,比如安装软件时依赖某个软件包
require_in #我被某个状态依赖
watch #我关注某个状态
watch_in #我被某状态关注
一般写sls文件可以按照pkg、file、service这样的模块顺序来写,因为我们平时操作也是先进行软件包安装,再写配置文件,最后启动服务,这是一个例子:
apache-service: #定义id,和apache服务有关 pkg.installed: #使用pkg模块的installed功能,可以看出是进行安装软件包 - name: httpd #安装包的名字 file.managed: - name: /etc/httpd/conf/httpd.conf - source: salt://files/httpd.conf - user: root - group: root - mode: 644 - require: #定义该文件依赖于谁 - pkg: apache-service #依赖于httpd包,这里使用的是事件的id,因为sls文件只有唯一的pkg事件,就是pkg.installed service.running: #定义服务状态 - name: httpd #服务名称 - enable: True #开启服务 - reload: True #当文件发生变动时如果服务支持重载的话就进行重载而非重启 - watch: #文件发生变化时重启服务 -file: apache-service #哪个文件发生变化时重启服务 mysql-service: #定义id,可以看出是和mysql有关 pkg.installed: #使用pkg模块的installed功能,可以看出是进行安装软件包 -name: mysql-server #安装包的名字 -require_in: #该软件包被什么文件依赖 - file: mysql-service #被依赖的文件是该事件id下的file模块内的文件,由于sls是唯一的,可以得知是my.cnf文件 file.managed: #使用file模块的managed功能,说明是在进行文件内容的修改 - name: /etc/my.cnf #要修改的文件 - source: salt://files/my.cnf #参考该文件来修改要被修改的文件 - user: root - group: root - mode: 644 service.running: #使用service模块的running功能,说明是要启动服务 - name: mysqld #要启动的服务名字
版权声明:本文章版权归数据库运维网(www.ywdba.cn)所有。如需引用本站内容,请注明来源及作者。
评论