博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mine 数据
阅读量:4318 次
发布时间:2019-06-06

本文共 2579 字,大约阅读时间需要 8 分钟。

THE SALT MINE

Salt Mine被用于在minion端收集任意数据,并被存放在master并扩散到其他minion,这些数据可以通过salt.modules.mine模块从minion端获取。


MINE VS GRAINS

mine与grains的比较

mine数据要比grains更加的灵活实时性更高,grains多是静态数据,而且刷新也是非常有限的,当minion需要从其他minion中获取信息的时候,利用master端定时收集到的mine数据进行共享,取代minion节点之间的对等通信,减少消耗。

在minion端有一个定时任务在/etc/salt/minion.d/_schedule.conf文件中,里面会定时运行mine.update,将mine数据反馈到master端。


MINE FUNCTIONS

在minion端配置mine函数,可以在主配置文件中也可以在pillar中

示例:

1 mine_functions:2   test.ping: []            #参数必须设置,即使为空3   network.ip_addrs:4     interface: eth05     cidr: '10.0.0.0/8'
View Code

查看master收到的minion声明的mine信息

  salt 'minion-id' mine.get '*' network.ip_addrs
当该mine信息被扩散到其他minion机器的环境中后需要删除的话使用如下方法
  salt '*' mine.delete '*' network.ip_addrs


 

 MINE FUNCTIONS ALIASES

函数别名

示例:

1 mine_functions:2   network.ip_addrs: [eth0]3   networkplus.internal_ip_addrs: []4   internal_ip_addrs:5     mine_function: network.ip_addrs6     cidr: 192.168.0.0/167   ip_list:8     - mine_function: grains.get9     - ip_interfaces
View Code

支持多函数和多参数


MINE INTERVAL

执行mine函数执行的间隔

配置在minion.d/mine.conf文件中

  mine_interval: 60


MINE IN SALT-SSH

从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.2483   user: root4   mine_functions:5     cmd.run: ['echo "hello!"']6     network.ip_addrs:7       interface: eth0
View Code

MINIONS TARGETING WITH MINE

利用收集到的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
View Code

(2)定义pillar的sls文件,里面添加mine fuction

1 /srv/pillar/web.sls:2 3 mine_functions:4   network.ip_addrs: [eth0]
View Code

(3)开启minion端定时执行mine函数

1  /etc/salt/minion.d/mine.conf:2  mine_interval: 5
View Code

 (4)编写任务sls文件

1 /srv/salt/haproxy.sls:2 haproxy_config:3   file.managed:4     - name: /etc/haproxy/config5     - source: salt://haproxy_config6     - template: jinja
View Code

     配置文件中内容

     
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 check6 {% endfor %}
View Code

在配置文件中使用mine.get获取到复合条件的minion主机的信息,利用模板渲染到配置文件中

总结:

  使用mine函数的功能可以帮我们获取到指定的其他minion上的一些信息,譬如grains或pillar的数据信息以及一些全局定义的信息,这些信息是很新鲜的以指定的间隔刷新,使用

        起来会感觉比grains和pillar更加方便,但也是很消耗机器资源,提高了系统的负载压力。

 

转载于:https://www.cnblogs.com/solitarywares/p/7467282.html

你可能感兴趣的文章
刚接触Vuex
查看>>
四种加载React数据的技术对比(Meteor 转)
查看>>
Airthmetic_Approching
查看>>
操作文本文件
查看>>
公司项目的几个问题
查看>>
解决win7下打开Excel2007,报“向程序发送命令时出现问题”的错误
查看>>
Velocity快速入门教程
查看>>
关于集合常见的问题
查看>>
车牌正则表达式
查看>>
使用类的成员函数来实现回调函数
查看>>
Win form碎知识点
查看>>
避免使用不必要的浮动
查看>>
cocos2dx 编辑框 CCEditBox
查看>>
第一节:ASP.NET开发环境配置
查看>>
PHP全栈学习笔记7
查看>>
表单脚本基础知识
查看>>
开源分享 Unity3d客户端与C#分布式服务端游戏框架
查看>>
浏览器默认缓存时间-(为什么浏览器时而缓存,时而不缓存)
查看>>
2013年最佳的16个 Photoshop 设计教程推荐
查看>>
15个优秀的 Material Design(材料设计)案例
查看>>