zoukankan      html  css  js  c++  java
  • saltsack之数据系统(三)

    saltstack 数据系统有两种,Grains   pillar

    Grains  与  Pillar  区别

                 类型          数据采集方式            应用场景                                                    定义位置

    Granis   静态       minion启动时采集         数据查询  目标选择  配置管理                    minion

    Pillar     动态          master自定义             目标选择   配置管理   敏感数据                  master

    Grains:静态数据   当minion启动收集本地信息(操作系统,内核版本,CPU,内存,硬盘,设备型号等) 只要不重启,这些数据只会收集一次

     能干什么呢?

            1         资产管理,信息查询  

             (salt 'web01' grains.items。  salt '*' grains.item fqdn_ip4 )    

            2   用于目标选择

               (salt -G 'web01:apache' cmd.run '/etc/init.d/httpd restart')

            3        配置管理中使用

    举例  :资产管理

        停止某一个机器的apache(也可以是指定roles的服务)

            1,方法一   从minion配置文件配置(不太推荐,不好管理)

                        grains:

                          roles: apache

                  重启服务

      /etc/init.d/salt-minion restar
    
        master端:      
    
    salt '*' grains.item roles
    web01:
    ----------
    roles:
    web02:
    ----------
    roles:
    apache
    
       
    
    salt -G 'roles:apache' cmd.run '/etc/init.d/httpd stop' 
    web02:
    Stopping httpd: ?[60G[?[0;32m OK ?[0;39m]
    
     

    2  方法2 创建grains(minion端)(推荐)

    vim /etc/salt/grains
    
    server: httpd
    
    salt '*' saltutil.sync_grains  刷新(不用重启强制刷新)
    
    salt '*' grains.item  server
    
    web01:
    ----------
    server:
    web02:
    ----------
    server:httpd

    举例:目标选择

     vim /srv/salt/top.sls

    base:
    'web01':
    - web.apache
    'roles:apache':
    - match: grain
    - web.apache

    ====================开发一个grains================

    mkdir /srv/salt/_grains

    cd /srv/salt/_grains

    vim my_grains.py

    [root@web01 _grains]# vim my_grains.py
    #!/usr/bin/env python
    #_*_ coding: utf-8 _*_
    
    
    def my_grains():
        #初始化一个grains字典
        grains = {}
        #设置字典中的值(key-value)
        grains['iaas'] = 'openstack'
        grains['edu'] = 'daxian'
        #返回这个字典
        return grains
    ~                     

    从master端同步到minion端

     salt '*' saltutil.sync_grains
    web01:
        - grains.my_grains
    web02:
        - grains.my_grains

    同步到minion  /var/cache/salt/minion/extmods/grains

    执行以下

    salt '*' grains.item iaas
    web02:
        ----------
        iaas:
            openstack
    web01:
        ----------
        iaas:
            openstack

    Grians优先级:

    1.     系统自带
    2.     grains 文件写的
    3.     minion配置文件写的
    4.     自己写的

    Pillar介绍

    Pillar是动态的  给特定的minion指定特定的数据

    默认是关闭的,在配置文件master里开启,一般都关闭,一般都是自己写

    vim /etc/salt/master
    
    pillar_roots:
    
      base:
    
        - /srv/pillar

    #创建这个目录
    mkdir /srv/pillar
    cd /srv/pillar
    mkdir web
    cd web
    #重启
    /etc/init.d/salt-master restart


    #编辑
    vim apache.sls

    {% if grains['os'] == 'CentOS' %}
    apache: httpd
    {% elif grains['os'] == 'Debian' %}
    apache: apache2
    {% endif %}

    编辑top file

    cd ..
    
    vim top.sls
    
    base:
    'web01':
    - web.apache
    
    #刷新
    
    salt '*' saltutil.refresh_pillar
    
    salt '*' pillar.items apache
    web02:
    ----------
    web01:
    ----------
    apache:
    httpd
  • 相关阅读:
    微擎模块机制分析2
    微擎we7模块和模板安装方法
    git的使用 及一些常见的错误处理
    人,活着为了什么?
    fedora配置ip
    fedora安装gcc
    linux查看内核版本和发行版本号
    python数据类型2
    python之零碎知识
    python之数据类型1
  • 原文地址:https://www.cnblogs.com/sky00747/p/8250834.html
Copyright © 2011-2022 走看看