一、Grains 组件
1、Grains用法
Grains 是 Salt 组件中非常重要的组件之一,它相当于 Puppet 的 Facter。 主要作用是负 责采集 Minion端的常用属性信息,比如 CPU、内存、磁盘及网络信息等,这个也完全可以 自定义 。 我们可以通过 grains.items 查看某台 Minion 的所有Grains 信息,这里需要大家注意的一点是: Minion端的 Grains信息是 Minion启动的时候自动采集汇报给 Master端的.
- 1)查看所有主机的 Grains项信息
[root@server ~]# salt '*' grains.ls
- 2)获取单个Minion主机的单项Grains数据,如获取操作系统版本
[root@server ~]# salt 'node1' grains.item os
node1:
----------
os:
CentOS
- 3)获取其他相关信息,例如 Shell 版本
[root@server ~]# salt 'node1' grains.item shell
node1:
----------
shell:
/bin/sh
2、自定义grains
在实际工作中,我们需要结合自己的业务需求来自定义一些 Grains
- 1)使用配置文件 自行定义。
利用配置文件来进行自定义,采用yaml格式
#编辑配置文件
[root@node1 ~]# vim /etc/salt/minion
12 default_include: minion.d/*.conf //去掉#号
#创建用来自定义grains的配置文件
[root@node1 ~]# vim /etc/salt/minion.d/grains.conf
grains:
roles:
- webserver
- memcache
deployment: datacenter4
cabinet: 13
cab_u: 14-15
#刷新Grains内容,可以重启Minion也可以master执行刷新命令
[root@node1 ~]# systemctl restart salt-minion.service
或
[root@server ~]# salt '*' saltutil.sync_grains
#查看我们自己定义的键值
[root@server ~]# salt 'node1' grains.item roles
node1:
----------
roles:
- webserver
- memcache
[root@server ~]# salt 'node1' grains.item deployment
node1:
----------
deployment:
datacenter4
[root@server ~]# salt 'node1' grains.item cabinet
node1:
----------
cabinet:
13
二、Pillar组件
1、pillar简介
pillar也是 Salt最重要的组件之一 ,其作用是定义 Master端与 Minion端相关的所有 数据,相当于是数据管理中心 。 pillar 的安全性很高,因此 其适用于一 些比较敏感的数据 , 这也是 pillar有别于 Grains的地方。 Salt默认将 Master端配置文件中的所有数据都定义 到 pillar 中,而且对所有的 Minion 端机器开放,我们可以通过修改/etc/salt/master配置中 的 pillar_opts 的值为 True 或 False回来定义开启或禁用这项功能,修改后执行” salt ‘*’ pillar.data”, 并观察效果,记得要重启一下Master的Salt服务,这里还是在Master机器上执行以 下命令,
[root@server salt]# salt '*' pillar.data
node1:
----------
master:
----------
__role:
master
auth_mode:
1
auto_accept:
False
cache_sreqs:
True
cachedir:
/var/cache/salt/master
cli_summary:
False
client_acl:
----------
client_acl_blacklist:
----------
cluster_masters:
cluster_mode:
paranoid
con_cache:
False
conf_file:
/etc/salt/master
config_dir:
/etc/salt
cython_enable:
False
daemon:
False
default_include:
master.d/*.conf
enable_gpu_grains:
False
enforce_mine_cache:
False
enumerate_proxy_minions:
False
environment:
None
event_return:
event_return_blacklist:
event_return_queue:
0
event_return_whitelist:
ext_job_cache:
ext_pillar:
extension_modules:
/var/cache/salt/extmods
external_auth:
----------
failhard:
False
file_buffer_size:
1048576
file_client:
local
file_ignore_glob:
None
file_ignore_regex:
None
file_recv:
False
file_recv_max_size:
100
file_roots:
----------
base:
- /srv/salt
fileserver_backend:
- roots
fileserver_followsymlinks:
True
fileserver_ignoresymlinks:
False
fileserver_limit_traversal:
False
gather_job_timeout:
10
gitfs_base:
master
gitfs_env_blacklist:
gitfs_env_whitelist:
gitfs_insecure_auth:
False
gitfs_mountpoint:
gitfs_passphrase:
gitfs_password:
gitfs_privkey:
gitfs_pubkey:
gitfs_remotes:
gitfs_root:
gitfs_user:
hash_type:
md5
hgfs_base:
default
hgfs_branch_method:
branches
hgfs_env_blacklist:
hgfs_env_whitelist:
hgfs_mountpoint:
hgfs_remotes:
hgfs_root:
id:
node1
interface:
0.0.0.0
ioflo_console_logdir:
ioflo_period:
0.01
ioflo_realtime:
True
ioflo_verbose:
0
ipv6:
False
jinja_lstrip_blocks:
False
jinja_trim_blocks:
False
job_cache:
True
keep_jobs:
24
key_logfile:
/var/log/salt/key
keysize:
2048
log_datefmt:
%H:%M:%S
log_datefmt_logfile:
%Y-%m-%d %H:%M:%S
log_file:
/var/log/salt/master
log_fmt_console:
[%(levelname)-8s] %(message)s
log_fmt_logfile:
%(asctime)s,%(msecs)03.0f [%(name)-17s][%(levelname)-8s][%(process)d] %(message)s
log_granular_levels:
----------