状态模块: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这样的模块顺序来写,因为我们平时操作也是先进行软件包安装,再写配置文件,最后启动服务,这是一个例子:
01 | apache-service: #定义id,和apache服务有关 |
02 | pkg.installed: #使用pkg模块的installed功能,可以看出是进行安装软件包 |
03 | - name: httpd #安装包的名字 |
04 | file.managed: |
05 | - name: /etc/httpd/conf/httpd.conf |
06 | - source: salt://files/httpd.conf |
07 | - user: root |
08 | - group: root |
09 | - mode: 644 |
10 | - require: #定义该文件依赖于谁 |
11 | - pkg: apache-service #依赖于httpd包,这里使用的是事件的id,因为sls文件只有唯一的pkg事件,就是pkg.installed |
12 | service.running: #定义服务状态 |
13 | - name: httpd #服务名称 |
14 | - enable: True #开启服务 |
15 | - reload: True #当文件发生变动时如果服务支持重载的话就进行重载而非重启 |
16 | - watch: #文件发生变化时重启服务 |
17 | -file: apache-service #哪个文件发生变化时重启服务 |
18 |
19 | mysql-service: #定义id,可以看出是和mysql有关 |
20 | pkg.installed: #使用pkg模块的installed功能,可以看出是进行安装软件包 |
21 | -name: mysql-server #安装包的名字 |
22 | -require_in: #该软件包被什么文件依赖 |
23 | - file: mysql-service #被依赖的文件是该事件id下的file模块内的文件,由于sls是唯一的,可以得知是my.cnf文件 |
24 | file.managed: #使用file模块的managed功能,说明是在进行文件内容的修改 |
25 | - name: /etc/my.cnf #要修改的文件 |
26 | - source: salt://files/my.cnf #参考该文件来修改要被修改的文件 |
27 | - user: root |
28 | - group: root |
29 | - mode: 644 |
30 | service.running: #使用service模块的running功能,说明是要启动服务 |
31 | - name: mysqld #要启动的服务名字 |
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2018 群英 版权所有 茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号-36 粤公网安备 44090202000006号 粤工商备P091701000595