zoukankan      html  css  js  c++  java
  • STATES ORDERING AND PROVIDERS

    ORDERING STATES

    states文件的执行顺序,可以按照默认原则执行顺序,或着自定义执行顺序。


    STATE AUTO ORDERING

    state_auto_order这个选项可以按照sls文件中定义的顺序进行评估,包括top文件
    order选项将覆盖定义好的states状态顺序,默认state_auto_order设置为True。


    REQUISITE STATEMENTS

    一般states状态都需要与其他states状态建立依赖关系,利用requisite语句来设置状态之间的关系,一般有这3个语句被使用 require, watch, and prereq.

    示例:

    1 httpd:
    2   pkg.installed: []
    3   file.managed:
    4     - name: /etc/httpd/conf/httpd.conf
    5     - source: salt://httpd/httpd.conf
    6     - require:
    7       - pkg: httpd
    View Code

    示例中定义了一个require关系,httpd.conf文件的同步依赖于httpd包安装成功作为依赖条件

    Require statements能被定义在salt中任意的state,包括sls文件(以类似于链接文件的形式被引入),这确保在复杂的states的状况下能以正确的顺序执行。

    示例:

    1 include:
    2   - network
    3 
    4 httpd:
    5   pkg.installed: []
    6   service.running:
    7     - require:
    8       - pkg: httpd
    9       - sls: network
    View Code

    在示例中如果httpd和network不能同时被成功执行,那么service就不会被执行
    注意:Requisite的匹配要求,可以匹配name或状态ID,如果name为一个列表参数,不能指定其中一个包作为依赖


    MULTIPLE REQUISITES

    多重的require依赖定义

    示例:

     1 httpd:
     2   pkg.installed: []
     3   service.running:
     4     - enable: True
     5     - watch:
     6       - file: /etc/httpd/conf/httpd.conf
     7     - require:
     8       - pkg: httpd
     9       - user: httpd
    10       - group: httpd
    11   file.managed:
    12     - name: /etc/httpd/conf/httpd.conf
    13     - source: salt://httpd/httpd.conf
    14     - require:
    15       - pkg: httpd
    16   user.present: []
    17   group.present: []
    View Code

    示例中设置为仅当pkg,user,group同时执行成功才启动httpd服务


    REQUISITE DOCUMENTATION

    THE ORDER OPTION

    require定义的依赖关系将覆盖设置的order选项
    示例:

    1 vim:
    2   pkg.installed:
    3     - order: 1
    View Code

    示例中设置的order选项将确保pkg在第一顺序被执行,对于没有order的state将在后面被执行

    设置state最后执行

    1 vim:
    2   pkg.installed:
    3     - order: last
    View Code

    -------------------------------------------------------------------------------------------------------------------------------------------

    STATE PROVIDERS

    PROVIDERS模块的使用,譬如在一个旧版本的linux中,当无法使用systemd的时候可以利用PROVIDERS模块来指定salt只用指定的模块运行
    示例:

    1 httpd:
    2   service.running:
    3     - enable: True
    4     - provider: service
    View Code

    这时设置provider只适用于指定的state,如果想在minion端被全局使用可以在minion config中配置,且provider仅适用虚拟模块


    ARBITRARY MODULE REDIRECTS

    可使用指定的自定义模块执行函数,而不仅仅是重写或扩展一个虚拟模块,这意味着你可以对provider定义类型
    示例:

    1 emacs:
    2   pkg.installed:
    3     - provider:
    4       - cmd: customcmd
    View Code

    示例中为安装软件包提供了极大地灵活执行方式。

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------

  • 相关阅读:
    免费公共dns推荐
    vm10 mac 序列号
    sublimetext 序列号
    操作系统第6次实验报告:使用信号量解决进程互斥访问
    操作系统第5次实验报告:内存管理
    操作系统第4次实验报告:文件系统
    操作系统第3次实验报告:管道
    操作系统第2次实验报告:创建进程
    OS第1次实验报告:熟悉使用Linux命令和剖析ps命令
    第四次实验报告:使用Packet Tracer理解RIP路由协议
  • 原文地址:https://www.cnblogs.com/solitarywares/p/7629879.html
Copyright © 2011-2022 走看看