自动化运维工具saltstack03 -- 之SaltStack的数据系统
SaltStack数据系统
saltstack有两种数据系统:grains与pillar
1、SaltStack数据系统之grains
grains可以收集minion端的静态数据(即机器启动时收集一次,机器运行时出现修该参数不会收集),可以做匹配(可以匹配操作系统等),可以用在配置管理操作。
1.1、grains的三种用法
- 可以收集基础信息
- 可以在minion客户端匹配Grains进行批量执行
- 在top.sls里面匹配Grains进行批量执行
1.2、列出所有grains的名称
# salt 'saltstack-41' grains.ls #列出所有grains的名称
saltstack-:
- 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
1.3、显示grains名称对应的内容
# salt 'saltstack-41' grains.items #显示Grains的所有的内容
saltstack-:
----------
SSDs:
biosreleasedate:
//
biosversion:
6.00
cpu_flags:
- fpu
- vme
- de
- pse
- tsc
- msr
- pae
- mce
- cx8
- apic
- sep
- mtrr
- pge
- mca
- cmov
- pat
- pse36
- clflush
- dts
- mmx
- fxsr
- sse
- sse2
- ss
- syscall
- nx
- pdpe1gb
- rdtscp
- lm
- constant_tsc
- arch_perfmon
- pebs
- bts
- nopl
- xtopology
- tsc_reliable
- nonstop_tsc
- aperfmperf
- eagerfpu
- pni
- pclmulqdq
- ssse3
- fma
- cx16
- pcid
- sse4_1
- sse4_2
- x2apic
- movbe
- popcnt
- tsc_deadline_timer
- aes
- xsave
- avx
- f16c
- rdrand
- hypervisor
- lahf_lm
- abm
- 3dnowprefetch
- ida
- arat
- epb
- pln
- pts
- dtherm
- fsgsbase
- tsc_adjust
- bmi1
- avx2
- smep
- bmi2
- invpcid
- rdseed
- adx
- smap
- xsaveopt
cpu_model:
Intel(R) Core(TM) i5-5200U CPU @ .20GHz
cpuarch:
x86_64
domain:
fqdn:
saltstack-
fqdn_ip4:
- 172.16.1.41
fqdn_ip6:
- fe80::89d4:576f::41b
- fe80::8dbd:f1ae:d9d3:b966
- fe80::5bae::65d3:7d6b
- fe80::3ac2:51c0:e6ac:
- fe80:::a475:ac57:9b3e
- fe80::5c8:50dd::5eba
gpus:
|_
----------
model:
SVGA II Adapter
vendor:
unknown
host:
saltstack-
hwaddr_interfaces:
----------
eth0:
:0c::ab::4d
eth1:
:0c::ab::
lo:
:::::
id:
saltstack-
init:
systemd
ip4_interfaces:
----------
eth0:
- 10.0.0.41
eth1:
- 172.16.1.41
lo:
- 127.0.0.1
ip6_interfaces:
----------
eth0:
- fe80::5c8:50dd::5eba
- fe80::8dbd:f1ae:d9d3:b966
- fe80:::a475:ac57:9b3e
eth1:
- fe80::89d4:576f::41b
- fe80::5bae::65d3:7d6b
- fe80::3ac2:51c0:e6ac:
lo:
- ::
ip_interfaces:
----------
eth0:
- 10.0.0.41
- fe80::5c8:50dd::5eba
- fe80::8dbd:f1ae:d9d3:b966
- fe80:::a475:ac57:9b3e
eth1:
- 172.16.1.41
- fe80::89d4:576f::41b
- fe80::5bae::65d3:7d6b
- fe80::3ac2:51c0:e6ac:
lo:
- 127.0.0.1
- ::
ipv4:
- 10.0.0.41
- 127.0.0.1
- 172.16.1.41
ipv6:
- ::
- fe80::3ac2:51c0:e6ac:
- fe80:::a475:ac57:9b3e
- fe80::5bae::65d3:7d6b
- fe80::5c8:50dd::5eba
- fe80::89d4:576f::41b
- fe80::8dbd:f1ae:d9d3:b966
kernel:
Linux
kernelrelease:
3.10.-.el7.x86_64
locale_info:
----------
defaultencoding:
UTF-
defaultlanguage:
en_US
detectedencoding:
UTF-
localhost:
saltstack-
lsb_distrib_id:
CentOS Linux
machine_id:
12bba36e67de4c8e94aa369560cfdbfd
manufacturer:
VMware, Inc.
master:
172.16.1.41
mdadm:
mem_total: nodename:
saltstack-
num_cpus: num_gpus: os:
CentOS
os_family:
RedHat
osarch:
x86_64
oscodename:
Core
osfinger:
CentOS Linux-
osfullname:
CentOS Linux
osmajorrelease: osrelease:
7.3.
osrelease_info:
-
-
-
path:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
productname:
VMware Virtual Platform
ps:
ps -efH
pythonexecutable:
/usr/bin/python
pythonpath:
- /usr/bin
- /usr/lib64/python27.zip
- /usr/lib64/python2.
- /usr/lib64/python2./plat-linux2
- /usr/lib64/python2./lib-tk
- /usr/lib64/python2./lib-old
- /usr/lib64/python2./lib-dynload
- /usr/lib64/python2./site-packages
- /usr/lib64/python2./site-packages/gtk-2.0
- /usr/lib/python2./site-packages
pythonversion:
-
-
-
- final
-
saltpath:
/usr/lib/python2./site-packages/salt
saltversion:
2015.5.
saltversioninfo:
-
-
-
-
selinux:
----------
enabled:
False
enforced:
Disabled
serialnumber:
VMware- 4d e3 e6 1a a1 7a-bc 4c d5 ac ab 4d
server_id: shell:
/bin/sh
systemd:
----------
features:
+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN
version: virtual:
VMware
zmqversion:
3.2.
1.3.1、显示指定grains名称对应的值
# salt 'saltstack-41' grains.item fqdn #查看Grains信息里面的单条
saltstack-:
----------
fqdn:
saltstack-
1.4、通过grains获取eth0网卡的地址
# salt 'salt*' grains.get ip_interfaces:eth0 #显示所有eth0的网卡信息
saltstack-:
- 10.0.0.41 #ipv4的ip地址
- fe80:::a475:ac57:9b3e #ipv6的ip地址
1.5、通过grains获取服务器系统名称
# salt 'saltstack-41' grains.get os
saltstack-:
CentOS
1.6、通过grains匹配系统,在指定类型的系统上执行一条命令
# salt -G os:CentOS cmd.run 'w'
saltstack-:
:: up :, user, load average: 0.05, 0.04, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/ 10.0.0.1 : .00s .90s .33s /usr/bin/python /usr/bin/salt -G os:CentOS cmd.run w
db02-:
:: up :, user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/ 10.0.0.1 : : .28s .28s -bash
注:-G:指使用Grains进行匹配,匹配到centos系统则执行w命令
同理,如果说以后想在有eth0网卡的服务器上批量执行一个命令就可以这样匹配,在vmware虚拟机上批量执行一个语句等等。
1.7、在minion端指定grains名称,然后在master端匹配到指定的grains名称就执行想要执行的指令
、minion端指定grains名称
# vim /etc/salt/minion
# sed -n '88,91p' /etc/salt/minion #去掉注释就好,不要添加其他的空格
grains:
roles:
- webserver
- memcache 、重启minion端
# systemctl restart salt-minion 、master端匹配grains名称,然后执行指定
# salt -G 'roles:memcache' cmd.run 'echo "hehe"'
saltstack-:
hehe
注:在所有minion里面配置了roles:memcache的机器上执行echo "hehe"
1.7.1、如果觉得在minion里配置不方便,可以在minion端单独写一个文件指定grains名称
、如果写/etc/salt/grains文件为定义grains名称文件,内容为:
# cat /etc/salt/grains
web: nginx #注意冒号后面有一个空格 、重启minion
# systemctl restart salt-minion 、在master端匹配minion端的grains名称并执行指定命令:
# salt -G 'web:nginx' cmd.run "echo 1111"
saltstack-: 注:即在/etc/salt/grains文件里匹配到web:nginx配置的服务器则批量执行echo
1.8、在top.sls(高级状态)里匹配grains并执行指定的指令
# cat /srv/salt/top.sls
base: #定义base
'web:nginx': #minion端匹配了web:nginx
- match: grain #匹配方式:Grains
- apache #以上两条都匹配了则执行apache的状态
1.8.1、配置后执行高级状态
# salt '*' state.highstate
2、SaltStack数据系统之pillar
Pillar给minion(客户端)指定它想要的数据,(给那个minion指定那个minion才能看得到数据。)Pillar存放在master端,
2.1、查看pillar
# salt '*' pillar.items
db02-:
---------- #没有
saltstack-:
----------
2.2、设置pillar
、master端配置pillar
# sed -n '529,531p' /etc/salt/master #取消一下行的注释
pillar_roots:
base:
- /srv/pillar 、创建Pillar目录
# mkdir /srv/pillar 、设置后重启master
# systemctl restart salt-master 、写pillar状态
# cat /srv/pillar/apache.sls
{% if grains['os'] == 'CentOS' %} #如果是CentOS系统
apache: httpd #就显示httpd
{% elif grains['os'] == 'Debian' %} #如果是Debian系统
apache: apche2 #就显示apche2
{% endif %}
2.3、在top.sls(高级状态)里设置那台minion端可以查看pillar状态
# cat /srv/pillar/top.sls #在top.sls文件里指定那个客户端可以查看pillar状态
base:
'*': #设置所有主机(*表示所有)可以查看apache的状态,也可以指定单个主机
- apache #可以查看的状态
2.3.1、设置后在minion端查看pillar
# salt '*' pillar.items #查看pillar的命令
db02-: #由于是centos系统
----------
apache: #所以查看到的状态是apache
httpd
saltstack-:
----------
apache:
httpd
2.4、用pillar定位主机
-I:匹配pillar
# salt '*' saltutil.refresh_pillar #定位主机前需要先刷新一下,通知设置pillar客户端
db02-:
True
saltstack-:
True
# salt -I 'apache:httpd' test.ping #然后定位存在apache:httpd的主机
db02-:
True #表示成功
saltstack-:
True
grains和pillar的区别

自动化运维工具saltstack03 -- 之SaltStack的数据系统的更多相关文章
- 自动化运维工具saltstack01 -- 之SaltStack介绍、安装与基础使用
SaltStack介绍 官网地址:http://www.saltstack.com 官方文档地址:http://docs.saltstack.com Github:http://Github.com/ ...
- 自动化运维工具saltstack02 -- 之SaltStack的配置管理
SaltStack的配置管理 1.配置管理说明 配置管理,顾名思义及配置与管理, salt-master的配置文件编写格式之YAML语法说明: 数据的结构通过缩进来表示,每一级用两个空格来表示缩进,如 ...
- 自动化运维工具 SaltStack 搭建
原文地址:https://www.ibm.com/developerworks/cn/opensource/os-devops-saltstack-in-cloud/index.html#N10072 ...
- 自动化运维工具SaltStack详细部署
==========================================================================================一.基础介绍==== ...
- 自动化运维工具SaltStack详细部署【转】
==========================================================================================一.基础介绍==== ...
- CheungSSH国产自动化运维工具开源Web界面
CheungSSH web2.0 发布文档 CheungSSH 简介 CheungSSH是一款国人自主研发的Linux运维自动化管理服务器软件,秉着为企业降低运营成本,解放管理员双手和自动化生产的理念 ...
- 自动化运维工具Ansible详细部署 (转载)
自动化运维工具Ansible详细部署 标签:ansible 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog. ...
- 企业级自动化运维工具应用实战-ansible
背景 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出多套环境可以共开发和测试人员做测试,运 ...
- Ansible自动化运维工具-上
[Ansible特点] 1)Ansible与saltstack均是基于Python语言开发的 2)安装使用简单,基于不同插件和模块实现各种软件,平台,版本的管理以及支持虚拟容器多层级的部署 3)不需要 ...
随机推荐
- Elasticsearch + Elasticsearch-head搭建
Elasticsearch搭建: [root@hdoop3 elk]# tar -xvf elasticsearch-6.2.4.tar [root@hdoop3 elk]# cd elasticse ...
- MySQL慢查询日志分析提取【转】
原文:https://www.cnblogs.com/skymyyang/p/7239010.html 一:查询slow log的状态,如示例代码所示,则slow log已经开启. mysql> ...
- rinted端口转发工具
下载包: [root@localhost opt]# wget https://boutell.com/rinetd/http/rinetd.tar.gz 解压编译安装: [root@localhos ...
- PAT——1069. 微博转发抽奖
小明PAT考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔N个人就发出一个红包.请你编写程序帮助他确定中奖名单. 输入格式: 输入第一行给出三个正整数M(<= 1000).N ...
- 【luogu P2827 蚯蚓】 题解
题目链接:https://www.luogu.org/problemnew/show/P2827 35分:暴力sortO(mnlogn). 80分:考虑到每次不好维护不被切的点+q,正难则反.改成维护 ...
- POJ 1703 Find them, Catch them(确定元素归属集合的并查集)
Find them, Catch them Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 52925 Accepted: ...
- oracle中的greatest 函数和 least函数
oracle中的greatest 函数和 least函数 原文地址:https://blog.csdn.net/sinat_32023305/article/details/78778596 g ...
- transform动画的一个3D的正方体盒子
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Iframe 定义内联的子窗口(框架)
1.Iframe 定义内联的子窗口(框架),用于在网页内显示网页 语法: <iframe src="URL"></iframe>URL 指向隔离页面的位置, ...
- 数据结构与算法-图的最短路径Dijkstra
一 无向图单源最短路径,Dijkstra算法 计算源点a到图中其他节点的最短距离,是一种贪心算法.利用局部最优,求解全局最优解. 设立一个visited访问和dist距离数组,在初始化后每一次收集一 ...