zoukankan      html  css  js  c++  java
  • 架构师成长之路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 
    

      

      

      

      

  • 相关阅读:
    垃圾收集器
    垃圾收集算法
    JVM内存模型
    工厂方法模式
    类加载机制
    六大设计原则
    单例模式
    HFish开源蜜罐搭建
    利用metasploit复现永恒之蓝
    零信任网络初识
  • 原文地址:https://www.cnblogs.com/yaoyaojcy/p/11984310.html
Copyright © 2011-2022 走看看