saltstack基礎概念

用了兩天的時間把salt的源碼安裝搞定,蛋疼啊。如今記錄下salt的基礎學習過程。
node

經常使用術語:mysql

minion: salt客戶端
redis

master: salt服務端sql

grains: 客戶端的一些底層信息、好比cpu、ip、memshell

pillar: 用戶在master端自定義的數據、可用於minionjson

state: 用戶自定義的sls文件、用來管理文件、包的狀態bash

mine: 客戶端收集的信息、這個信息是共享的服務器

jinja:sls默認的模版,用於替換數據的架構

targeting: 操做目標、就是客戶端ide

returner: 將數據返回到其餘地方、支持mysql、redis等

renderer:配置、模版解析引擎,包含jinja、json、yaml、py等


targeting:

在管理服務器時,咱們須要指定管理的目標,這個時候就須要用到targeting。


target有如下幾種方式:

使用id指定target    

使用grains指定target  -G(--grain)  --grain-pcre

使用配置文件中預約義的nodegroups  -N(--nodegroup)

使用函數返回狀態碼指定target  -X(--exsel)

使用pillar指定target  -I(--pillar)

使用ip地址段或ip指定target  -S(--ipcidr)

混合指定target  -C(--compound)


target匹配方式:

使用shell通用匹配符匹配

使用pcre匹配


基本架構:

wKiom1OGxDOQLDK8AAD5wgx8344357.jpg



命令執行

wKiom1OGx6uQNiC9AAB-5ap-bkc287.jpg

這個命令用來測試主機的存活,這裏我使用ip做爲key.返回true表明存活

wKioL1OGxzzCJqRfAAI-hl8hAFg034.jpg

這個命令用來遠程執行命令,這就是salt特色,能夠在本地管理遠程機器,很方便。


上面命令都是經過id指定target。

經過列表指定target: 

salt -L '192.168.79.49,192.168.79.50' test.ping

經過組指定target,組的定義能夠在master配置

salt -N 'group1' test.ping

經過grains指定target:

salt -G 'shell:/bin/bash' test.ping

能夠經過正則匹配:

salt -E '192.168.79.*' test.ping

相關文章
相關標籤/搜索