Saltstack Master 配置文件详解
#主配置 /etc/salt/master
?
interface
默認(rèn)值:0.0.0.0(所有的網(wǎng)絡(luò)地址接口)
綁定到本地的某個(gè)網(wǎng)絡(luò)地址接口
interface: 192.168.30.131?
?
publish_port
默認(rèn)值:4505
設(shè)置master與minion的認(rèn)證通信端口
publish_port: 4505?
?
user
默認(rèn)值:root
運(yùn)行salt進(jìn)程的用戶?
user: root?
max_open_files
默認(rèn)值:100000
每一個(gè)minion連接到master,至少要使用一個(gè)文件描述符,如果足夠多的minion連接到master上,你將會(huì)從控制臺(tái)上看到salt-master crashes:
Too many open files (tcp_listener.cpp:335)
Aborted (core dumped)
默認(rèn)值這個(gè)值取決于ulimit -Hn的值,即系統(tǒng)的對打開文件描述符的硬限制
如果你希望重新設(shè)置改值或者取消設(shè)置,記住這個(gè)值不能超過硬限制,提高硬限制取決于你的操作系統(tǒng)或分配,一個(gè)好的方法是internet找到對應(yīng)操作系統(tǒng)的硬限制設(shè)置,比如這樣搜索:
raise max open files hard limit debian?
max_open_files: 100000?
?
worker_threads
默認(rèn)值:5
啟動(dòng)用來接收或應(yīng)答minion的線程數(shù)。如果你有很多minion,而且minion延遲你的應(yīng)答,你可以適度的提高該值.
在點(diǎn)對點(diǎn)的系統(tǒng)環(huán)境中使用時(shí),該值不要被設(shè)置為3以下,但是可以將其設(shè)置為1
worker_threads: 5?
?
ret_port
默認(rèn)值:4506
這個(gè)端口是master用來發(fā)送命令或者接收minions的命令執(zhí)行返回信息?
ret_port: 4506?
?
pidfile
默認(rèn)值:/var/run/salt-master.pid
指定master的pid文件位置?
pidfile: /var/run/salt-master.pid?
?
root_dir
默認(rèn)值:/
指定該目錄為salt運(yùn)行的根目錄,改變它可以使salt從另外一個(gè)目錄開始運(yùn)行,好比chroot?
root_dir: /?
?
pki_dir
默認(rèn)值:/etc/salt/pki
這個(gè)目錄是用來存放pki認(rèn)證秘鑰?
pki_dir: /etc/salt/pki?
?
cachedir
默認(rèn)值:/var/cache/salt
這個(gè)目錄是用來存放緩存信息,特別是salt工作執(zhí)行的命令信息?
cachedir: /var/cache/salt?
?
keep_jobs
默認(rèn)值:24
設(shè)置保持老的工作信息的過期時(shí)間,單位小時(shí)
?
job_cache
默認(rèn)值:True
設(shè)置master維護(hù)的工作緩存,這是一個(gè)很好的功能,當(dāng)你的Minons超過5000臺(tái)時(shí),他將很好的承擔(dān)這個(gè)大的架構(gòu),關(guān)閉這個(gè)選項(xiàng),之前的工作執(zhí)行以及工作系統(tǒng)將無法被利用,一般不推薦關(guān)掉改選項(xiàng),開啟改選項(xiàng)將會(huì)是很明智的,他將使master獲得更快的IO系統(tǒng)
?
ext_job_cache
默認(rèn)值:”
對所有的minions使用指定的默認(rèn)值returner,當(dāng)使用了這個(gè)參數(shù)來指定一個(gè)returner并且配置正確,minions將會(huì)一直將返回的數(shù)據(jù)返回到returner,這也會(huì)默認(rèn)值禁用master的本地緩存?
ext_job_cache: redis?
?
minion_data_cache
默認(rèn)值:True
minion data cache是關(guān)于minion信息存儲(chǔ)在master上的參數(shù),這些信息主要是pillar 和 grains數(shù)據(jù).這些數(shù)據(jù)被緩存在cachedir定義的目錄下的minion目錄下以minion名為名的目錄下并且預(yù)先確定哪些minions將從執(zhí)行回復(fù)?
minion_cache_dir: True?
?
enforce_mine_cache
默認(rèn)值:False
默認(rèn)情況下當(dāng)關(guān)閉了minion_data_cache,mine將會(huì)停止工作,因?yàn)閙ine是基于緩存數(shù)據(jù),通過啟用這個(gè)選項(xiàng),我們將會(huì)顯示的開啟對于mine系統(tǒng)的緩存功能?
enforce_mine_cache: False?
?
sock_dir
默認(rèn)值:/tmp/salt-unix
指定unix socket主進(jìn)程通信的socket創(chuàng)建路徑
?
master的安全配置
?
open_mode
默認(rèn)值:False
open_mode是一個(gè)危險(xiǎn)的安全特性,當(dāng)master遇到pki認(rèn)證系統(tǒng),秘鑰混淆和身份驗(yàn)證失效時(shí),打開open_mode,master將會(huì)接受所有的身份驗(yàn)證。這將會(huì)清理掉pki秘鑰接受的minions。通常情況下open_mode不應(yīng)該被打開,它只適用于短時(shí)間內(nèi)清理pki keys,若要打開它,可將值調(diào)整為True
open_mode: False?
auto_accept
默認(rèn)值:False
開啟auto_accept。這個(gè)設(shè)置將會(huì)使master自動(dòng)接受所有發(fā)送公鑰的minions
auto_accept: False?
?
autosign_file
默認(rèn)值:/etc/salt/autosign.conf
如果autosign_file的值被指定,那么autosign_file將會(huì)通過該輸入允許所有的匹配項(xiàng),首先會(huì)搜索字符串進(jìn)行匹配,然后通過正則表達(dá)式進(jìn)行匹配。這是不安全的
autosign_file: /etc/salt/autosign.conf?
?
client_acl
默認(rèn)值:{}
開啟對系統(tǒng)上非root的系統(tǒng)用戶在master上執(zhí)行特殊的模塊,這些模塊名可以使用正則表達(dá)式進(jìn)行表示
client_acl:fred:- test.ping- pkg.*?
client_acl_blacklist
默認(rèn)值:{}
黑名單用戶或模塊
這個(gè)例子表示所有非sudo用戶以及root都無法通過cmd這個(gè)模塊執(zhí)行命令,默認(rèn)情況改配置是完全禁用的
client_acl_blacklist:users:- root- '^(?!sudo_).*$' # all non sudo usersmodules:- cmd?
?
external_auth
默認(rèn)值:{}
salt的認(rèn)證模塊采用外部的認(rèn)證系統(tǒng)用來做認(rèn)證和驗(yàn)證用戶在salt系統(tǒng)中的訪問區(qū)域
external_auth:pam:fred:- test.*?
token_expire
默認(rèn):43200
新令牌生成的時(shí)間間隔,單位秒,默認(rèn)是12小時(shí)
token_expire: 43200?
?
file_recv
默認(rèn)值:False
允許minions推送文件到master上,這個(gè)選項(xiàng)默認(rèn)是禁用的,出于安全考慮
file_recv: False?
?
#######################
master模塊管理
?
runner_dirs
默認(rèn)值:[] 設(shè)置搜索runner模塊的額外路徑
runner_dirs: []?
?
cython_enable
默認(rèn)值:False
設(shè)置為true來開啟對cython模塊的編譯
cython_enable: False?
?
master狀態(tài)系統(tǒng)設(shè)置
?
state_verbose
默認(rèn):False
state_verbose允許從minions返回更多詳細(xì)的信息,通常清空下只返回失敗或者已經(jīng)更改,但是將state_verbose設(shè)置為True,將會(huì)返回所有的狀態(tài)檢查
state_verbose: True?
?
state_output
默認(rèn)值:full
state_output的設(shè)置將會(huì)改變信息輸出的格式,當(dāng)被設(shè)置為”full”時(shí),將全部的輸出一行一行的顯示輸出;當(dāng)被設(shè)置為”terse“時(shí),將會(huì)被縮短為一行進(jìn)行輸出;當(dāng)被設(shè)置為”mixed”時(shí),輸出樣式將會(huì)是簡潔的,除非狀態(tài)失敗,這種情況下將會(huì)全部輸出;當(dāng)被設(shè)置為”change”時(shí),輸出將會(huì)完全輸出除非狀態(tài)沒有改變
state_output: full?
?
state_top
默認(rèn)值:top.sls
狀態(tài)系統(tǒng)使用一個(gè)入口文件告訴minions在什么環(huán)境下使用什么模塊,這個(gè)狀態(tài)入口文件被定義在基礎(chǔ)環(huán)境的相對根路徑下
state_top: top.sls?
?
external_nodes
默認(rèn)值:None
這個(gè)外部節(jié)點(diǎn)參數(shù)允許salt來收集一些數(shù)據(jù),通常被放置在一個(gè)入口文件或外部節(jié)點(diǎn)控制器.外部節(jié)點(diǎn)的選擇是可執(zhí)行的,將會(huì)返回ENC數(shù)據(jù),記住如果兩者都啟用的話salt會(huì)將外部節(jié)點(diǎn)和入口文件的結(jié)果進(jìn)行綜合匯總。
external_nodes: cobbler-ext-nodes?
?
renderer
默認(rèn)值:yaml_jinja
使用渲染器用來渲染minions的狀態(tài)數(shù)據(jù)
renderer: yaml_jinja?
?
failhard
默認(rèn)值:False
設(shè)置一個(gè)全局的failhard表示,當(dāng)單個(gè)的狀態(tài)執(zhí)行失敗后,將會(huì)通知所有的狀態(tài)停止運(yùn)行狀態(tài)
failhard: False?
?
test
默認(rèn)值:False
如果真的要作出改變或者僅僅通知將要執(zhí)行什么改變時(shí)設(shè)置所有的狀態(tài)調(diào)用為test
?
test: False
?
#######################
master文件服務(wù)器設(shè)置
?
fileserver_backend
默認(rèn)值:
fileserver_backend: - roots?
?
salt支持模塊化的后端文件系統(tǒng)服務(wù)器,它允許salt通過第三方的系統(tǒng)來管理收集文件并提供給minions使用,可以配置多個(gè)后端文件系統(tǒng),這里支持gitfs、hgfs、roots、s3fs文件調(diào)用的搜索順序按照后臺(tái)文件系統(tǒng)的配置順序來搜索,默認(rèn)的設(shè)置只開啟了標(biāo)準(zhǔn)的后端服務(wù)器roots,具體的根選項(xiàng)配置通過file_roots參數(shù)設(shè)置
fileserver_backend: - roots - gitfs?
?
file_roots
默認(rèn)值:
base: - /srv/salt?
?
salt運(yùn)行一個(gè)輕量級(jí)的文件服務(wù)器通過ZeroMQ對minions進(jìn)行文件傳輸,因此這個(gè)文件服務(wù)器是構(gòu)造在master的守護(hù)進(jìn)程中,并且不需要依賴于專用的端口
文件服務(wù)器的工作環(huán)境傳遞給master,每一個(gè)環(huán)境可以有多個(gè)跟目錄,但是相同環(huán)境下多個(gè)文件的子目錄不能相同,否則下載的文件將不能被可靠的保證,一個(gè)基礎(chǔ)環(huán)境依賴于主的入口文件,如:?
file_roots: base: - /srv/salt dev: - /srv/salt/dev/services - /srv/salt/dev/states prod: - /srv/salt/prod/services - /srv/salt/prod/states?
?
hash_type
默認(rèn)值:md5
hash_type是用來當(dāng)發(fā)現(xiàn)在master上需要對一個(gè)文件進(jìn)行hash時(shí)的hash使用的算法,默認(rèn)是md5.但是它也支持sha1,sha224,shar256,shar384,shar512?
hash_type: md5?
?
file_buffer_size
默認(rèn)值:1048576
文件服務(wù)器的緩存區(qū)大小?
file_buffer_size: 1048576?
?
pillar配置
?
pillar_roots
默認(rèn)值:?
base: - /srv/pillar?
?
設(shè)置不同的環(huán)境對應(yīng)的存放pillar數(shù)據(jù)的目錄,這個(gè)配置和file_roots參數(shù)配置一樣?
pillar_roots: base: - /srv/pillar dev: - /srv/pillar/dev prod: - /srv/pillar/prod?
?
ext_pillar
當(dāng)進(jìn)行pillar數(shù)據(jù)收集時(shí),這個(gè)ext_pillar參數(shù)允許調(diào)用任意數(shù)量的外部pillar接口,這個(gè)配置是基于ext_pillar函數(shù),你可以從這個(gè)找到這個(gè)函數(shù)https://github.com/saltstack/salt/blob/develop/salt/pillar
默認(rèn)情況下,這個(gè)ext_pillar接口沒有配置運(yùn)行
默認(rèn)值:None?
ext_pillar:- hiera: /etc/hiera.yaml- cmd_yaml: cat /etc/salt/yaml- reclass:inventory_base_uri: /etc/reclass?
?
從這里可以查到pillar的一些額外細(xì)節(jié)
?
syndic server配置
?
syncdic是salt master用來通過從整體架構(gòu)中高于自己層級(jí)的master或者syndic接收命令傳遞給minions的中間角色。使用syndic非常簡單,如果這個(gè)master在整體架構(gòu)中,他的下級(jí)存在syndic server,那么需要將master的配置文件中的”order_master”值設(shè)置為True,如果這個(gè)master還需要運(yùn)行一個(gè)syndic進(jìn)程,扮演另外一個(gè)角色,那么需要設(shè)置主master server的信息(上一級(jí)master)
千萬別忘記了,這將意味著它將與其他master共享它的minion的id和pki_dir
?
order_masters
默認(rèn)值:False
當(dāng)額外的數(shù)據(jù)需要發(fā)送和傳遞,并且這個(gè)master控制的minions是被低等級(jí)的master或syndic直接管理下,那么”order_masters”這個(gè)值必須得設(shè)置為True?
order_master: Fals?
e?
syndic_master
默認(rèn)值:None
如果這個(gè)master運(yùn)行的salt-syndic連接到了一個(gè)更高層級(jí)的master,那么這個(gè)參數(shù)需要配置成連接到的這個(gè)高層級(jí)的master的地址?
syndic_master: masterofmasters?
?
syndic_master_port
默認(rèn)值:4506
如果這個(gè)master運(yùn)行的salt-syndic連接到了一個(gè)更高層級(jí)的master,那么這個(gè)參數(shù)需要配置成連接到的這個(gè)高層級(jí)master的監(jiān)聽端口?
syndic_master_port: 4506?
?
syndic_log_file
默認(rèn)值:syndic.log
為syndic進(jìn)程指定日志文件?
syndic_log_file: salt-syndic.log?
?
syndic_pidfile
默認(rèn)值:salt-syndic.pid
為syndic進(jìn)程指定pid文件?
syndic_pidfile: syndic.pid?
?
Peer Publish設(shè)置
?
salt minions可以向其他minions發(fā)送命令,但是僅僅在minion允許的情況下。默認(rèn)情況下”Peer Publication”是關(guān)閉的,當(dāng)需要開啟的時(shí)候,需要開啟對應(yīng)的minion和對應(yīng)的命令,這樣可以允許根據(jù)個(gè)人的minions安全的劃分出命令
?
peer
默認(rèn)值:{}
這個(gè)配置使用正則表達(dá)式去匹配minions并且是一個(gè)正則表達(dá)式列表函數(shù),下面這個(gè)例子將允許名為foo.example.com的minion認(rèn)證通過后執(zhí)行test和pkg模塊中的函數(shù)?
peer: foo.example.com: - test.* - pkg.*?
?
這將允許所有的minion執(zhí)行所有的命令?
peer: .*: - .*?
?
這樣的配置是極不推薦的,因?yàn)槿魏稳说玫郊軜?gòu)中的任何一個(gè)minion即可擁有所有的minions,這是不安全的
?
peer_run
默認(rèn)值:{}
peer_run參數(shù)是用來打開runners在master所允許的minions上,peer_run的配置匹配格式和peer參數(shù)的配置一樣
下面這個(gè)例子允許foo.example.com的minion執(zhí)行manage.up runner?
peer_run:foo.example.com:- manage.up?
NODE GROUPS
默認(rèn)值:{}
minions允許通過node groups來分成多個(gè)邏輯組,每個(gè)組由一個(gè)組名和復(fù)合模式組成?
nodegroups:group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com or bl*.domain.com'group2: 'G@os:Debian and foo.domain.com'?
?
Master日志設(shè)置
?
log_file
默認(rèn)值:/var/log/salt/master
master的日志可以發(fā)送到一個(gè)普通文件,本地路徑名或者網(wǎng)絡(luò)位置,更多詳情
例如:?
log_file: /var/log/salt/master log_file: file:///dev/log log_file: udp://loghost:10514?
?
log_level
默認(rèn)值:warning
按照日志級(jí)別發(fā)送信息到控制臺(tái),更多詳情?
log_level: warning?
?
log_level_logfile
默認(rèn)值:warning
按照日志級(jí)別發(fā)送信息到日志文件,更多詳情?
log_level_logfile: warning?
?
log_datefmt
默認(rèn)值:%H:%M:%S
發(fā)送到控制臺(tái)信息所用的日期時(shí)間格式,更多詳情?
log_datefmt: '%H:%M:%S'?
?
log_datefmt_logfile
默認(rèn)值: %Y-%m-%d %H:%M:%S
發(fā)送到日志文件信息所用的日期時(shí)間格式,更多詳情?
log_datefmt_logfile: '%Y-%m-%d %H:%M:%S'?
?
log_fmt_console
默認(rèn)值: [%(levelname)-8s] %(message)s
控制臺(tái)日志信息格式,更多詳情?
log_fmt_console: '[%(levelname)-8s] %(message)s'?
?
log_fmt_logfile
默認(rèn)值: %(asctime)s,%(msecs)03.0f [%(name)-17s][%(levelname)-8s] %(message)s
%(asctime)s:2003-07-08 16:49:45
%(msecs)03.0f:當(dāng)前時(shí)間的毫秒部分
%(name):日志記錄調(diào)用器的名字
%(levelname):日志記錄級(jí)別
%(message)s:日志詳細(xì)信息
日志文件信息格式,更多詳情?
log_fmt_logfile: '%(asctime)s,%(msecs)03.0f [%(name)-17s][%(levelname)-8s] %(message)s'?
?
log_granular_levels
默認(rèn)值:{}
這可以更加具體的控制日志記錄級(jí)別,更多詳情
?
Include 配置
?
default_include
默認(rèn)值:master.d/*.conf
master可以從其他文件讀取配置,默認(rèn)情況下master將自動(dòng)的將master.d/*.conf中的配置讀取出來并應(yīng)用,其中master.d目錄是相對存在于主配置文件所在的目錄
?
include
默認(rèn)值:not defined
master可以包含其他文件中的配置,要啟用此功能,通過此參數(shù)定義路徑或文件,此路徑可以是相對的也可以是絕對的,相對的,會(huì)被看作相對于主配置文件所在的目錄,路徑中還可以使用類似于shell風(fēng)格的通配符,如果沒有文件匹配的路徑傳遞給此選項(xiàng),那么master將會(huì)在日志中記錄一條警告的消息?
# Include files from a master.d directory in the same # directory as the master config file include: master.d/*# Include a single extra file into the configuration include: /etc/roles/webserver# Include several files and the master.d directory include:- extra_config- master.d/*- /etc/roles/webserver?
轉(zhuǎn)載于:https://www.cnblogs.com/zlyang/p/5941821.html
總結(jié)
以上是生活随笔為你收集整理的Saltstack Master 配置文件详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 红米k40是升降摄像头吗 全系E4材质O
- 下一篇: 虚拟机centos 上安装svn