一.所有状态模块官方文档
https://www.unixhot.com/docs/saltstack/ref/states/all/
二.状态模块:pkg
官方文档:https://www.unixhot.com/docs/saltstack/ref/states/all/salt.states.pkg.html
功能:管理软件包的状态
该模块常用的方法:
pkg.installed #确保软件包已安装,如果没安装,就会自动安装pkg.latest #确保软件包是最新版本,如果不是,则进行升级pkg.remove #确保软件包已卸载,如果之前已安装,则进行卸载pkg.purge #除remove外,也会删除其他配件
使用案例:
lamp-install: pkg.installed: - pkgs: #这个是pkg模块下installed方法的一个参数,该参数可以指定多个包名,同时将这些包进行安装 - httpd - php - php-pdo - php-mysql
三.状态模块:file
官方文档:https://www.unixhot.com/docs/saltstack/ref/states/all/salt.states.file.html
功能:管理文件状态
该模块常用的方法:
file.managed #保证文件存在并且为对应的状态file.recurse #保证目录存在并且为对应状态(这个在博客saltstack入门中有使用案例,可以管理目录下文件,如果目录下文件发生变化的话,会覆盖目标目录中的同名文件)file.absent #确保文件不存在,如果存在就删除
四.状态模块:service
官方文档:https://www.unixhot.com/docs/saltstack/ref/states/all/salt.states.service.html
功能:管理服务状态
该模块常用方法:
service.running #确保服务处于运行状态,如果没有运行,就启动service.enabled #确保服务开机自启动service.disabled #确保服务开机不自启动service.dead #确保访问当前没有运行,如果运行就停止
五.功能:requisites(这个不是个模块,这是说明处理状态关系的一些选项)
官方文档:
功能:处理状态间关系
常用的选项:
require #我依赖某个状态require_in #我被某个状态依赖watch #我关注某个状态watch_in #我被某个状态关注
举例说明:
watch使用:我想实现,当配置文件发生改变的时候,我的服务自动重新加载或重启。
apache-config: #状态id1 file.managed: - name: /etc/httpd/conf/httpd.conf - source: salt://web/files/httpd.conf - user: root - group: root - mode: 644 - require: - pkg: lamp-installapache-conf: #状态id2 file.recurse: - name: /etc/httpd/conf.d - source: salt://web/files/apache-conf.d - watch_in: - service: lamp-servicelamp-service: service.running: - name: httpd - enable: True - reload: True #如果加上reload: True 代表文件发生变化的时候,服务会重载,但是需要该服务支持重载才能有 - watch: #通过watch来监听状态id1和状态2的状态,如果他两有任何一个文件或目录发生变化,那么,重启httpd服务 - file: apache-config - file: apache-conf
注:reload: True 这个需要服务支持重新加载,才能用该选项。
require说明:我想实现监控一个服务是否安装成功,如果安装成功后,执行一个状态,没装成功,这不执行该状态
lamp-install: pkg.installed: - pkgs: - httpd - php - php-pdo - php-mysqlapache-config: file.managed: - name: /etc/httpd/conf/httpd.conf - source: salt://web/files/httpd.conf - user: root - group: root - mode: 644 - require: #通过require来监控以下状态 - pkg: lamp-install #监控lamp-install这个状态是否安装成功,没安装成功的话,不执行apache-config状态