架构师成长之路5.7-Saltstack数据系统

时间:2021-09-08 09:51:10

点击架构师成长之路

架构师成长之路5.7-Saltstack数据系统

1. Saltstack的两种数据系统

  • Grains
  • Pollars

2. Saltstack数据系统---Grains

  • Grains是SaltStack minions启动时收集的有关底层管理系统的静态信息。包括操作系统版本、域名、IP地址、内存、内核、CPU、操作系统类型以及许多其他系统属性。Minion 收集的信息,可以作为Master端匹配目标。
  • 如果需要自定义grains,需要添加到Salt Minion的/etc/salt/grains文件中(配置文件中定义的默认路径),也可以直接写在配置文件/etc/salt/minion中。

应用场景:

  • 用于信息查询,grains保存收集到的客户端的详细信息
  • 在state中使用 用于配置管理模块
  • 在target中使用,用来匹配minion,例如匹配操作系统使用-G的选项

1)资产管理,信息查询

salt '*' grains.ls  #列出所有可用的grains状态模块
salt '*' grains.items #打印所有状态信息
salt '*' grains.item fqdn_ip4 #列出每台minion的本地IP地址
salt '*' grains.item os #列出每台minion的操作系统

架构师成长之路5.7-Saltstack数据系统

Saltstack01:
----------
SSDs:
biosreleasedate:
07/02/2015
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
- epb
- fsgsbase
- tsc_adjust
- bmi1
- avx2
- smep
- bmi2
- invpcid
- xsaveopt
- dtherm
- arat
- pln
- pts
cpu_model:
Intel(R) Core(TM) i3-4160 CPU @ 3.60GHz
cpuarch:
x86_64
disks:
- sda
- sr0
dns:
----------
domain:
ip4_nameservers:
- 172.18.50.25
- 172.18.50.20
ip6_nameservers:
nameservers:
- 172.18.50.25
- 172.18.50.20
options:
search:
-
sortlist:
domain:
fqdn:
Saltstack01
fqdn_ip4:
- 172.18.20.226
- 192.168.122.1
- 172.18.20.42
fqdn_ip6:
- fe80::30fd:662a:f719:3852
fqdns:
gid:
0
gpus:
|_
----------
model:
SVGA II Adapter
vendor:
vmware
groupname:
root
host:
Saltstack01
hwaddr_interfaces:
----------
ens33:
00:0c:29:0c:45:c8
lo:
00:00:00:00:00:00
virbr0:
52:54:00:08:6d:90
virbr0-nic:
52:54:00:08:6d:90
id:
Saltstack01
init:
systemd
ip4_gw:
172.18.20.1
ip4_interfaces:
----------
ens33:
- 172.18.20.42
- 172.18.20.226
lo:
- 127.0.0.1
virbr0:
- 192.168.122.1
virbr0-nic:
ip6_gw:
False
ip6_interfaces:
----------
ens33:
- fe80::30fd:662a:f719:3852
- 172.18.20.226
lo:
- ::1
virbr0:
virbr0-nic:
ip_gw:
True
ip_interfaces:
----------
ens33:
- 172.18.20.42
- fe80::30fd:662a:f719:3852
- 172.18.20.226
lo:
- 127.0.0.1
- ::1
virbr0:
- 192.168.122.1
virbr0-nic:
ipv4:
- 127.0.0.1
- 172.18.20.42
- 172.18.20.226
- 192.168.122.1
ipv6:
- ::1
- fe80::30fd:662a:f719:3852
kernel:
Linux
kernelrelease:
3.10.0-862.el7.x86_64
kernelversion:
#1 SMP Fri Apr 20 16:44:24 UTC 2018
locale_info:
----------
defaultencoding:
UTF-8
defaultlanguage:
en_US
detectedencoding:
UTF-8
timezone:
PST
localhost:
Saltstack01
lsb_distrib_codename:
CentOS Linux 7 (Core)
lsb_distrib_id:
CentOS Linux
machine_id:
96e87d6c29564227b42c4fae2f5577fa
manufacturer:
VMware, Inc.
master:
172.18.20.226
mdadm:
mem_total:
974
nodename:
Saltstack01
num_cpus:
1
num_gpus:
1
os:
CentOS
os_family:
RedHat
osarch:
x86_64
oscodename:
CentOS Linux 7 (Core)
osfinger:
CentOS Linux-7
osfullname:
CentOS Linux
osmajorrelease:
7
osrelease:
7.5.1804
osrelease_info:
- 7
- 5
- 1804
path:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
pid:
5662
productname:
VMware Virtual Platform
ps:
ps -efHww
pythonexecutable:
/usr/bin/python
pythonpath:
- /usr/bin
- /usr/lib64/python27.zip
- /usr/lib64/python2.7
- /usr/lib64/python2.7/plat-linux2
- /usr/lib64/python2.7/lib-tk
- /usr/lib64/python2.7/lib-old
- /usr/lib64/python2.7/lib-dynload
- /usr/lib64/python2.7/site-packages
- /usr/lib64/python2.7/site-packages/gtk-2.0
- /usr/lib/python2.7/site-packages
pythonversion:
- 2
- 7
- 5
- final
- 0
saltpath:
/usr/lib/python2.7/site-packages/salt
saltversion:
2019.2.2
saltversioninfo:
- 2019
- 2
- 2
- 0
selinux:
----------
enabled:
True
enforced:
Permissive
serialnumber:
VMware-56 4d 25 6d 08 a4 97 06-21 73 df ca ed 0c 45 c8
server_id:
381460858
shell:
/bin/sh
swap_total:
2047
systemd:
----------
features:
+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN
version:
219
uid:
0
username:
root
uuid:
6d254d56-a408-0697-2173-dfcaed0c45c8
virtual:
VMware
zfs_feature_flags:
False
zfs_support:
False
zmqversion:
4.1.4

架构师成长之路5.7-Saltstack数据系统

2)远程执行中用于匹配目标

架构师成长之路5.7-Saltstack数据系统

3)在top file里面使用匹配

架构师成长之路5.7-Saltstack数据系统

在所有系统是centos的操作系统上面执行web.apache。

架构师成长之路5.7-Saltstack数据系统

架构师成长之路5.7-Saltstack数据系统

4)配合模板进行判断 (一般在pollars中使用)

自定义Grains:

第一种方法:在/etc/salt/minion文件中定义(不推荐)

架构师成长之路5.7-Saltstack数据系统

如上格式修改配置:

grains:
roles:
- webserver
- memcache
ipaddr:
- 192.168.1.32  

重启服务:

systemctl restart salt-minion

测试:

salt -G 'ipaddr:192.168.1.32' test.ping

第二种方法:重新定义一个,在minion机器上面创建 /etc/salt/grains  

架构师成长之路5.7-Saltstack数据系统

架构师成长之路5.7-Saltstack数据系统

有一个办法不用重启服务就可以使用grains,采用saltutil.sync_grains 重新获取grains。

架构师成长之路5.7-Saltstack数据系统

3. Saltstack数据系统---Pollar

  • Pillar是动态的,Pillar存储在master上,提供给minion(Pillar在master上面配置)。
  • Pillar主要记录一些加密信息,可以确保这些敏感数据不被其他minion看到。比如:软件版本号、用户名密码等。存储格式都是YAML格式。

默认pillars 是没有的,但是系统默认是存在pillars,只是没有开启而已。

架构师成长之路5.7-Saltstack数据系统

开启系统默认pillars。 将/etc/salt/master中pillar_opts:False 改成vpillar_opts:True。

架构师成长之路5.7-Saltstack数据系统

 1)在Master端定义Pillar

vim /etc/salt/master

架构师成长之路5.7-Saltstack数据系统

pillar_roots:
base:
- /srv/pillar/base
prod:
- /srv/pillar/prod

架构师成长之路5.7-Saltstack数据系统

架构师成长之路5.7-Saltstack数据系统

mkdir -p /srv/pillar/{base,prod}   #创建目录

架构师成长之路5.7-Saltstack数据系统

systemctl restart salt-master  # 重启服务

2345789-架构师成长之路5.7-Saltstack数据系统

{% if grains['os'] == 'CentOS' %}
apache: httpd
{% elif grains['os']} == 'Debian' %}
apache: apache2
{% endif %}

架构师成长之路5.7-Saltstack数据系统

2)编写TopFile指定Minion端可以使用

vim /srv/pillar/base/top.sls

架构师成长之路5.7-Saltstack数据系统

  

  

  

  

架构师成长之路5.7-Saltstack数据系统的更多相关文章

  1. 架构师成长之路3.1-Cobber原理及部署

    点击返回架构师成长之路 架构师成长之路3.1-Cobber原理及部署 Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理 ...

  2. 架构师成长之路5.2-Saltstack远程执行

    点击架构师成长之路 架构师成长之路5.2-Saltstack远程执行 配置管理工具: Pupper:1. 采用ruby编程语言:2. 安装环境相对较复杂:3.不支持远程执行,需要FUNC工具配置才可以 ...

  3. 架构师成长之路5.6-Saltstack配置管理(jinja模板)

    点击架构师成长之路 架构师成长之路5.6-Saltstack配置管理(jinja模板) 配置管理工具: Pupper:1. 采用ruby编程语言:2. 安装环境相对较复杂:3.不支持远程执行,需要FU ...

  4. 架构师成长之路5.5-Saltstack配置管理(状态间关系)

    点击架构师成长之路 架构师成长之路5.5-Saltstack配置管理(状态间关系) 配置管理工具: Pupper:1. 采用ruby编程语言:2. 安装环境相对较复杂:3.不支持远程执行,需要FUNC ...

  5. 架构师成长之路5.4-Saltstack配置管理(LAMP架构案例)

    点击架构师成长之路 架构师成长之路5.4-Saltstack配置管理(LAMP架构案例) 配置管理工具: Pupper:1. 采用ruby编程语言:2. 安装环境相对较复杂:3.不支持远程执行,需要F ...

  6. 架构师成长之路5.3-Saltstack配置管理(State状态模块)

    点击架构师成长之路 架构师成长之路5.3-Saltstack配置管理(State状态模块) 配置管理工具: Pupper:1. 采用ruby编程语言:2. 安装环境相对较复杂:3.不支持远程执行,需要 ...

  7. 架构师成长之路5.1-Saltstack安装及入门

    点击架构师成长之路 架构师成长之路5.1-Saltstack安装及入门 (安装.配置.启动) 配置管理工具: Pupper:1. 采用ruby编程语言:2. 安装环境相对较复杂:3.不支持远程执行,需 ...

  8. 架构师成长之路7.1 CDN理论

    点击返回架构师成长之路 架构师成长之路7.1 CDN理论 CDN,Content Distribute Network,内容分发网络:CDN解决的是如何将数据快速可靠从源站传递到用户的问题.用户获取数 ...

  9. 架构师成长之路6.6 DNS服务器搭建(构建企业级DNS)

    点击返回架构师成长之路 架构师成长之路6.6 DNS服务器搭建(构建企业级DNS) 采用LVS-DR模式负载均衡,多IDC,多套DNS集群,通过master-slave技术保证dns配置的一致性. 1 ...

随机推荐

  1. 开源 iOS 项目分类索引大全 - 待整理

    开源 iOS 项目分类索引大全 GitHub 上大概600个开源 iOS 项目的分类和介绍,对于你挑选和使用开源项目应该有帮助 系统基础库 Category/Util sstoolkit 一套Cate ...

  2. ubuntu 14.4 中文语言包安装问题

    1.安装前,请选择更新源,在系统设定 system setting 里,选择software and updates 里,选择中国的源,用于快速更新语言包 2.在language support里选择 ...

  3. 新学C#的List<T>总结

    所属命名空间:using System.Collections.Generic; List<T>类是 ArrayList 类的泛型等效类. 该类使用大小可按需动态增加的数组实现 IList ...

  4. Apple Watch PSD 源文件【免费素材下载】

    Apple Watch 是苹果公司于2014年9月发布的一款智能手表.分为运动款.普通款和定制款三种,采用蓝宝石屏幕,有银色,金色,红色,绿色和白色等多种颜色可以选择.这里分享的是 Apple Wat ...

  5. mysql行转列、列转行示例

    最近在开发过程中遇到问题,需要将数据库中一张表信息进行行转列操作,再将每列(即每个字段)作为与其他表进行联表查询的字段进行显示. 借此机会,在网上查阅了相关方法,现总结出一种比较简单易懂的方法备用. ...

  6. php YAF

    Yaf 的特点: 用C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销. 所有的框架类, 不需要编译, 在PHP启动的时候加载, 并常驻内存. 更短的内存周转周期, 提高内存利用 ...

  7. 5&period; Leetcode 448&period; Find All Numbers Disappeared in an Array

    Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot ...

  8. eclipse 项目引入第三方jar包 3种方法

    我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间.下面配图说明3种Eclipse引入jar包的方式. 1.最常用的普通操作 ...

  9. Mysql主从原理

    MySQL的Replication(英文为复制)是一个多MySQL数据库做主从同步的方案,特点是异步复制,广泛用在各种对mysql有更高性能.更高可靠性要求的场合.与之对应的是另一个同步技术是MySQ ...

  10. JSTL 标准标签库 &lpar;JavaServer Pages Standard Tag library&comma; JSTL&rpar;

    JSP标准标签库(JavaServer Pages Standard Tag Library,JSTL)是一个定制标签库的集合,用来解决 像遍历Map或集合.条件测试.XML处理,甚至数据 库访问和数 ...