标签:cidr user pen network alias https bsp 不能 col
Salt Mine被用于在minion端收集任意数据,并被存放在master并扩散到其他minion,这些数据可以通过salt.modules.mine模块从minion端获取。
mine与grains的比较
mine数据要比grains更加的灵活实时性更高,grains多是静态数据,而且刷新也是非常有限的,当minion需要从其他minion中获取信息的时候,利用master端定时收集到的mine数据进行共享,取代minion节点之间的对等通信,减少消耗。
在minion端有一个定时任务在/etc/salt/minion.d/_schedule.conf文件中,里面会定时运行mine.update,将mine数据反馈到master端。
在minion端配置mine函数,可以在主配置文件中也可以在pillar中
示例:
1 mine_functions: 2 test.ping: [] #参数必须设置,即使为空 3 network.ip_addrs: 4 interface: eth0 5 cidr: ‘10.0.0.0/8‘
查看master收到的minion声明的mine信息
salt ‘minion-id‘ mine.get ‘*‘ network.ip_addrs
当该mine信息被扩散到其他minion机器的环境中后需要删除的话使用如下方法
salt ‘*‘ mine.delete ‘*‘ network.ip_addrs
函数别名
示例:
1 mine_functions: 2 network.ip_addrs: [eth0] 3 networkplus.internal_ip_addrs: [] 4 internal_ip_addrs: 5 mine_function: network.ip_addrs 6 cidr: 192.168.0.0/16 7 ip_list: 8 - mine_function: grains.get 9 - ip_interfaces
支持多函数和多参数
MINE INTERVAL
执行mine函数执行的间隔
配置在minion.d/mine.conf文件中
mine_interval: 60
从2015.5.0版本开始,salt-ssh支持mine.get功能
由于minion不能提供自己的mine函数配置,所以功能参数就只能从一下3个地方获取:
1、Roster data
2、Pillar
3、Master config
salt-ssh里面的mine函数配置示例:
1 test: 2 host: 104.237.131.248 3 user: root 4 mine_functions: 5 cmd.run: [‘echo "hello!"‘] 6 network.ip_addrs: 7 interface: eth0
利用收集到的mine数据获取其他的minion信息,用于部署配置
参考mine模块的使用
链接:https://docs.saltstack.com/en/2016.11/ref/modules/all/salt.modules.mine.html#module-salt.modules.mine
EXAMPLE
配置一个HA服务的配置文件,使用mine.get获取指定角色的minion的IP
(1)定义pillar的top文件
1 /srv/pillar/top.sls: 2 3 base: 4 ‘G@roles:web‘: 5 - web
(2)定义pillar的sls文件,里面添加mine fuction
1 /srv/pillar/web.sls: 2 3 mine_functions: 4 network.ip_addrs: [eth0]
(3)开启minion端定时执行mine函数
1 /etc/salt/minion.d/mine.conf: 2 mine_interval: 5
(4)编写任务sls文件
1 /srv/salt/haproxy.sls: 2 haproxy_config: 3 file.managed: 4 - name: /etc/haproxy/config 5 - source: salt://haproxy_config 6 - template: jinja
配置文件中内容
1 /srv/salt/haproxy_config: 2 <...file contents snipped...> 3 4 {% for server, addrs in salt[‘mine.get‘](‘roles:web‘, ‘network.ip_addrs‘, expr_form=‘grain‘) | dictsort() %} 5 server {{ server }} {{ addrs[0] }}:80 check 6 {% endfor %}
在配置文件中使用mine.get获取到复合条件的minion主机的信息,利用模板渲染到配置文件中
总结:
使用mine函数的功能可以帮我们获取到指定的其他minion上的一些信息,譬如grains或pillar的数据信息以及一些全局定义的信息,这些信息是很新鲜的以指定的间隔刷新,使用
起来会感觉比grains和pillar更加方便,但也是很消耗机器资源,提高了系统的负载压力。
标签:cidr user pen network alias https bsp 不能 col
原文地址:http://www.cnblogs.com/solitarywares/p/7467282.html