saltstack的sls檔案樹與sls檔案編寫

2021-08-09 09:59:15 字數 3365 閱讀 1919

在使用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...