include
引用多个SLS的状态可以用include模块实现,include模块通常放在文件顶部,引用多个状态文件,一般在状态文件的开头使用。
需求场景:用于含有多个SLS的状态,使用include可以进行多个状态的组合
include:
- base //需要引用的sls
- emacs //需要引用的sls
extend
扩展某个SLS的状态可以使用extend实现,一般在基础的安装状态文件写好后,在项目中使用此安装状态时发现需要一些不是通用的特性时,可以使用extend扩展某个id的功能。
需求场景:软件包安装的时候,需求假设:只在node1上按装php-mbstring包,其他的机器不安装。
unless
状态间的条件判断,如果判断成功则不执行所在id下的额模块,判断失败则执行所在id下的模块。一般使用在没有幂等性的cmd.run模块下
watch
监控指定id的指定模块,使用在监控方,一般是监控配置文件,表示若被监控方的文件改变了,那么监控方则执行配置好的指令。
watch_in
与watch相反,指定由哪个id来监控此模块,使用在被监控方,即表示此模块中的文件发生了改变,那么监控方则执行配置好的指令。
require与require_in
require:我依赖谁
require_in:我被谁依赖
如果所依赖的id段没有执行成功,则require所在的id段不执行指令
需求场景:如果安装不成功或者配置httpd不成功,不启动httpd