Salt常用模块+sls文件书写技巧小记
一.Salt常用模块
1. 状态模块:pkg
功能:管理软件包状态
常用方法:
pkg.installed #确保软件包已安装,如果没有就进行安装
pkg.latest #确保软件包是最新版本,不是的话就升级
pkg.remove #如果之前安装了软件包就卸载
pkg.purge #卸载软件包并删除配置文件
2.状态模块:file
功能:管理文件状态
常用方法:
file.managed #保证文件存在并且内容一致
file.recurse #保证目录存在并且为对应状态
file.absent #如果文件存在就进行删除
3.状态模块:service
功能:管理服务状态
常用方法:
service.running #确保服务处于运行状态,没有运行的话则启动
service.enabled #让服务开机自动启动
service.disabled #让服务开机不要自动启动
service.dead #确保服务处于停止状态,服务在运行的话则停止
4.状态模块:requisites
功能:处理状态间关系
常用方法:
require #我依赖某个状态,比如安装软件时依赖某个软件包
require_in #我被某个状态依赖
watch #我关注某个状态
watch_in #我被某状态关注
二. sls文件书写技巧
一般写sls文件可以按照pkg、file、service这样的模块顺序来写。鉴于我们平时操作也是先安装软件包,再写配置文件,最后启动服务。
举一个🌰:
filebeat-package: #安装包
pkg.installed:
- sources:
- filebeat: salt://filebeat/files/filebeat-6.8.13-x86_64.rpm
/etc/filebeat/filebeat.yml:
file.managed: #配置文件
- source: salt://filebeat/files/filebeat.yml
- user: root
- group: root
- mode: 600
- template: jinja
- require:
- pkg: filebeat-package
filebeat:
service.running: #启动服务
- enable: True
- watch:
- file: /etc/filebeat/filebeat.yml