zoukankan      html  css  js  c++  java
  • saltstack自动化运维系列②之saltstack的数据系统

    saltstack自动化运维系列②之saltstack的数据系统

    grains:搜集minion启动时的系统信息,只有在minion启动时才会搜集,grains更适合做一些静态的属性值的采集,例如设备的角色(role),磁盘个数(disk_num)等诸如此类非常固定的属性,另一个作用可以用来匹配minion

    列出所有的grains选项

    # salt '*' grains.ls

    列出所有grains和内容

    # salt 'mini1' grains.items

    显示单个grains内容,get方法直接显示值,item方法会把条目名也显示出来
    获取单独的变量值fqdn名
    # salt 'node2.chinasoft.com*' grains.item fqdn
    node2.chinasoft.com:
    ----------
    fqdn:
    node2.chinasoft.com
    [root@mini1 ~]# salt 'node2*' grains.get fqdn
    node2.chinasoft.com:
    node2.chinasoft.com

    # salt 'node2*' grains.get os
    node2.chinasoft.com:
    CentOS

    # 匹配执行,系统为centos的主机执行命令

    [root@mini1 ~]# salt -G os:CentOS cmd.run 'w'
    node2.chinasoft.com:
    11:49:06 up 4 days, 3:15, 2 users, load average: 0.00, 0.00, 0.00
    USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
    root tty1 - 23Dec16 13days 0.25s 0.25s -bash
    root pts/1 192.168.3.84 Thu20 5:51 0.02s 0.02s -bash
    mini1:
    11:49:07 up 2 days, 6:25, 1 user, load average: 0.00, 0.04, 0.00
    USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
    root pts/2 192.168.3.84 Thu20 1.00s 0.58s 0.52s /usr/bin/python


    使用grains匹配minion主机

    模拟使用grains匹配minion,-G代表指定grains匹配

    vim /etc/salt/minion

    打开grain的配置
    grains:
    roles:
    - webserver
    - memcache
    # /etc/init.d/salt-minion restart
    # salt -G 'roles:memcache' cmd.run 'echo hehe'
    mini1:
    hehe

    添加grains,默认会到/etc/salt/grains中读取,手动添加到/etc/salt/grains即可
    如添加自定义角色
    # cat /etc/salt/grains
    web: nginx

    # salt -G web:nginx cmd.run 'w'
    mini1:
    12:25:05 up 2 days, 7:01, 1 user, load average: 0.04, 0.01, 0.00
    USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
    root pts/2 192.168.3.84 Thu20 0.00s 0.64s 0.50s /usr/bin/python
    [root@mini1 ~]# salt '*' grains.item roles
    mini1:
    ----------
    roles:
    - webserver
    - memcache
    node2.chinasoft.com:
    ----------
    roles:

    pillar的使用及配置
    要使用pillar,首先要修改master中的配置
    更改配置文件打开pillar,默认是关闭的
    vim /etc/salt/master

    pillar_opts: True

    pillar_roots:
    base:
    - /srv/pillar

    mkdir /srv/pillar

    查看master自带的pillar条目,实际生产是不打开的,自带的pillar用处不大,所以一般都会设置成false,使用自己定义的pillar

    手动定义一个pillar

    # cat /srv/pillar/apache.sls
    
    {% if grains['os'] == 'CentOS' %}
    apache: httpd
    {% elif grains['os'] == 'Debian' %}
    apache: apache2
    {% endif %}
    
    # cat /srv/pillar/top.sls 
    base:
    '*':
    - apache

    刷新策略
    # salt '*' saltutil.refresh_pillar

    # salt '*' pillar.items
    mini1:
    ----------
    apache:
    httpd
    node2.chinasoft.com:
    ----------
    apache:
    grains与pillar的区别

    grains存储的是静态、不常变化的内容;pillar则相反,存储的是动态数据
    grains是存储在minion本地,可以使用saltutil.sync_grains刷新;而pillar存储在master本地,可以使用saltutil.refresh_pillar来刷新
    minion有权限操作自己的grains值,如增加、删除,可以用来做资产管理等;pillar存储在master中指定数据,只有指定的minion才可以看到,可以用来存储敏感数据,minion无权修改

  • 相关阅读:
    如何关闭浏览器的自动完成功能
    <<设计模式C#>>学习笔记一:面向对象编程准备知识
    小心你成“鼠标手”
    中科院公布白领工资标准,香港月入18500才算白领
    在PB中调用IE
    在SqlServer2005里运行exe
    PBCS项目总结
    一条SQL删除所有表中数据
    SQL Server压缩Log文件的方法总结
    最近打算学习的一些东西
  • 原文地址:https://www.cnblogs.com/reblue520/p/6732844.html
Copyright © 2011-2022 走看看