mine是salt定义数据的第三种方式,是在minion配置中定义的,而后数据发送到master存储。若是从minion获取的数据须要在其余minion中使用,就须要使用到mine。
app
在minion.d中定义mine.conf文件,内容以下ide
同步文件spa
salt-cp '*' mine.conf /opt/app/salt/etc/minion.d/rest
重启minionblog
salt '*' cmd.run '/opt/app/salt/admin/salt-minion restart'ip
执行以下命令,结果如图get
salt '*' mine.get '*' network.ip_addrscmd
由于全部数据是共享的,两个minion获取的数据是同样的。
同步
总结it
说了这么多,那究竟在什么状况下该使用哪一种数据定义方式呢?前面的文章也谈了区别,如今在这里总结下。
区别:
grains和mine是从minion端收集的,pillar是从master端收集的。
grains数据是静态的,mine和pillar的数据是动态的。
grains数据是每一个minion的底层系统数据,不共享的;mine数据是自定义的,是共享的;
pillar数据是master的数据,应用于每一个minion。
如今有三个需求:
获取master的广播地址并应用于minion---->采用pillar
获取和master同网段的minion的ip---->采用grains(结合第一个需求)
获取A的信息并在其余minion中使用---->使用mine