1. 主机规划
服务器名称 | 操作系统版本 | 内网IP | 外网IP(模拟) | Hostname | 部署模块 |
---|---|---|---|---|---|
salt100 | CentOS7.5 | 172.16.1.100 | 10.0.0.100 | salt100 | salt-master、salt-minion |
salt01 | CentOS7.5 | 172.16.1.11 | 10.0.0.11 | salt01 | salt-minion |
salt02 | CentOS7.5 | 172.16.1.12 | 10.0.0.12 | salt02 | salt-minion |
salt03 | CentOS7.5 | 172.16.1.13 | 10.0.0.13 | salt03 | salt-minion |
Grains文档
https://docs.saltstack.com/en/latest/topics/grains/index.html
注意事项
修改了master或者minion的配置文件,那么必须重启对应的服务。
2. Grains基本信息
Saltstack 数据系统
Grains (谷粒)
Pillar (柱子)
Grains:静态数据 当Minion启动的时候收集的Minion本地的相关信息
如:操作系统版本,内核版本,CPU,内存,硬盘,设备型号,序列号
1、信息查询 【资产管理】★★★★★
2、用于目标选择 salt -G 'os:CentOS' test.ping ★★★★★
3、配置管理中使用
刷新grains 【这样修改grains信息不用重启salt-minion 也能刷新】
不然需要重启salt-minion
salt '*' saltutil.sync_grains
开发一个Grains:
Python:写一个Python脚本,返回一个字典就可以了。
可以通过
salt 'salt01' saltutil.sync_grains 【推荐】
或salt 'salt01' saltutil.sync_all 【范围太广,不推荐使用】
或salt 'salt01' state.highstate 【执行高级状态时同步,不建议使用】
或salt 'salt01' saltutil.refresh_modules 【只刷新客户端,服务端向客户端分发的不刷新,比如修改了grains的py脚本时,不会推送到minion端 不建议使用】
或salt 'salt01' saltutil.refresh_grains 【只刷新客户端,服务端向客户端分发的不刷新,比如修改了grains的py脚本时,不会推送到minion端 不建议使用】
将配置同步到minion端
如果做了更改也可以使用
salt 'salt01' sys.reload_modules
3. Grains优先级信息
经验证优先级如下:
1、salt系统自带信息 【优先级最低】
2、自编写Python脚本 备注:在指定目录下存放py脚本
3、/etc/salt/grains 备注:该文件不存在,需要自己创建
4、/etc/salt/minion 【优先级最高】
推荐使用 自编写py脚本定义,这样自定义的grains只需要在master端维护即可,减少后期维护成本。
下文内容就是根据优先级写的。
4. Salt自带Grains 信息
4.1. grains条目项信息
[root@salt100 salt]# salt 'salt01' grains.ls # 查看salt01机器有哪些grains条目项信息
………………
4.2. grains全部信息
[root@salt100 salt]# salt 'salt01' grains.items # 查看salt01机器有哪些grains信息
salt01:
----------
SSDs:
biosreleasedate:
05/19/2017
biosversion:
6.00
cpu_flags:
- fpu
- vme
- de
- pse
- tsc
- msr
- pae
- mce
- cx8
- apic
- sep
- mtrr
- pge
- mca
- cmov
- pat
- pse36
- clflush
- mmx
- fxsr
- s