• 架构师成长之路5.7-Saltstack数据系统


    点击架构师成长之路

    架构师成长之路5.7-Saltstack数据系统

    1. Saltstack的两种数据系统

    • Grains
    • Pollars

    2. Saltstack数据系统---Grains

    • Grains是SaltStack minions启动时收集的有关底层管理系统的静态信息。包括操作系统版本、域名、IP地址、内存、内核、CPU、操作系统类型以及许多其他系统属性。Minion 收集的信息,可以作为Master端匹配目标。
    • 如果需要自定义grains,需要添加到Salt Minion的/etc/salt/grains文件中(配置文件中定义的默认路径),也可以直接写在配置文件/etc/salt/minion中。

    应用场景:

    • 用于信息查询,grains保存收集到的客户端的详细信息
    • 在state中使用 用于配置管理模块
    • 在target中使用,用来匹配minion,例如匹配操作系统使用-G的选项

    1)资产管理,信息查询

    salt '*' grains.ls  #列出所有可用的grains状态模块
    salt '*' grains.items  #打印所有状态信息
    salt '*' grains.item fqdn_ip4 #列出每台minion的本地IP地址
    salt '*' grains.item os  #列出每台minion的操作系统
    

    Saltstack01:
        ----------
        SSDs:
        biosreleasedate:
            07/02/2015
        biosversion:
            6.00
        cpu_flags:
            - fpu
            - vme
            - de
            - pse
            - tsc
            - msr
            - pae
            - mce
            - cx8
            - apic
            - sep
            - mtrr
            - pge
            - mca
            - cmov
            - pat
            - pse36
            - clflush
            - dts
            - mmx
            - fxsr
            - sse
            - sse2
            - ss
            - syscall
            - nx
            - pdpe1gb
            - rdtscp
            - lm
            - constant_tsc
            - arch_perfmon
            - pebs
            - bts
            - nopl
            - xtopology
            - tsc_reliable
            - nonstop_tsc
            - aperfmperf
            - eagerfpu
            - pni
            - pclmulqdq
            - ssse3
            - fma
            - cx16
            - pcid
            - sse4_1
            - sse4_2
            - x2apic
            - movbe
            - popcnt
            - tsc_deadline_timer
            - aes
            - xsave
            - avx
            - f16c
            - rdrand
            - hypervisor
            - lahf_lm
            - abm
            - epb
            - fsgsbase
            - tsc_adjust
            - bmi1
            - avx2
            - smep
            - bmi2
            - invpcid
            - xsaveopt
            - dtherm
            - arat
            - pln
            - pts
        cpu_model:
            Intel(R) Core(TM) i3-4160 CPU @ 3.60GHz
        cpuarch:
            x86_64
        disks:
            - sda
            - sr0
        dns:
            ----------
            domain:
            ip4_nameservers:
                - 172.18.50.25
                - 172.18.50.20
            ip6_nameservers:
            nameservers:
                - 172.18.50.25
                - 172.18.50.20
            options:
            search:
                - 
            sortlist:
        domain:
        fqdn:
            Saltstack01
        fqdn_ip4:
            - 172.18.20.226
            - 192.168.122.1
            - 172.18.20.42
        fqdn_ip6:
            - fe80::30fd:662a:f719:3852
        fqdns:
        gid:
            0
        gpus:
            |_
              ----------
              model:
                  SVGA II Adapter
              vendor:
                  vmware
        groupname:
            root
        host:
            Saltstack01
        hwaddr_interfaces:
            ----------
            ens33:
                00:0c:29:0c:45:c8
            lo:
                00:00:00:00:00:00
            virbr0:
                52:54:00:08:6d:90
            virbr0-nic:
                52:54:00:08:6d:90
        id:
            Saltstack01
        init:
            systemd
        ip4_gw:
            172.18.20.1
        ip4_interfaces:
            ----------
            ens33:
                - 172.18.20.42
                - 172.18.20.226
            lo:
                - 127.0.0.1
            virbr0:
                - 192.168.122.1
            virbr0-nic:
        ip6_gw:
            False
        ip6_interfaces:
            ----------
            ens33:
                - fe80::30fd:662a:f719:3852
                - 172.18.20.226
            lo:
                - ::1
            virbr0:
            virbr0-nic:
        ip_gw:
            True
        ip_interfaces:
            ----------
            ens33:
                - 172.18.20.42
                - fe80::30fd:662a:f719:3852
                - 172.18.20.226
            lo:
                - 127.0.0.1
                - ::1
            virbr0:
                - 192.168.122.1
            virbr0-nic:
        ipv4:
            - 127.0.0.1
            - 172.18.20.42
            - 172.18.20.226
            - 192.168.122.1
        ipv6:
            - ::1
            - fe80::30fd:662a:f719:3852
        kernel:
            Linux
        kernelrelease:
            3.10.0-862.el7.x86_64
        kernelversion:
            #1 SMP Fri Apr 20 16:44:24 UTC 2018
        locale_info:
            ----------
            defaultencoding:
                UTF-8
            defaultlanguage:
                en_US
            detectedencoding:
                UTF-8
            timezone:
                PST
        localhost:
            Saltstack01
        lsb_distrib_codename:
            CentOS Linux 7 (Core)
        lsb_distrib_id:
            CentOS Linux
        machine_id:
            96e87d6c29564227b42c4fae2f5577fa
        manufacturer:
            VMware, Inc.
        master:
            172.18.20.226
        mdadm:
        mem_total:
            974
        nodename:
            Saltstack01
        num_cpus:
            1
        num_gpus:
            1
        os:
            CentOS
        os_family:
            RedHat
        osarch:
            x86_64
        oscodename:
            CentOS Linux 7 (Core)
        osfinger:
            CentOS Linux-7
        osfullname:
            CentOS Linux
        osmajorrelease:
            7
        osrelease:
            7.5.1804
        osrelease_info:
            - 7
            - 5
            - 1804
        path:
            /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
        pid:
            5662
        productname:
            VMware Virtual Platform
        ps:
            ps -efHww
        pythonexecutable:
            /usr/bin/python
        pythonpath:
            - /usr/bin
            - /usr/lib64/python27.zip
            - /usr/lib64/python2.7
            - /usr/lib64/python2.7/plat-linux2
            - /usr/lib64/python2.7/lib-tk
            - /usr/lib64/python2.7/lib-old
            - /usr/lib64/python2.7/lib-dynload
            - /usr/lib64/python2.7/site-packages
            - /usr/lib64/python2.7/site-packages/gtk-2.0
            - /usr/lib/python2.7/site-packages
        pythonversion:
            - 2
            - 7
            - 5
            - final
            - 0
        saltpath:
            /usr/lib/python2.7/site-packages/salt
        saltversion:
            2019.2.2
        saltversioninfo:
            - 2019
            - 2
            - 2
            - 0
        selinux:
            ----------
            enabled:
                True
            enforced:
                Permissive
        serialnumber:
            VMware-56 4d 25 6d 08 a4 97 06-21 73 df ca ed 0c 45 c8
        server_id:
            381460858
        shell:
            /bin/sh
        swap_total:
            2047
        systemd:
            ----------
            features:
                +PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN
            version:
                219
        uid:
            0
        username:
            root
        uuid:
            6d254d56-a408-0697-2173-dfcaed0c45c8
        virtual:
            VMware
        zfs_feature_flags:
            False
        zfs_support:
            False
        zmqversion:
            4.1.4
    

    2)远程执行中用于匹配目标

     3)在top file里面使用匹配

     在所有系统是centos的操作系统上面执行web.apache。

    4)配合模板进行判断 (一般在pollars中使用)

    自定义Grains:

    第一种方法:在/etc/salt/minion文件中定义(不推荐)

     如上格式修改配置:

    grains:
      roles:
        - webserver
        - memcache
      ipaddr:
        - 192.168.1.32  

    重启服务:

    systemctl restart salt-minion

    测试:

    salt -G 'ipaddr:192.168.1.32' test.ping 
    

    第二种方法:重新定义一个,在minion机器上面创建 /etc/salt/grains  

     有一个办法不用重启服务就可以使用grains,采用saltutil.sync_grains 重新获取grains。

    3. Saltstack数据系统---Pollar

    • Pillar是动态的,Pillar存储在master上,提供给minion(Pillar在master上面配置)。
    • Pillar主要记录一些加密信息,可以确保这些敏感数据不被其他minion看到。比如:软件版本号、用户名密码等。存储格式都是YAML格式。

    默认pillars 是没有的,但是系统默认是存在pillars,只是没有开启而已。

     开启系统默认pillars。 将/etc/salt/master中pillar_opts:False 改成vpillar_opts:True。

     1)在Master端定义Pillar

    vim /etc/salt/master

     

    pillar_roots:
      base:
        - /srv/pillar/base
      prod:
        - /srv/pillar/prod

     

    mkdir -p /srv/pillar/{base,prod}   #创建目录
    

    systemctl restart salt-master  # 重启服务
    

     2345789-

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

    2)编写TopFile指定Minion端可以使用

    vim /srv/pillar/base/top.sls 
    

      

      

      

      

  • 相关阅读:
    java中的 equals 与 ==
    String类的内存分配
    SVN用命令行更换本地副本IP地址
    npoi 设置单元格格式
    net core 微服务框架 Viper 调用链路追踪
    打不死的小强 .net core 微服务 快速开发框架 Viper 限流
    net core 微服务 快速开发框架 Viper 初体验20201017
    Anno 框架 增加缓存、限流策略、事件总线、支持 thrift grpc 作为底层传输
    net core 微服务 快速开发框架
    Viper 微服务框架 编写一个hello world 插件02
  • 原文地址:https://www.cnblogs.com/yaoyaojcy/p/11984310.html
Copyright © 2020-2023  润新知