用了两天的时间把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匹配
基本架构:
命令执行
这个命令用来测试主机的存活,这里我使用ip做为key.返回true表明存活
这个命令用来远程执行命令,这就是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