博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
saltstack自动化运维系列②之saltstack的数据系统
阅读量:5892 次
发布时间:2019-06-19

本文共 2538 字,大约阅读时间需要 8 分钟。

saltstack自动化运维系列②之saltstack的数据系统

grains:搜集minion启动时的系统信息,只有在minion启动时才会搜集,grains更适合做一些静态的属性值的采集,例如设备的角色(role),磁盘个数(disk_num)等诸如此类非常固定的属性,另一个作用可以用来匹配minion

列出所有的grains选项

# salt '*' grains.ls

列出所有grains和内容

# salt 'mini1' grains.items

显示单个grains内容,get方法直接显示值,item方法会把条目名也显示出来

获取单独的变量值fqdn名
# salt 'node2.chinasoft.com*' grains.item fqdn
node2.chinasoft.com:
----------
fqdn:
node2.chinasoft.com
[root@mini1 ~]# salt 'node2*' grains.get fqdn
node2.chinasoft.com:
node2.chinasoft.com

# salt 'node2*' grains.get os

node2.chinasoft.com:
CentOS

# 匹配执行,系统为centos的主机执行命令

[root@mini1 ~]# salt -G os:CentOS cmd.run 'w'

node2.chinasoft.com:
11:49:06 up 4 days, 3:15, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 23Dec16 13days 0.25s 0.25s -bash
root pts/1 192.168.3.84 Thu20 5:51 0.02s 0.02s -bash
mini1:
11:49:07 up 2 days, 6:25, 1 user, load average: 0.00, 0.04, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/2 192.168.3.84 Thu20 1.00s 0.58s 0.52s /usr/bin/python

使用grains匹配minion主机

模拟使用grains匹配minion,-G代表指定grains匹配

vim /etc/salt/minion

打开grain的配置

grains:
roles:
- webserver
- memcache
# /etc/init.d/salt-minion restart
# salt -G 'roles:memcache' cmd.run 'echo hehe'
mini1:
hehe

添加grains,默认会到/etc/salt/grains中读取,手动添加到/etc/salt/grains即可

如添加自定义角色
# cat /etc/salt/grains
web: nginx

# salt -G web:nginx cmd.run 'w'

mini1:
12:25:05 up 2 days, 7:01, 1 user, load average: 0.04, 0.01, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/2 192.168.3.84 Thu20 0.00s 0.64s 0.50s /usr/bin/python
[root@mini1 ~]# salt '*' grains.item roles
mini1:
----------
roles:
- webserver
- memcache
node2.chinasoft.com:
----------
roles:

pillar的使用及配置

要使用pillar,首先要修改master中的配置
更改配置文件打开pillar,默认是关闭的
vim /etc/salt/master

pillar_opts: True

pillar_roots:

base:
- /srv/pillar

mkdir /srv/pillar

查看master自带的pillar条目,实际生产是不打开的,自带的pillar用处不大,所以一般都会设置成false,使用自己定义的pillar

手动定义一个pillar

# cat /srv/pillar/apache.sls{
% if grains['os'] == 'CentOS' %}apache: httpd{
% elif grains['os'] == 'Debian' %}apache: apache2{
% endif %}# cat /srv/pillar/top.sls base:'*':- apache

 

刷新策略

# salt '*' saltutil.refresh_pillar

# salt '*' pillar.items

mini1:
----------
apache:
httpd
node2.chinasoft.com:
----------
apache:
grains与pillar的区别

grains存储的是静态、不常变化的内容;pillar则相反,存储的是动态数据

grains是存储在minion本地,可以使用saltutil.sync_grains刷新;而pillar存储在master本地,可以使用saltutil.refresh_pillar来刷新
minion有权限操作自己的grains值,如增加、删除,可以用来做资产管理等;pillar存储在master中指定数据,只有指定的minion才可以看到,可以用来存储敏感数据,minion无权修改

转载于:https://www.cnblogs.com/reblue520/p/6732844.html

你可能感兴趣的文章
电脑CPU使用率过高怎么办
查看>>
定时任务-quartz的使用,实现可页面化管理
查看>>
Logstash+Elasticsearch+Kibana日志服务器搭建
查看>>
CSS样式初始化
查看>>
js常用方法
查看>>
有关需求文档的撰写:第一篇
查看>>
[WebKit内核] JavaScriptCore深度解析--基础篇(一)字节码生成及语法树的构建详情分析...
查看>>
PHP专业开发IDE——Zend Studio 10.5预览版发布
查看>>
ssh两台机器配置互相信任关系
查看>>
Linux下Nginx编译安装
查看>>
c++ 深浅拷贝(传统写法 现代写法)
查看>>
java之猜数字游戏
查看>>
链接器下——链接器实战
查看>>
java互联网架构师课程资料分享
查看>>
干货分享微服务spring-cloud(2.概览)
查看>>
ThinkPHP源码学习 redirect函数 URL重定向
查看>>
浏览器与服务端协商缓存
查看>>
nginx-tomcat负载均衡redis-session共享,静态资源分离
查看>>
【安全牛学习笔记】tcpdump抓包实战
查看>>
【安全牛学习笔记】DNS信息收集
查看>>