Linux企业实战之自动化运维工具(三)——SaltStack(3)

grains与pillar

  • Grains简介

    • Grains是SaltStack的一个组件,存放在SaltStack的minion端。

    • 当salt-minion启动时会把收集到的数据静态存放在Grains当中,只有当minion重启时才会进行数据的更新。

    • 由于grains是静态数据,因此不推荐经常去修改它。

    • 应用场景:

      • 信息查询,可用作CMDB。
      • 在target中使用,匹配minion。
      • 在state系统中使用,配置管理模块。

(1)信息的查询

salt server2 grains.ls			 	#列出所有grains的所有参数
salt server2 grains.ls | wc -l  	#统计grains的参数值
salt server2 grains.item os			#查询server2的系统名称
salt server2 grains.item hostname	#查询server2的主机名
salt server2 grains.item dns		#查询server2上的DNS信息

在这里插入图片描述
在这里插入图片描述

(2)自定义grains项

  • 方法一:在minion的主配置文件中直接来创建
vim /etc/salt/minion
systemctl  restart salt-minion

在这里插入图片描述
在这里插入图片描述

salt server3 grains.item roles
salt server2 grains.item roles
salt -G 'roles:nginx' test.ping

在这里插入图片描述

  • 方法二:在/etc/salt/grains文件中来创建

在这里插入图片描述
在这里插入图片描述
这种方法不需要重启salt-minion,但是需要在master上同步数据

  • 方法三:在master上直接创建
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

pillar简介

  • pillar和grains一样也是一个数据系统,但是应用场景不同。
  • pillar是将信息动态的存放在master端,主要存放私密、敏感信息(如用户名密码等),而且可以指定某一个minion才可以看到对应的信息。
  • pillar更加适合在配置管理中运用。
  • pillar只会在master端存储

(1)声明pillar

vim /etc/salt/master
mkdir /srv/pillar
cd /srv/pillar
vim web.sls

{% if grains['fqdn'] == 'server2' %}
webserver: httpd
{% elif grains['fqdn'] == 'server3' %}
webserver: nginx
{% endif %}

port: 80


vim top.sls

base:
  '*':
    - web

salt '*' pillar.items

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

salt '*' saltutil.refresh_pillar				#刷新pillar数据
salt '*' pillar.items webserver					#查询pillar数据
salt '*' pillar.items port

在这里插入图片描述

Jinja模板

  • Jinja是一种基于python的模板引擎,在SLS文件里可以直接使用jinja模板来做一些操作。

  • 通过jinja模板可以为不同服务器定义各自的变量。

  • 两种分隔符: {% … %} 和 {{ … }},前者用于执行诸如 for 循环 或赋值的语句,后者把表达式的结果打印到模板上。

  • Jinja最基本的用法是使用控制结构包装条件:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • Jinja模板在普通文件的使用:
cd /srv/salt/httpd
vim init.sls

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 在jinja模板中直接引用grains变量和pillar变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

salt server2 state.sls httpd

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

还有另外一种编写的方法,在init.sls文件中开启jinja模板,在httpd.conf文件中直接引用grains和pillar的变量,这种方法也可以
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • import方式,可在state文件之间共享
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
salt server2 state.sls httpd

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值