自动化运维工具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)不需要 ...
随机推荐
- Myeclipse2014无法启动,启动十分之一自动闪退,闪退
现象: Myeclipse2014 无法启动 闪退 配图: 解决办法: 删掉 {workspace}/.metadata/.plugins/org.eclipse.e4.workbench/work ...
- Oracle 统计信息
Oracle数据库中的统计信息是这样一组数据:它存储在数据字典中,且从多个维度描述了Oracle数据库里对象的详细信息. CBO会利用这些统计信息来计算目标SQL各种可能的,不同的执行路径的成本,从中 ...
- MySQL8.0.12版本的数据库驱动
jdbcDriver=com.mysql.cj.jdbc.DriverjdbcUrl=jdbc:mysql://127.0.0.1:3306/jtsys?useUnicode=true&cha ...
- bfs,队列
bfs bfs=队列 队列的操作 头文件 #include<deque> 声明方法: 1.普通声明 queue<int>q; 2.结构体 struct node { int x ...
- centos 7 配置nginx 的yum源
在/etc/yum.repos.d里创建nginx.repo文件: touch nginx.repo vim nginx.repo 填写如下内容后保存 [nginx] name=nginx repo ...
- 浅谈OSI七层网络模型和TCP/IP四层模型
OSI七层网络模型 OSI(Open System Interconnection)开放系统互连参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系. OSI七层模型 功能 ...
- MongoDB的入门
MongoDB mongodb是非关系型数据库 对于关系型数据库,存储数据的时候需要提前建表建库,随着数据的复杂度越来越高,所建的表的数量也越来越多:但是非关系型却不需要 mongodb的基本的命令的 ...
- jQuery实现导航栏
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- swiper一组图片,点击图片出现中间,看效果
好兄弟先看看效果是这样的么 点击哪个头像,头像移动到中间,然后放大,demo上写了五条数据 废话不多说 直接上代码 1.引入swiper.css, swiper.js 2.HTML(小弟做的是移动端的 ...
- nRF52832 BLE_DFU空中升级OTA(一)安装软件(SDK14.2.0)
准备工作,需要安装好几个软件,详细的过程请参考下面的文章(http://www.cnblogs.com/iini/p/9314246.html)这里说的非常详细,而且也有工具在云盘,对于初学者非常友好 ...