1.saltstack 基礎詳細介紹 Saltstack使用Python開發,是一個很是簡單易用和輕量級的管理工具。由Master和Minion構成,經過ZeroMQ進行通訊 Saltstack的master端監聽4505與4506端口,4505爲salt的消息發佈系統,4506爲salt客戶端與服務端通訊的端口;salt客戶端程序不監聽端口,客戶端啓動後,會主動鏈接master端註冊,而後一直保持該TCP鏈接,master經過這條TCP鏈接對客戶端控制,若是鏈接斷開,master對客戶端就無能爲力了。固然,客戶端若檢查到斷開後會按期的一直鏈接master端的 Salt使用大名鼎鼎的ZeroMQ做爲通信協議,性能極高。能夠在數秒鐘以內完成數據的傳遞 基於ZeroMQ通訊,具有很強的擴展性;能夠進行分級管理,可以管理分佈在廣域網的上萬臺服務器 1. master: 老大,管理端 2. minion: 馬仔,被管理端 3. syndic: 頭目,對於老大來講是馬仔,對於馬仔來講是老大 節點信息(grains) grains: 記錄了minions中包括了os,cpu等相對靜態的k/v鍵值對的數據,一般是來自salt-minion上報的信息 pillar:我們能夠定義一些自定義的參數供salt的sls文件來引用,這個一般是在salt-master上爲minions而定義的 top.sls 這個是一個環境的入口,能夠匹配target,指定以「.sls」爲後綴來定義的salt state文件,例如: [root@tvm-saltmaster salt]# cat base/top.sls base: 'tvm-yum': - dnsmasq - crontab - web '*': - abc - monit - postfix - salt.minion - ssh - vim 配置管理(state) Salt使用SLS文件(SaLt State file)描述狀態。SLS使用YAML格式進行數據序列化,所以簡單明瞭,可讀性也很高 state可使用jinja模板引擎進行擴展 默認:通配符(globbing)) * E:正則表達式(Regular Expression) * L:列表 * N: 分組(group) * C:複合匹配 入口文件 file_roots中必須指定「base」環境的路徑,由於該路徑中存在Salt state的入口文件: top.sls