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 ...
随机推荐
- 【NLP】Recurrent Neural Network and Language Models
0. Overview What is language models? A time series prediction problem. It assigns a probility to a s ...
- BZOJ1823[JSOI2010]满汉全席——2-SAT+tarjan缩点
题目描述 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只有极少數博学多闻技艺高超的厨师能够做出满汉全席,而能够烹饪出经过 ...
- OneinStack——PHP多版本共存
前言 我事先安装的是LNMP环境,PHP版本为7.2,但是现在环境需要一个PHP5.6,所以就准备安装个上版本,顺带写个安装教程,写完后我发现了原来有直接安装的命令!所以后面的内容大家可以忽略了!从配 ...
- Vue——服务器上部署vue.js
服务器版本 [root@izuf63g0jydq42k49eo7zcz ~]# uname -a Linux izuf63g0jydq42k49eo7zcz -.el7.x86_64 # SMP Tu ...
- P1028 数的计算
P1028 题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理: 不作任何处理; 在它的左边加上一个自然数,但该 ...
- 安装 linux-dash
先看看软件的效果图,再介绍安装方法. 通过上图可以看到.软件可以实时监控CPU.内存.网络流量等相关信息,甚至可以监控到硬件信息安装方法:yum -y install httpd php zip un ...
- HihoCoder 1511: 树的方差(prufer序)
题意 对于一棵 \(n\) 个点的带标号无根树,设 \(d[i]\) 为点 \(i\) 的度数,定义一棵树的方差为数组 \(d[1..n]\) 的方差. 给定 \(n\) ,求所有带标号的 \(n\) ...
- python中lambda的使用
为什么我们需要lambda? 既然有了def可以用来定义函数,我们为什么还需要lambda来定义.根据我的使用情况我认为lambda的优点在于: 非常适合用来构造只使用一次的函数,可以是匿名函数 有利 ...
- 【CF1097E】Egor and an RPG game(动态规划,贪心)
[CF1097E]Egor and an RPG game(动态规划,贪心) 题面 洛谷 CodeForces 给定一个长度为\(n\)的排列\(a\),定义\(f(n)\)为将一个任意一个长度为\( ...
- 洛谷 P1919 【模板】A*B Problem升级版(FFT快速傅里叶)
题目来源 吐槽下P3803都是紫题... 真心好写,本想一遍过的...但是 我真是太菜了... #include<bits/stdc++.h> using namespace std; ; ...