SaltStack其他常用的状态模块和方法

一.所有状态模块官方文档

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(这个不是个模块,这是说明处理状态关系的一些选项)

官方文档:http://docs.saltstack.com/ref/states/ordering.html

功能:处理状态间关系

常用的选项:

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-install

apache-conf:         #状态id2
  file.recurse:
    - name: /etc/httpd/conf.d
    - source: salt://web/files/apache-conf.d
    - watch_in:
      - service: lamp-service

lamp-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-mysql

apache-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状态

 

posted @ 2019-04-24 09:37  *年少轻狂*  阅读(341)  评论(0编辑  收藏  举报