salt的grains工具和pillar工具使用详解

salt的grains工具和pillar工具使用详解什么是 grains 工具 Salt 附带一接口 用于获取有关底层系统的信息 Salt 的 grains 主要存储静态数据 用来收集 minion 端的一些数据 比如 操作系统 域名 IP 地址 内核 操作系统类型 内存或者其他系统属性 Minion 端在启动时会读取 grains 数据 如果有新的 grains 数据需要重启 minion 服务或者在 master 端使用 salt 命令进行刷新一 minion 端的 roles 之前

什么是grains工具

Salt附带一接口,用于获取有关底层系统的信息。Salt的grains主要存储静态数据,用来收集minion端的一些数据,比如:操作系统,域名IP地址,内核,操作系统类型,内存或者其他系统属性。
Minion端在启动时会读取grains数据,如果有新的grains数据需要重启minion服务或者在master端使用salt命令进行刷新

一.grains工具的使用

方法1:
之前用saltstack自动化部署apache服务(server2)和nginx服务(server3)。
内容详见博客地址:
https://blog.csdn.net/chaos_oper/article/details/
1.server2的roles为apache



[root@server2 ~]# cd /etc/salt/ [root@server2 salt]# vim minion 120 grains: 121 roles: 122 - apache [root@server2 salt]# systemctl restart salt-minion 

2.server3的roles为nginx

[root@server3 salt]# vim minion 120 grains: 121 roles: 122 - nginx [root@server3 salt]# systemctl restart salt-minion 

3.在master端查看minion的角色

[root@server1 salt]# salt '*' grains.item roles 

在这里插入图片描述
方法2:

1.在master端/srv/salt目录下创建_grains目录

[root@server1 salt]# mkdir _grains 

2.在_grains目录下创建python模块脚本

[root@server1 salt]# cd _grains/ [root@server1 _grains]# vim my_grains.py #!/usr/bin/env python def my_grains(): grains= { 'foo':'bar','hello':'world'} grains['salt'] = 'stack' return grains 

3.刷新

[root@server1 _grains]# salt '*' saltutil.sync_grains 

在这里插入图片描述
4.在minion端查看推送

[root@server2 salt]# cd /var/cache/salt/minion/files/base/ [root@server2 base]# ls apache _grains top.sls [root@server2 base]# cd _grains/ [root@server2 _grains]# ls my_grains.py [root@server2 _grains]# cat my_grains.py #!/usr/bin/env python def my_grains(): grains= { 'foo':'bar','hello':'world'} grains['salt'] = 'stack' return grains 

5.测试

[root@server1 _grains]# salt '*' grains.item hello 

在这里插入图片描述

[root@server1 _grains]# salt '*' grains.item salt 

在这里插入图片描述

[root@server1 _grains]# salt -G 'roles:apache' test.ping [root@server1 _grains]# salt -G 'roles:nginx' test.ping [root@server1 _grains]# salt -G 'salt:stack' test.ping 

在这里插入图片描述
6.修改top.sls

[root@server1 salt]# vim top.sls base: 'roles:apache': - match: grain - apache.service 'roles:nginx': - match: grain - nginx.service 

二.在Pillar中存储静态数据

  • Pillar是Salt用来分发全局变量到所有minions的一个接口。Pillar data的管理类似于Salt State Tree。
  • 存储敏感数据。不像是state tree, pillar只对匹配类型的minion有效。 这使它为特定的minion存储敏感数据非常有用.

1.声明master pillar

Salt Master服务器维护了一个pillar_roots 设置 ,和在Salt文件服务器上使用的file_roots结构对应。和Salt 文件服务器类似,master配置文件中的 pillar_roots选项也是基于环境映射到目录。Pillar数据被映射到基于top文件匹配到的Minion上,top 文件是和state top文件一样的方式列出的。Salt pillar可以使用和标准的top 文件同样的匹配器类型。

在master端主配置文件将pillar工具打开:

vim /etc/salt/master pillar_roots: base: - /srv/pillar 
{% if grains['fqdn'] == 'server2' %} webserver: httpd state: master {% elif grains['fqdn'] == 'server3' %} webserver: nginx state: backup {% endif %} 

4.在piller目录下,创建top.sls文件

base: '*': - web.vars 

5.刷新:salt ‘*’ saltutil.refresh_pillar

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233151.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jsp分页功能实现两种方法(html如何实现分页功能)

    本期的jsp入门学习内容:实现JSP分页显示的方法。今天给大家带来实现jsp分页显示的代码,简单的7个步骤就可以实现JSP的分页显示,有需要的朋友可以参考一下,学习些jsp开发的知识。正式开始此次的jsp入门教程的学习:1、MySQL的limit关键字(DAO)2、jQuery load函数(页面JS)MySQL的limit关键词能够完结抽取必定规模(n

    2022年4月17日
    273
  • 激活成功教程版补丁_PyCharm永久激活2021

    激活成功教程版补丁_PyCharm永久激活2021参考https://www.cnblogs.com/pupilheart/p/9734124.html实测可行。——————————————————————————————————2019年01月15日更新最新测试该,博客的激活成功教程文件JetbrainsIdesCrack-3.1-release-sha1.jar,最后激活步骤显示keyisinvalid,测试了几个网站激活码发现均…

    2022年8月27日
    6
  • Ubuntu18.04 安装 gcc「建议收藏」

    Ubuntu18.04 安装 gcc「建议收藏」在Ubuntu18.04下安装gcc的指令:sudoadd-apt-repositoryppa:unbutu-toolchain-r/testsudoapt-getupdatesudoapt-getinstallgcc  这种方法最简单,默认安装最新版本的gcc,安装完成后,输入下面指令查看gcc的版本gcc-v    Refere…

    2022年7月24日
    31
  • oracle数据库904_oracle00933怎么解决

    oracle数据库904_oracle00933怎么解决今天早上在日志中发现exp备份时出错:..exportingtableBJ_AFFILIATES37rowsexportedEXP-00008:ORACLEerror904encounteredORA-00904::invalididentifier..exportingtable…

    2022年9月20日
    2
  • pytest报错_git代码提交流程

    pytest报错_git代码提交流程前言我们每天写完自动化用例后都会提交到git仓库,随着用例的增多,为了保证仓库代码的干净,当有用例新增的时候,我们希望只运行新增的未提交git仓库的用例。pytest-picked插件可以

    2022年7月28日
    8
  • sparksql报错

    sparksql报错Exceptionint main org apache spark sql catalyst errors package TreeNodeExce execute tree Exchangehash subject 6 200 HashAggregat keys subject 6 name 7 functions count 1 output subject 6 name 7 c 12L E

    2025年8月30日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号