saltstack grains
saltstack的grains类似于ansible的setup模块,主要作用为手机客户端的主机基本信息(cpu,内核,os,virtual等),定义在客户端
[root@k8s_master ~]# cat /etc/salt/master |grep -v "^#\|^$"
cachedir: /var/cache/salt/master
auto_accept: True
file_recv: True
file_roots:
base:
- /root
nodegroups:
master1: 'L@k8s_master'
agents: 'L@k8s_node1,k8s_node2'
查看主机的详细信息
salt -N 'master1' grains.items
查看所有键(saltstack自带)
[root@k8s_master ~]# salt -N master1 grains.ls
k8s_master:
- SSDs
- biosreleasedate
- biosversion
- cpu_flags
- cpu_model
- cpuarch
- domain
- fqdn
- fqdn_ip4
- fqdn_ip6
- gpus
- host
- hwaddr_interfaces
- id
- init
- ip4_interfaces
- ip6_interfaces
- ip_interfaces
- ipv4
- ipv6
- kernel
- kernelrelease
- locale_info
- localhost
- lsb_distrib_id
- machine_id
- manufacturer
- master
- mdadm
- mem_total
- nodename
- num_cpus
- num_gpus
- os
- os_family
- osarch
- oscodename
- osfinger
- osfullname
- osmajorrelease
- osrelease
- osrelease_info
- path
- productname
- ps
- pythonexecutable
- pythonpath
- pythonversion
- saltpath
- saltversion
- saltversioninfo
- selinux
- serialnumber
- server_id
- shell
- systemd
- virtual
- zmqversion
用法示例: salt <匹配主机> grains.item <grains.ls>获取的键
[root@k8s_master ~]# salt -N master1 grains.item ipv4
k8s_master:
----------
ipv4:
- 10.1.14.0
- 127.0.0.1
- 172.17.0.1
- 192.168.132.148
自定义grains键及数据
首先,主控端(master端)编写获取数据的脚本,然后同步到客户端(minion),在主控端的base目录(在/etc/salt/master配置文件中指定的目录,默认为/srv/salt目录)下生成_grains目录,执行install -d /srv/salt/_grains开始编写代码(此例子为获取主机系统允许的最大打开文件数)
[root@k8s_master ~]# cat /root/_grains/test_grains.py
#!/usr/bin/env python
#-*-coding:utf-8-*- import os,sys,commands def get_custom_grains():
grains = {}
_open_file=65535
try:
getulimit = commands.getstatusoutput('source /etc/profile;ulimit -n') ##获取客户端文件描述符数量(可通过其他命令获取)
except Exception,e:
print e
#print getulimit,type(getulimit) #此处打印的为一个元组
if getulimit[0] == 0:
_open_file=int(getulimit[1])
grains['max_open_files'] = _open_file #为grains的新键(max_open_files)赋值 为_open_file
return grains #返回grains返回值
同步并检查本地文件
[root@k8s_master ~]# salt 'k8s_master' saltutil.sync_all
[root@k8s_master ~]# ls /var/cache/salt/minion/files/base/_grains/test_grains.py #生成文件
/var/cache/salt/minion/files/base/_grains/test_grains.py
[root@k8s_master ~]# ls /var/cache/salt/minion/extmods/grains/test_grains.py
/var/cache/salt/minion/extmods/grains/test_grains.py
重新加载模块(刷新模块)
[root@k8s_master ~]# salt 'k8s_master' sys.reload_modules #刷新重载模块
k8s_master:
True [root@k8s_master ~]# ls /var/cache/salt/minion/extmods/grains/test_grains.py #增加了pyc文件
test_grains.py test_grains.pyc
主控端查看grains信息
[root@k8s_master ~]# salt 'k8s_master' grains.item max_open_files
k8s_master:
----------
max_open_files:
1024
[root@k8s_master ~]# salt 'k8s_node1' grains.item max_open_files #没有添加的则不能显示
k8s_node1:
----------
max_open_files:
引用:
采用jinja模板
{ % if grains['os'] == 'centos' % } host:{{ grains['host'] }} { % elif grains['os'] == 'RedHat' % } host: {{ grains['fqdn'] }} { % endif % }
注:在模板引擎里使用的时候遵循python列表和字典取值规则,如,获取某个主机某个网卡的ip地址
{{ grains['ip4_interfaces']['ens33'][] }}
saltstack grains的更多相关文章
- Linux centosVMware 自动化运维认识自动化运维、启动salt相关服务、saltstack配置认证、salt-key命令用法、saltstack远程执行命令、saltstack - grains、saltstack – pillar
一.认识自动化运维 传统运维效率低,大多工作人为完成 传统运维工作繁琐,容易出错 传统运维每日重复做相同的事情 传统运维没有标准化流程 传统运维的脚本繁多,不能方便管理 自动化运维就是要解决上面所有问 ...
- Saltstack grains组件
grains是Saltstack最重要的组件之一,grains的作用是收集被控主机的基本信息,这些信息通常都是一些静态的数据,包括CPU.内核.操作系统.虚拟化等,在服务器端可以根据这些信息进行灵活定 ...
- SaltStack Grains 和 Pillar
Grains: (1) grains 是服务器的一系列粒子信息,也就是服务器的一系列物理,软件环境信息(2) grains 是 minion 启动时收集到的一些系统信息,比如操作系统版本.内核版本.C ...
- SaltStack Grains 详解
简介 Grains 是SaltStack 的重要组件之一.主要记录minion的静态信息,比如CPU,内存,磁盘,网络信息等.Grains信息是minion启动时汇报给Master的. 刷新grain ...
- 学习saltstack (四)
一.salt常用命令 salt 该命令执行salt的执行模块,通常在master端运行,也是我们最常用到的命令 salt [options] '<target>' <function ...
- Saltstack数据系统Grains和Pillar(三)
Saltstack数据系统 分为Grains和Pillar 一.Grains 静态数据,当Minion启动的时候收集的MInion本地的相关信息.(包含操作系统版本.内核版本.CPU.内存.硬盘.设备 ...
- Saltstack系列4:Saltstack之Grains组件
grains说明 grains是Saltstack最重要的组件之一,grains的作用是手机被控主机的基本信息,这些信息通常都是一些静态类的数据,包括CPU.内核.操作系统.虚拟化等,在服务器端可以根 ...
- saltstack实战3--配置管理之grains
grains是什么 grains是minion服务启动后,采集的客户端的一些基本信息,硬件信息,软件信息,网络信息,软件版本等.你可以在minion上自定义一些grains信息. 它是静态的信息,mi ...
- saltstack:使用教程之二高级模块用法Grains、Pillar
1.grains用法: 在客户端服务启动的时候收集客户的基础信息,在配置发生变化后也可以通过master重新同步 显示一个客户端的所有项目: [root@node5 ~]# salt "no ...
随机推荐
- python第三方库的四种安装方法
1,直接pip install安装 2,在python-->default setting-->project interprer-->add 3,在这个链接里找到需要的包,下载 h ...
- 进程创建fork()
简单进程创建例子: #include <stdio.h> #include <sys/types.h> #include <sys/wait.h> #include ...
- 读取jar文件的sha1码,请求maven官方的solrsearch接口查询该jar文件所对应的maven坐标信息
版权声明:本文为博主原创文章,未经博主允许不得转载. import com.google.gson.JsonObject; import com.google.gson.JsonParser; imp ...
- 【NOI2003——搜索+二分图匹配优化】
A 文本编辑器 无旋treap真好看 B 木棒游戏 暴力神仙题 C 数据生成器 树的直径两端点为Y, Z D 智破连环阵 搜索+二分图匹配优化 第一次写欸 列一下 void dfs (int y,in ...
- luogu3242 接水果 (整体二分+树状数组)
考虑整体二分,问题就变成了每个(水果)路径有多少个满足条件(权值)的(盘子)子路径 考虑一个盘子(a,b)表示两端点(不妨设dfn[a]<dfn[b]),那么他能接到的水果(u,v)一定满足(不 ...
- Java复习总结——详细理解Java反射机制
反射是什么 反射的作用用一句简单的话来讲就是可以对代码进行操作的代码,这个特性经常在被用于创建JavaBean中,通常造轮子的人会用到这个特性,而应用程序员用到这个特性的场景则较少. 能够分析类能力的 ...
- iptables防火墙详解(二)
-- 基于状态的iptables 如果按照tcp/ip来划分连接状态,有11种之多(课后可以自己去读一下相关知识) 但iptables里只有4种状态:ESTABLISHED.NEW.RELATED及I ...
- 20165223 《JAVA程序设计》第六周学习总结
教材学习内容总结 第八章-常用实用类-要点 基础:String类 重点:StringTokenizer类,Scanner类 难点:Class类与Console类,Pattern类与Match类 其他特 ...
- 20165223 week1测试查漏补缺
week1查漏补缺 经过第一周的学习后,在蓝墨云班课上做了一套31道题的小测试,下面是对测试题中遇到的错误的分析和总结: 一.背记题 不属于Java后继技术的是? Ptyhon Java后继技术有? ...
- CodeForces - 589J(DFS)
题目链接:http://codeforces.com/problemset/problem/589/J 题目大意:一个机器人打扫一个密闭的房间,房间由一个矩形构成,'*'表示家具,'.'表示该位置为空 ...