在SaltStack中如何使用require及watch语法

Requisites

require

require_in

watch

watch_in

总结(Conclusion)

在SaltStack配置关系系统中支持许多强大的选项。无论是简单的如软件包的安装还是使用模板和条件语句. SaltStack States可以从小巧逐步变得很复杂。幸运的是SaltStack提供一种用于解决States间依赖关系的方法. 本小节将讲述如何使用 require、require_in、watch、watch_in

Requisites

在SaltStack的世界中,requisites(译者注: 该词没找到合适的中文翻译,暂时使用英文原词)有两种类型,直接的requisites和"requisite_ins"。这些requisites是方向性的(directional),用于指定说"我依赖于某些东西"或"一些东西依赖于我"

require

下边是使用 require 语法的例子:

vim:

pkg.installed

/etc/vimrc:

file.managed:

- source: salt://edit/vimrc

- require:

- pkg: vim

在这个例子中, /etc/vimrc 文件并不会被placed(managed),直到 vim 软件包已安装

require_in

下边是同样的例子,只是这次使用了 require_in :

vim:

pkg.installed:

- require_in:

- file: /etc/vimrc

/etc/vimrc:

file.managed:

- source: salt://edit/vimrc

这个例子的效果是相同的,在 vim 中指定了 /etc/vimrc 依赖于我

在最后,将会创建一个从属(dependency)map,并以有限的(finite)及可预见的(predictable)顺序执行.

watch

下面将以 watch 语法举例,在本例中,运行中的 ntpd 服务将会关注 /etc/ntp.conf 文件的变化,如果发生变化,将会触发重启服务的操作.

ntpd:

service.running:

- watch:

- file: /etc/ntp.conf

/etc/ntp.conf:

file.managed:

- source: salt://ntp/files/ntp.conf

watch_in

在接下来例子中, /etc/ntp.conf 声明(declaring)它应该被 ntpd 服务watch

ntpd:

service.running

/etc/ntp.conf:

file.managed:

- source: salt://ntp/files/ntp.conf

- watch_in:

- service: ntpd

总结(Conclusion)

在State规则中,你可以通过强大的 require 、 require_in 、 watch 及 watch_in 指定state间的依赖关系. 无论是一个服务应该watch一个文件的变化,还是一个服务运行前必须确保软件包已安装都可以通过它们来指定state的逻辑执行顺序.

时间: 2024-08-03 16:56:42

在SaltStack中如何使用require及watch语法的相关文章

saltstack中stae用法

#salt  '*'  state.sls   httpd 这个命令会先在目录/srv/salt下找httpd.sls(yml语法格式编写的)文件,若:有就安装文件内容执行,若没有的话就继续找/srv/salt/httpd目录下init.sls,找到了安装文件内容执行,没有的话就报错: #salt  '*'  state.sls   httpd.install 按照文件/srv/salt/httpd/install.sls文件内容执行,没有的话就报错: [[email protected]_2 

PHP中include和require的区别详解

1.概要  require()语句的性能与include()相类似,都是包括并运行指定文件.不同之处在于:对include()语句来说,在执行文件时每次都要进行读取和评估:而对于require()来说,文件只处理一次(实际上,文件内容替换require()语句).这就意味着如果可能执行多次的代码,则使用require()效率比较高.另外一方面,如果每次执行代码时是读取不同的文件,或者有通过一组文件迭代的循环,就使用include()语句. require的使用方法如:require("myfil

react开发中如何使用require.ensure加载es6风格的模块

1.问题提出:想通过require.ensure加载es6风格的模块? 2.出现问题:import方式本身就是静态设计方式.如果require进来的是commonjs模块或者amd则没问题,但项目只想es6一个书写风格,行吗? 遗憾的是:一般语言编译工具(如babel),不支持直接require一个es6风格的React组件. 怎么办?? 3.react代码分割方式: react代码分割常见使用router方式,但是单页面应用,不打算router下,可以用require.ensure进行按需加载

Saltstack中Pillar那点事

Salt中Pillar那点事 基本简介 在 SaltStack 中, Pillar作为定义minion全局数据的接口. 默认存储在master端, Minion启动时会连接master获取最新的pillar数据. Pillar使用类似于State Tree的结构, 默认使用 YAML 作为其描述格式, 在Minion内部最终转换成 Python字典 . 那么在Salt内部, Pillar是如何工作的? 在哪些情况下,需要先执行刷新Pillar操作? 而哪些又不需要? 本文基于 Salt 2014

php 中 include 与 require 的区别

以下内容转自:https://blog.csdn.net/hsd2012/article/details/51089785 网上太多关于php中include与require区别.其实说的都是经不起验证的.随意找了一个截图如下: 还信誓旦旦的解释:include()是有条件包含函数,而require()则是无条件包含函数. 但是这是很久之前的事了,现在的php,require与include确实有区别,笔者测试的是5.3以上版本测试结果如下: 发现这两种结构除了在性能和在如何处理包含失败之外,其

js中import和require的区别

js中import和require的区别ES6标准发布后,module成为标准,标准使用是以export指令导出接口,以import引入模块.但是在我们一贯的node模块中,我们依然采用的是CommonJS规范,使用require引入模块,使用module.exports导出接口. require它相当于module.exports的传送门,module.exports后面的内容是什么,require的结果就是什么,对象.数字.字符串.函数……再把require的结果赋值给某个变量,相当于把re

Oracle中PL/SQL简介、基本语法以及数据类型

Oracle中PL/SQL简介.基本语法以及数据类型 一.PL/SQL简介. Oracle PL/SQL语言(Procedural Language/SQL)是结合了结构化查询和Oracle自身过程控制为一体的强大语言,PL/SQL不但支持更多的数据类型,拥有自身的变量申明,赋值语句,而且还有条件,循环等流程控制语句.过程控制结构与SQL数据处理能力无缝的结合形成了强大的编程语言,可以创建过程和函数以及程序包. PL/SQL是一种块结构的语言,它将一组语句放在一个块中,一次性的发送给服务器,由服

SQL中的in和not in语法对应的LINQ写法

List<testInfo> listAll = new List<testInfo>(); listAll.Add(new testInfo() { id = 1, name = "11", test = "111" }); listAll.Add(new testInfo() { id = 2, name = "22", test = "222" }); listAll.Add(new testIn

SecureCRT中 secureCRT使用VIM时对语法高亮

1.在SecureCRT中 secureCRT使用VIM时对语法高亮 其实不是secureCRT的功能,而是VIM的 设置:Options ->Session Options -> Terminal -> Emulation 中Terminal选择ANSI or linux or xterm,必须钩上 ANSI Colour 设置 选项->会话选项->终端->仿真->终端:Linux,选中ANSI Color 完成之后,就完成了高亮显示. 2.在用户目录建立.vi