##### 主要配置設置 #####
配置 默認值 說明 例子
default_include minion.d/*.conf master可以從其他文件讀取配置,默認情況下master將自動的將master.d/*.conf中的配置讀取出來並應用,其中master.d目錄是相對存在於主配置文件所在的目錄
default_include: minion.d/*.conf
master salt master服務器的ID master : salt
ipv6 False minion是否應該通過IPV6連接master ipv6 : False
retry_dns 30 minion在解析master的ip失敗后的重試等待時間,設置為0,則關閉重試 retry_dns : 30
user root minion的運行用戶,關系到minion執行命令的權限 user : root
pidfile
/var/run/salt-minion.pid
minion的pid文件位置
pidfile: /var/run/salt-minion.pid
root_dir / 指定該目錄為salt運行的根目錄,改變它可以使salt從另外一個目錄開始運行,好比chroot root_dir: /
pki_dir /etc/salt/pki/minion 存儲PIK信息的目錄
pki_dir: /etc/salt/pki/minion
id 不指定的話,salt通過socket.getfqdn()來獲取主機的名稱來作為標識,指定給ID,作為minion與master交互的身份標識 id: 192.168.0.100
append_domain 指定一個主機名稱或是一個域名,當socket.getfqdn()獲取主機標識失敗時候,可以用來作為替補ID append_domain : 192.168.0.100
grains
使用sls文件給minion自定義靜態的grain信息。
grains相當於對minion特別信息的匹配對象組,例如例子里面的匹配粒子信息中roles值為webserber,memcache的minion
## 注意sls文件是利用縮進兩個空格來作為縮進標識
grains:
roles:
- webserver
- memcache
deployment: datacenter4
cabinet: 13
cab_u: 14-15
cachedir
/var/cache/salt/minion
這個目錄是用來存放緩存信息,特別是salt工作執行的命令信息 cachedir: /var/cache/salt/minion
verify_env True 啟動時候對配置目錄進行驗證並設置權限 verify_env: True
cache_jobs False minion會在本地緩存salt執行過的命令返回數據。可以減少命令執行時間,減低IO,但結果可能不會實時 cache_jobs: False
sock_dir /var/run/salt/minion minion socke保存目錄 sock_dir: /var/run/salt/minion
output nested 設置salt-call的默認輸出方式,nested是使用默認設置的來輸出 output: nested
color True 是否對輸出結果進行顏色渲染 color : True
backup_mode minion 當進行文件更新,修改,***操作時,備份文件的方式,minion是本地進行備份
/etc/ssh/sshd_config:
file.managed:
- source: salt://ssh/sshd_config
- backup: minion
acceptance_wait_time 10 等待master接受minion的認證時間
acceptance_wait_time: 10
acceptance_wait_time_max 0 斷線重試次數,如果設置為0,無限次重試,如果大於0,則連接重試到該設置值
acceptance_wait_time_max: 0
random_reauth_delay 60 隨機重認證間隔(秒),例如當master修改key時,所有的minion需要重新認證,這個時候容易產生syn風暴,設置該隨機值,可以使minion分不同時間進行重新認證,避免該問題 random_reauth_delay:60
loop_interval 60
minion定時任務執行時間間隔
loop_interval: 60
dns_check True 確保原先的dns解析是正常的 dns_check: True
ipc_mode ipc windows缺少IPC協議支持,而是使用更慢的TCP來作為內部進程交流的協議,在windows上需要設置為tcp
ipc_mode: ipc
tcp_pub_port 4510 當設置為tcp模式時候,該參數覆蓋掉原先minon指定的tcp端口 tcp_pub_port: 4510
tcp_pull_port 4511 tcp_pull_port: 4511
include /etc/salt/extra_config 可以包含其他文件中的配置,要啟用此功能,通過此參數定義路徑或文件,此路徑可以是相對的也可以是絕對的,相對的,會被看作相對於主配置文件所在的目錄,路徑中還可以使用類似於shell風格的通配符,如果沒有文件匹配的路徑傳遞給此選項,那么master將會在日志中記錄一條警告的消息
include:
- /etc/salt/extra_config
- /etc/roles/webserver
##### Minion 模塊管理配置 #####
disable_modules [] 限制允許執行的模塊,對特別的權限可以進行設置,防止服務器重啟等 disable_modules: [cmd,test]
module_dirs [] 模塊可以通過指定任意目錄進行加載;指定一系列的外部目錄用於搜索minion的模塊以及returners。指定的路徑必須給minion完全的操作權限
module_dirs: []
returner_dirs [] returner_dirs: []
states_dirs [] states_dirs: []
render_dirs [] render_dirs: []
providers minion的模塊provider可以通過參數providers來進行特別指定
providers:
pkg: yumpkg5
ython_enable False 允許加載加密的模塊 ython_enable: False
##### State 管理設置 #####
renderer
yaml_jinja
state配置文件支持下面的配置語法,通過執行該參數,告訴saltstatck解析state模板的語言方法
# yaml_jinja
# yaml_mako
# yaml_wempy
# json_jinja
# json_mako
# json_wempy
renderer: yaml_jinja
failhard False 設置一個全局的failhard表示,當單個的狀態執行失敗后,將會通知所有的狀態停止運行狀態 failhard: False
autoload_dynamic_modules True 自動發現並加載master上的模塊
autoload_dynamic_modules: True
clean_dynamic_modules True 如果發現master上的模塊已經清除,則自動清楚對應的模塊 clean_dynamic_modules : True
environment None master在運行states的時候,通常不會把minion分割出來給任意一個單獨的環境,但在minion端,可以自行進行獨立的環境設置 environment:None
state_top
top.sls 指定top.sls文件的位置
state_top: top.sls
startup_states
''
在minion daemon開始時執行states.
# 'highstate' -- 執行 state.highstate
# 'sls' -- 讀取 sls_list 參數配置的路徑下的sls文件列表並執行
# 'top' -- 讀取top_file參數設置的文件並執行master上面設置的sls配置
startup_states: ''
sls_list 當startup_states配置為sls,該參數列出minion要運行的states文件
sls_list:
- edit.vim
- hyper
top_file " 當startup_states是top時,指定要執行的top文件 top_file: ''
##### 文件目錄設置 #####
#########################
file_client remote 設置minion的文件客戶端,reomote,默認選項,minon會到master去查找文件;設置為local,則minion會在本地查找配置文件 file_client: remote
file_roots
file_roots:
base:
- /srv/salt
設置文件客戶端路徑
file_roots:
base:
- /srv/salt/
dev:
- /srv/salt/dev/services
- /srv/salt/dev/states
prod:
- /srv/salt/prod/services
- /srv/salt/prod/states
fileserver_limit_traversal
False 設置saltstack查找state文件時候,僅遍歷查找帶sls后綴的文件或是帶_modules后綴的目錄
fileserver_limit_traversal: False
pillar_roots
pillar_roots:
base:
- /srv/pillar
當file_client設置為local時候,該參數制定pillar的搜索路徑
pillar_roots:
base:
- /srv/pillar
###### 安全設置 #####
open_mode
False open_mode是一個危險的安全特性,當master遇到pki認證系統,秘鑰混淆和身份驗證失效時,打開open_mode,master將會接受所有的身份驗證。這將會清理掉pki秘鑰接受的minions。通常情況下open_mode不應該被打開,它只適用於短時間內清理pki keys,若要打開它,可將值調整為True
open_mode: False
permissive_pki_access False permissive_pki_access:False
state_verbose True state_verbose允許從minions返回更多詳細的信息,通常清空下只返回失敗或者已經更改,但是將state_verbose設置為True,將會返回所有的狀態檢查 state_verbose:True
state_output full state_output的設置將會改變信息輸出的格式,當被設置為”full”時,將全部的輸出一行一行的顯示輸出;當被設置為”terse“時,將會被縮短為一行進行輸出;當被設置為”mixed”時,輸出樣式將會是簡潔的,除非狀態失敗,這種情況下將會全部輸出;當被設置為”change”時,輸出將會完全輸出除非狀態沒有改變 state_output:full
master_finger '' master_finger:''
###### Thread 設置 #####
multiprocessing True 多線程支持 multiprocessing: True
##### Logging 設置 #####
log_file /var/log/salt/minion log輸出路徑設置
#log_file: /var/log/salt/minion
#log_file: file:///dev/log
#log_file: udp://loghost:10514
#
#log_file: /var/log/salt/minion
#key_logfile: /var/log/salt/key
log_level warning
控制台(console)日志默認輸出等級:
'garbage', 'trace', 'debug', info', 'warning', 'error', 'critical'
log_level: warning
log_level_logfile warning
日志文件輸出等級:
'garbage', 'trace', 'debug', info', 'warning', 'error', 'critical'.
log_level_logfile:warning
log_datefmt '%H:%M:%S' 控制台日志日期格式
log_datefmt: '%H:%M:%S'
log_datefmt_logfile %Y-%m-%d %H:%M:%S' 日志文件日期格式 log_datefmt_logfile: '%Y-%m-%d %H:%M:%S'
log_fmt_console '[%(levelname)-8s] %(message)s' 控制台日志格式
log_fmt_console: '[%(levelname)-8s] %(message)s'
log_fmt_logfile '%(asctime)s,%(msecs)03.0f [%(name)-17s][%(levelname)-8s] %(message)s' 日志文件信息格式
log_fmt_logfile: '%(asctime)s,%(msecs)03.0f [%(name)-17s][%(levelname)-8s] %(message)s'
log_granular_levels {} 更加高級的指定日志輸出
log_granular_levels:
'salt': 'warning',
'salt.modules': 'debug'
###### Module 配置 #####
test True 指定允許所有的模塊運行測試模式 test:True
test.foo foo 給測試模塊test.foo指定一個簡單的值 test.foo: foo
test.bar
[baz,quo]
列表的測試模塊值 test.bar: [baz,quo]
test.baz
{spam: sausage, cheese: bread} 測試模塊指定字典格式的值
test.baz: {spam: sausage, cheese: bread}