- A+
所属分类:SaltStack
官方文档:https://docs.saltstack.com/en/latest/ref/states/requisites.html
功能名称:requisites
功 能:处理状态间的关系
常用方法:
- require:我依赖某个状态
- require_in:我被某个状态依赖
- watch:我关注某个状态
- watch_in:我被某个状态关注
文档:https://www.unixhot.com/docs/saltstack/ref/states/all/salt.states.cmd.html#module-salt.states.cmd
功能名称:cmd
功 能:执行命令
常用方法:
- name:执行命令
- unless:判断条件为真则不执行
以sls文件配置为例说明状态间的关系,如下:
- 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: #我依赖lamp-install状态,lamp-install必须执行成功我才能执行。
- - pkg: lamp-install
- apache-auth:
- pkg.installed:
- - name: httpd-tools
- - require_in: #我被apache-auth状态依赖,apache-auth必须执行成功才会执行改状态
- - cmd: apache-auth
- cmd.run: #命令状态模块,执行命令使用的模块(上面的require_in执行不成功它就不会执行)
- - name: htpasswd -bc /etc/httpd/conf/htpasswd_file admin admin #执行的命令
- - unless: test -f /etc/httpd/conf/htpasswd_file #unless判断该文件是否存在,条件为真,cmd.run则不执行
- apache-conf:
- file.recurse:
- - name: /etc/httpd/conf.d
- - source: salt://web/files/apache-conf.d
- - watch_in: #我被id为lamp-service的状态关注,当该文件发生变化时就会触动lamp-service
- - service: lamp-service
- /etc/php.ini:
- file.managed:
- - source: salt://web/files/php.ini
- - user: root
- - group: root
- - mode: 644
- - watch_in: #我被id为lamp-service的状态关注,当该文件发生变化时就会触动lamp-service
- - service: lamp-service
- lamp-service:
- service.running:
- - name: httpd
- - enable: True
- - reload: True #如果文件发生变化,服务就会重载(如果服务不支持reload就不能这样写)
- - watch: #当我发现该文件发生变化时就会启动该模块
- - file: apache-config #当这个文件发生变化,服务就会重载