在使用salt配置一些主機的時候會經常的用到sls檔案樹,這個目錄我們可以在master上的/etc/salt/master檔案中進行修改,預設的路徑如下
file_roots:
base:
- /srv/salt/
通常是在/srv/salt之下,然後也有應用與pillar系統的檔案樹,大體的結構相同.
之前提到過saltstack的指令碼是使用yaml格式來渲染的,yaml是python中指代字典型別資料結構的結構序列化格式,基本上的結構就是鍵值對的形式,需要注意的是sls檔案中每個小節的key稱為id,這個id必須全域性唯一不然會出現錯誤。
首先無論是在state或者是pillar的系統中,都會有乙個名字叫做top.sls的檔案,這個檔案指定了環境和給minion端提供的sls檔案
例如這個配置openstack的top.sls檔案
base:
- open.pkginstall
.pkg
- open.chrony
.chrony
- open.mysql
.mysql
- open.rabbitmq
.rabbitmq
- open.memcached
.memcached
- open.keystone
.startup
- open.glance
.glance
- open.nova
.nova
- open.neutron
.neutron
這個目錄的結構大體如下
└── startup.slsbase之下指明了所有需要執行的sls檔案。
include塊的使用
通常需要引用其他的sls檔案可以使用這個模組
例如
include:
-pip
-django-install
然後需要注意的是include是乙個頂級的宣告在乙個指令碼中只能出現一次,而且所下屬的模組必須存在。
requisite的使用
通過requisite的使用我們可以改變執行時的順序。
require
最簡單的就是require,表示一種依賴性,需要什麼作為這個模組執行的先決條件
比如說
apache_service:
-pkg: httpd
以上表明要開啟httpd服務需要先安裝httpd,在平時的使用中state會保證配置過程的正確。
watch
這個模組的作用是發現watch之下的專案有什麼變動之後,執行乙個指定動作,比如說修改apache的配置檔案之後重新啟動
service:
-running
-watch:
-file: apache2
use
use是類似requisite一樣的呼叫,但是use的state不會將呼叫專案的requisite繼承過來,比如說
-service: mysql這個mysql_conf模組可以安全的將apache的配置檔案繼承過來,同時不會觸發httpd服務的重啟。
prereq
當乙個state在使用prereq的時候,salt會對指定關聯的專案執行test模式來預計是否會進行變更,如果有變更則這個模組才會執行。
-file: conffile以上的指令碼就是當httpd的配置文檔案如果被修改觸發prerq,然後將服務關閉
saltstack的一些sls巧用的技巧
按照,最實用優先原則,優先貼出官方對引數的介紹涉及頁面 全域性failhard引數的介紹 sls相互依賴或相互連線的各大引數 failhard引數介紹 實際環境中,我們會有中斷需求,當乙個state出現異常,我們不希望與之有關的state開始執行,甚至在它後面的state也終止執行 而failhar...
saltstack進行檔案管理
方法一 寫sls模板去實現 實踐 對於salt我們尤其要注意的就是縮排,這是python的特點 2.配置saltstack master 1 file roots base srv salt 2 檢視我規劃的saltstack sls和配置檔案,軟體包的目錄結構。3 在 srv salt目錄下面新建...
saltstack 主配置檔案
初識salt master minion配置,作為主要配置檔案,總結下比較重要常用的配置項 很多重要的配置都是預設就開啟的 inte ce 繫結介面位址 worker threads 設定工作執行緒的大小,如果minion較多的話需要加大,預設的比較小 cachedir 工作的快取目錄,master...