SaltStack数据系统

    SaltStack是一种革命性的基础设施管理方法,它以速度取代复杂性。SaltStack很简单,可以在几分钟内运行,足以管理数万台服务器,并且可以在几秒内快速地与每个系统进行通信。

SaltStack运行方式
    1、Local
    2、Master/Minion
    3、Salt SSH

SaltStack三大功能
    1、远程执行
    2、配置管理
    3、云管理

SaltStack的数据系统
    Grains:(存放Minion启动时收集的系统信息)
        信息查询:
        列出node1的item:salt 'node1' grains.ls
        显示items的信息:salt 'node1' grains.items
        显示单个item的信息:salt 'node1' grains.item fqdn
                          salt 'node1' grains.get fqdn
        指定在哪个操作系统上执行: salt -G os:CentOS cmd.run 'w'
        可以在minion中配置grains然后执行操作:
            如在/etc/salt/minion中加入:
            grains:
              roles:
                - nginx
        或者在/etc/salt下创建grains文件,加入:
            roles:
              - nginx
            重启minion服务:
            salt -G  roles:nginx cmd.run 'w'
        或者在top.sls中使用(roles:nginx冒号边上不能有空格,match: grain不能加s):
            base:
              'roles:nginx':
                - match: grain
                - apache    
    Pillar:(在master端指定想要的数据)
        查看系统中有哪些pillar:salt "*" pillar.items
            需要先打开配置才能看到哦:
            sed -i 's/# pillar_opts: False/pillar_opts: True/g' /etc/salt/master
            重启服务
            配置并简单使用pillar
            sed -i 's/pillar_opts: True/# pillar_opts: False/g' /etc/salt/master
            将/etc/salt/master中的注释放开:
            pillar_roots:
              base:
               - /srv/pillar
            重启服务
            创建/srv/pillar目录
            mkdir -pv /srv/pillar
            创建pillar文件:
            [root@server pillar]# cat apache.sls
            {% if grains['os'] == 'CentOS' %}
            apache: httpd
            {% elif grains['os'] == 'Debian' %}
            apache: apache2
            {% endif %}
            [root@server pillar]# cat top.sls
            base:
              '*':
                - apache
            查看pillar的items
            salt '*' pillar.items
            刷新配置
            salt '*' saltutil.refresh_pillar
            测试配置结果
            salt -I 'apache:httpd' test.ping        
    
    Grains和Pillar的区别
        1、存储位置:Grains存储在Minion端,Pillar存储在Master端
        2、数据类型:Grains的数据类型是静态数据类型(修改配合需要重启Minion),Pillar是动态数据类型(配置好刷新就可以使用)
        3、数据采集更新方式:
            Grains在Minion启动时收集,也可以使用saltutil.sync_grains进行刷新
            Pillar在Master端定义,指定给对应的Minion,可以使用saltutil.fresh_pillar刷新
        4、应用:
            Grains存储Minion基本数据,比如用于匹配Minion,自身数据可以用来做资产管理等。
            Pillar存储Master指定的数据,只有指定的Minion可以看到,用于敏感数据保存
            

posted @ 2017-09-08 11:43  fansik  阅读(146)  评论(0编辑  收藏  举报