saltstack自动化运维管理——saltstack之grains

一、grains简介

  • Grains是SaltStack的一个组件,存放在SaltStack的minion端。
  • 当salt-minion启动时会把收集到的数据静态存放在Grains当中,只有当minion重启时才会进行数据的更新。
  • 由于grains是静态数据,因此不推荐经常去修改它。
  • 应用场景:
    • 信息查询,可用作CMDB。
    • 在target中使用,匹配minion。
    • 在state系统中使用,配置管理模块。

二、信息查询

用于查询minion端的IP、FQDN等信息

1、默认可用的grains:

salt '*' grains.ls

在这里插入图片描述

2、查看每一项的值:

salt '*' grains.items

在这里插入图片描述

3、取单项的值:

salt server3 grains.item ipv4
salt server3 grains.item fqdn

在这里插入图片描述

三、自定义grains项

1、server2

  • 在server2的/etc/salt/minion中定义:
vim /etc/salt/minion
##写入
grains:
  roles: apache

在这里插入图片描述

  • 重启salt-minion,否则数据不会更新:
systemctl  restart salt-minion
  • 查询自定义项:
    在这里插入图片描述

2、server3

  • 在server3的/etc/salt/minion中定义:
vim /etc/salt/minion
##写入
grains:
  roles: nginx

在这里插入图片描述

  • 重启salt-minion,否则数据不会更新:
systemctl  restart salt-minion
  • 查询自定义项:
    在这里插入图片描述

四、编写grains模块

1、编写模块

在salt-master端创建_grains目录:

mkdir /srv/salt/_grains
vim /srv/salt/_grains/my_grain.py
##写入
def my_grain():
    grains = {}
    grains['linux'] = 'redhat'
    grains['hello'] = 'world'
    return grains
salt '*' saltutil.sync_grains	#同步grains到minion端

在这里插入图片描述

2、grains匹配运用

  • 在target中匹配minion:
salt -G roles:apache cmd.run hostname

在这里插入图片描述

  • 在top文件中匹配:
vim /srv/salt/top.sls
##写入
base:
  'roles: apache':
    - match: grain
    - apache
  'roles: nginx':
    - match: grain
    - nginx

在这里插入图片描述
在这里插入图片描述
可以发现,在server2上安装了apache,在server3上安装了nginx。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值