Saltstack學(xué)習(xí)筆記——states篇(下)

Call multiple states(調(diào)用多個(gè)states)

你可以在一個(gè)聲明的ID下面定義多個(gè)state語句,例如,我們可以快速的修改webserver.sls,并且如果apache沒有運(yùn)行將其啟動(dòng)。

httpd:
  pkg:                  #state類型聲明
    - installed
  service:              #state類型聲明
    - running
    - require:
      - pkg: httpd

在運(yùn)行state.highstate之前,嘗試停止apache,并且再次觀察其輸出內(nèi)容。

Require other states(依賴其他state)

現(xiàn)在我們已經(jīng)安裝了apache,并且處于工作狀態(tài),讓我們添加一個(gè)HTML文件來定制我們的網(wǎng)站。將下面的內(nèi)容添加進(jìn)你的webserver/init.sls文件中:

httpd:
  pkg:
    - installed
  service:
    - running
    - require:
      - pkg: httpd
 
/var/www/html/index.html:                   # 聲明一個(gè)ID
  file:                                     # 聲明state
    - managed                               # state中的函數(shù)名
    - source: salt://webserver/index.html   # 函數(shù)的參數(shù)
    - require:                              # 聲明requisite
      - pkg: httpd                          # requisite的引用

第9行聲明一個(gè)新的ID,在這個(gè)例子中它是我們自定義的HTML文件要安裝的位置(Note:在不同的操作系統(tǒng)或發(fā)行版上apache服務(wù)的默認(rèn)位置可能不同,/srv/www也可能是個(gè)好位置。)
第10行聲明使用的state。
第11行聲明使用第十行中的state的函數(shù)名。這個(gè)managed函數(shù)將從master上下載文件,并且按照指定的位置進(jìn)行安裝。
第12行是函數(shù)的參數(shù),在本例中利用managed函數(shù)中的source參數(shù),指定需要從master上下載的文件的路徑和名稱
第13行是require的聲明
第14行是require所要引用的state和ID,在這個(gè)例子它值的例子開頭處的那個(gè)ID,這個(gè)聲明告訴salt在不安裝apache之前不要安裝HTML文件

接下來,創(chuàng)建index.html文件,并且保存在webserver目錄下:

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

最后,在調(diào)用一次state.highstate,minion將獲取和執(zhí)行highstate以及從master的文件服務(wù)器上獲取我們的HTML文件

salt '*' state.highstate

現(xiàn)在驗(yàn)證apache中你自定義的HTML吧!

http://192.168.181.17

require VS watch

現(xiàn)在有兩個(gè)依賴的聲明,"require和watch",不是所有的state都支持"watch"。service state不支持"watch"并且不支持通過觀察一個(gè)條件進(jìn)行重新啟動(dòng)一個(gè)服務(wù)

例如,如果你使用salt配置安裝apache的虛擬主機(jī),當(dāng)配置文件發(fā)送改變時(shí)要重啟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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文參考:Saltstack SLS文件解讀 前言:state是salt最核心的功能,通過預(yù)先制定好的sls文件對(duì)...
    擼大師閱讀 2,427評(píng)論 0 2
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評(píng)論 19 139
  • 更改ip和dnsVi /etc/sysconfig/network-scripts/ifcfg-eth0vi /...
    Xwei_閱讀 2,043評(píng)論 0 3
  • 關(guān)于,SaltStack 這個(gè)牛逼的配置管理神器,上周我寫了篇入門級(jí)的 《SaltStack 一日游》。 今天,深...
    hxzqlh閱讀 2,660評(píng)論 0 1
  • 今天一整天都在想2017年我收獲了什么? 值得說的好像沒有,如果想不到收獲了什么,應(yīng)該是我付出的還不夠多,但內(nèi)心有...
    堅(jiān)持成習(xí)慣閱讀 683評(píng)論 0 2

友情鏈接更多精彩內(nèi)容