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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 线性回归最小二乘法公式推导「建议收藏」

    线性回归最小二乘法公式推导「建议收藏」#1.符号表示首先我们将训练样本的**特征矩阵X**进行表示,其中N为样本个数,p为特征个数,每一行表示为每个样本,每一列表示特征的每个维度:

    2022年5月13日
    68
  • 模型运营是做什么的(概念模型数据库)

    编者注:文中超链接如果不能访问可以点击“阅读原文”访问本文原页面;读者可以查看将于2019年9月23至26日在纽约举办的Strata数据大会上的议题——模型开发、管理和运…

    2022年4月17日
    63
  • pytest parametrize fixture_参数化方法

    pytest parametrize fixture_参数化方法前言当某个接口中的一个字段,里面规定的范围为1-5,你5个数字都要单独写一条测试用例,就太麻烦了,这个时候可以使用pytest.mark.parametrize装饰器可以实现测试用例参数化。官方示

    2022年7月31日
    4
  • DataGrip2022.01.12激活码【中文破解版】[通俗易懂]

    (DataGrip2022.01.12激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html2KLKA7BQFO-eyJsaWNlbnNlSW…

    2022年4月1日
    159
  • 三大(Chrome、Firefox、IE)webdriver下载地址

    三大(Chrome、Firefox、IE)webdriver下载地址目录三大浏览器webDriver下载地址三大浏览器webDriver下载地址webDriver下载地址。谷歌chromedriver下载地址:https://code.google.com/p/chromedriver/downloads/list火狐geckodriver下载地址:https://github.com/mozilla/geckodriver/releases/IEdriver下载地址:http://www.nuget.org/pa

    2022年9月2日
    28
  • C++中,结构体vector使用sort排序[通俗易懂]

    C++中,结构体vector使用sort排序[通俗易懂]一、遇到问题:今天写代码的是遇到想对vector进行排序的问题,隐约记得std::sort函数是可以对vector进行排序的,但是这次需要排序的vector中压的是自己定义的结构体(元素大于等于2),想以其中某一个元素进行正序或逆序排序,则不能直接使用sort函数。二、解决方案:在网上找资料的过程中,看到http://blog.csdn.net/aguisy/article/d

    2022年10月20日
    2

发表回复

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

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