Requisitesvim
requireide
require_inui
watch翻譯
watch_init
總結(Conclusion)io
在SaltStack配置關係系統中支持許多強大的選項。不管是簡單的如軟件包的安裝仍是使用模板和條件語句. SaltStack States能夠從小巧逐步變得很複雜。幸運的是SaltStack提供一種用於解決States間依賴關係的方法. 本小節將講述如何使用 require、require_in、watch、watch_intable
Requisites模板
在SaltStack的世界中,requisites(譯者注: 該詞沒找到合適的中文翻譯,暫時使用英文原詞)有兩種類型,直接的requisites和"requisite_ins"。這些requisites是方向性的(directional),用於指定說"我依賴於某些東西"或"一些東西依賴於我"class
requirerequire
下邊是使用 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的邏輯執行順序.