• saltstack-5 grainx组件


    1、获取主机信息

    根据grainx参数,过滤主机执行命令

    salt -G 'os:CentOS' cmd.run 'df -h'

    查看所有可以使用参数

    salt '*' grains.ls

    查看所有系统参数

    salt '*' grains.items

    查看那单项系统参数

    salt 'db_01' grains.item server_id

    2、配置属性

    (1)minion端进行参数配置

    查看配置文件:/et/salt/minion文件中,参数default_include,默认为minion.d/*.conf

    在对应的路径下,进行配置文件配置,文件名和路径复制配置文件配置内容即可。我这里取名:zxw.conf

    grains:
       roles:
         - webserver
         - memcache
       deployment: datacenter3
       cabinet: 13
       test: te

    重启应用:service salt-minion restart

    服务器端进行参数验证:

    salt '*' grains.item roles deployment cabinet test

    (2)master端进行参数配置

    • 生成_grains目录

    查看master端配置文件/etc/salt/master,看file_roots对应路径,在此路径下生成_grains目录,执行命令:

    install -d /srv/salt/_grains

    进入目录编写代码

    • 写python代码

    新建文件:sysprocess.py(此为3.5版本编写,由于客户端为minion2.7的,所以同步到客户端未能直接使用,又改写成注释部分,方可执行)

    import os, sys, subprocess
    
    def Grains_openfile():
        '''
        :return os max file of grains value
        '''
    
        grains = {}
    
        _open_file = 65536
    
        try:
            getulimit = subprocess.getstatusoutput('source /etc/profile ; ulimit -n')
            """
            getulimit = commands.getstatusoutput('source /etc/profile ; ulimit -n')
            python 2.0 use commands moudles
            if minion is python 2.0, you must use this command
            """
        except Exception as e:
            pass
    
        if getulimit[0] == 0:
            _open_file = int(getulimit[1])
    
        grains['max_open_file'] = _open_file
    
        return  grains
    
    Grains_openfile()
    • master端同步代码到minion端
    salt 'db_01' saltutil.sync_all

    /var/cache/salt/minion/files/base/_grains目录下,可以看到临存储的文件

    /var/cache/salt/minion/extmods/grains,下可以看到最终同步到客户端的为文件。

    需要重在代码时执行:

    salt 'db_01' sys.reload_modules

    reload后,会生成python可执行代码pyc文件。默认不会自动生成,我这到是自动生成了

    • 结果验证
    salt '*' grains.item max_open_file

    db_02端,由于同步python文件为3.5的导致执行不了,固无返回结果。

  • 相关阅读:
    C-二维数组,多维数组
    C-冒泡排序,选择排序,数组
    C语言的学习-基础知识点
    设置程序图标-初识IOS
    UIActivityIndicatorView-初识IOS
    生命周期-初识IOS
    机器学习
    开源的python机器学习模块
    基于Python使用scrapy-redis框架实现分布式爬虫 注
    Scrapy研究探索(六)——自动爬取网页之II(CrawlSpider)
  • 原文地址:https://www.cnblogs.com/zxw-xxcsl/p/11418639.html
Copyright © 2020-2023  润新知