Hi 你好,欢迎访问!登录
当前位置:首页 - 自动化运维 - 正文 忍人所不忍,能人所不能。

Linux自动化工具之SaltStack Grains and Pillar

2020-02-24自动化运维90root91°c
A+ A-
Grains是SaltStack组建中非常重要的组建之一.Grains信息是在Minions服务启动的时候汇报给Master. 主要纪录minion的一些静态信息, 如cpu、内存、磁盘、网络信息等。
grains vs pillar:
 1.grains存储的是静态、不常变化的内容,pillar则相反
 2.grains是存储在minion本地,而pillar存储在master本地
 3.minion有权限操作自己的grains值,如增加、删除,但minion只能查看自己的pillar,无权修改
     1 . 查看minion的全部静态变量.
[[email protected] master]# salt 'node2.90root.com' grains.ls
node2.90root.com:
    - SSDs
    - cpu_flags
    - cpu_model
    - cpuarch
        ... ...
     2 . 列出key及vlaue
[[email protected] master]# salt 'node2.90root.com' grains.items
Linux自动化工具之SaltStack Grains and Pillar SaltStack Linux 自动化运维 第1张
    3 . 查看指定的key值
[[email protected] master]# salt 'node2.90root.com' grains.item cpu_model
[[email protected] master]# salt 'node2.90root.com' grains.item nodename
Linux自动化工具之SaltStack Grains and Pillar SaltStack Linux 自动化运维 第2张
二、自定义grains.item
     1 . 修改minion端的配置文件.
[[email protected] minion]# vim/etc/salt/minion
default_include: minion.d/*.conf          #打开注释
     2 . minion端/etc/salt/minion.d/目录下新建conf文件
[[email protected] minion]# vim /etc/salt/minion.d/90root.conf
grains:
  90root: www.90root.com
  user: 90root
  roles:
    - a
    - b
[[email protected] minion]# /etc/init.d/salt-minion restart
[[email protected] master]# salt 'node2.90root.com' grains.item 90root
node2.90root.com:
    ----------
    90root:
        www.90root.com
[[email protected] master]# salt 'node2.90root.com' grains.item roles
node2.90root.com:
    ----------
    roles:
        - a
        - b
   3. 通过Grains模块自定义Grains
[[email protected] master]# salt 'node2.90root.com' grains.append blog 'www.90root.com'
node2.90root.com:
    ----------
    blog:
      - www.90root.com
[[email protected] master]# salt 'node2.90root.com' grains.item blog        ->查看grains信息
node2.90root.com:
    ----------
    blog:    
      - www.90root.com
   4. 使用grains.setvals同时设置多对grains信息
[[email protected] master]# salt 'node2.90root.com' grains.setvals "{'salt':'goog','blog':'www.90root.com'}"
node2.90root.com:
    ----------
    blog:
        www.90root.com
    salt:
        goog
[[email protected] master]# salt 'node2.90root.com' grains.item salt
node2.90root.com:
    ----------
    salt:
        goog
   5 . 通过Grains定位主机
[[email protected] ~]# salt -G 'os:Centos' test.ping     #匹配minion端操作系统为Centos
[[email protected] ~]# salt -G 'fqdn:node2.90root.com' test.ping         #匹配minion端fqdn为node2.90root.com的机器   
Linux自动化工具之SaltStack Grains and Pillar SaltStack Linux 自动化运维 第3张
   6 . 自定义Granis
在minion端新建grains配置文件
[[email protected] ~]# vim/etc/salt/grains
cloud: 90root.com
[[email protected] ~]# /etc/init.d/salt-minion restart
Linux自动化工具之SaltStack Grains and Pillar SaltStack Linux 自动化运维 第4张
 master匹配nginx的主机
[[email protected] ~]# salt -G 'roles:nginx' test.ping
Linux自动化工具之SaltStack Grains and Pillar SaltStack Linux 自动化运维 第5张
   7. master通过调用salt刷新命令让minion端配置文件生效
[[email protected] ~]# vim /etc/salt/grains          #在末尾增加
test: flush
[[email protected] ~]# salt '*' saltutil.sync_grains
[[email protected] ~]# salt -G 'test:flush' test.ping

Linux自动化工具之SaltStack Grains and Pillar SaltStack Linux 自动化运维 第6张

Linux自动化工具之SaltStack Grains and Pillar SaltStack Linux 自动化运维 第7张

Pillar也是saltstack组建中非常重要的组建之一, 是数据中心管理. Pillar在saltstack中主要的作用就是存储和定义配置管理中需要的一些数据, 比如版本号、用户名密码等信息。它的定义存储格式跟Grains类似. 都是YAML格式.
   8 . 修改master端配置文件
[[email protected] ~]# vim /etc/salt/master
pillar_roots:                    #去掉注释
  base:                            #去掉注释
    - /etc/salt/pillar         #定义pillar路径
[[email protected] ~]# mkdir /etc/salt/pillar
[[email protected] ~]# cd /etc/salt/pillar
[[email protected] pillar]# vim top.sls
base:                       ->指定环境
  '*':                           ->Target(所有minion都称为Target)
    - init.rsyslog
[[email protected] pillar]# mkdir init
[[email protected] pillar]# cd init
[[email protected] init]# vim rsyslog.sls
{% if grains['osrelease'] == '6.6' %}
syslog: rsyslog
{% elif grains['osrelease'] == '6.5' %}
syslog : rsyslog
{% endif %}
[[email protected] init]# salt '*' saltutil.refresh_pillar
Linux自动化工具之SaltStack Grains and Pillar SaltStack Linux 自动化运维 第8张
[[email protected] init]# /etc/init.d/salt-master restart         
[[email protected] init]# salt '*' pillar.item syslog
Linux自动化工具之SaltStack Grains and Pillar SaltStack Linux 自动化运维 第9张
  移步手机端
Linux自动化工具之SaltStack Grains and Pillar

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签:

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>


  用户登录