Saltstack学习笔记——states篇(下)

Call multiple states(调用多个states)

你可以在一个声明的ID下面定义多个state语句,例如,我们可以快速的修改webserver.sls,并且如果apache没有运行将其启动。

httpd:
  pkg:                  #state类型声明
    - installed
  service:              #state类型声明
    - running
    - require:
      - pkg: httpd

在运行state.highstate之前,尝试停止apache,并且再次观察其输出内容。

Require other states(依赖其他state)

现在我们已经安装了apache,并且处于工作状态,让我们添加一个HTML文件来定制我们的网站。将下面的内容添加进你的webserver/init.sls文件中:

httpd:
  pkg:
    - installed
  service:
    - running
    - require:
      - pkg: httpd
 
/var/www/html/index.html:                   # 声明一个ID
  file:                                     # 声明state
    - managed                               # state中的函数名
    - source: salt://webserver/index.html   # 函数的参数
    - require:                              # 声明requisite
      - pkg: httpd                          # requisite的引用

第9行声明一个新的ID,在这个例子中它是我们自定义的HTML文件要安装的位置(Note:在不同的操作系统或发行版上apache服务的默认位置可能不同,/srv/www也可能是个好位置。)
第10行声明使用的state。
第11行声明使用第十行中的state的函数名。这个managed函数将从master上下载文件,并且按照指定的位置进行安装。
第12行是函数的参数,在本例中利用managed函数中的source参数,指定需要从master上下载的文件的路径和名称
第13行是require的声明
第14行是require所要引用的state和ID,在这个例子它值的例子开头处的那个ID,这个声明告诉salt在不安装apache之前不要安装HTML文件

接下来,创建index.html文件,并且保存在webserver目录下:

<html>
    <head><title>Salt rocks</title></head>
    <body>
        <h1>This file brought to you by Salt</h1>
    </body>
</html>

最后,在调用一次state.highstate,minion将获取和执行highstate以及从master的文件服务器上获取我们的HTML文件

salt '*' state.highstate

现在验证apache中你自定义的HTML吧!

http://192.168.181.17

require VS watch

现在有两个依赖的声明,"require和watch",不是所有的state都支持"watch"。service state不支持"watch"并且不支持通过观察一个条件进行重新启动一个服务

例如,如果你使用salt配置安装apache的虚拟主机,当配置文件发送改变时要重启apache,你可以修改之前的例子:

/etc/httpd/extra/httpd-vhosts.conf:
  file:
    - managed
    - source: salt://webserver/httpd-vhosts.conf
 
apache:
  pkg:
    - installed
  service:
    - running
    - watch:
      - file: /etc/httpd/extra/httpd-vhosts.conf
    - require:
      - pkg: apache
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文参考:Saltstack SLS文件解读 前言:state是salt最核心的功能,通过预先制定好的sls文件对...
    撸大师阅读 6,929评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,237评论 19 139
  • 更改ip和dnsVi /etc/sysconfig/network-scripts/ifcfg-eth0vi /...
    Xwei_阅读 5,924评论 0 3
  • 关于,SaltStack 这个牛逼的配置管理神器,上周我写了篇入门级的 《SaltStack 一日游》。 今天,深...
    hxzqlh阅读 7,406评论 0 1
  • 今天一整天都在想2017年我收获了什么? 值得说的好像没有,如果想不到收获了什么,应该是我付出的还不够多,但内心有...
    坚持成习惯阅读 3,762评论 0 2

友情链接更多精彩内容