SaltStack runners模块分析之pillar模块

/usr/lib/python2.6/site-packages/salt/runners/pillar.py

pillar runner模块提供一些在Master端与Pillar编译器交互的函数

返回指定minion的pillar的编译top数据,如果没有指定minion,就使用第一个找到的minion

def show_top(minion=None, saltenv=‘base‘):
    ‘‘‘
    Returns the compiled top data for pillar for a specific minion.  If no
    minion is specified, we use the first minion we find.

    CLI Example:

    .. code-block:: bash

        salt-run pillar.show_top
    ‘‘‘
    id_, grains, _ = salt.utils.minions.get_minion_data(minion, __opts__)
    pillar = salt.pillar.Pillar(
        __opts__,
        grains,
        id_,
        saltenv)

    top, errors = pillar.get_top()

    if errors:
        salt.output.display_output(errors, ‘nested‘, __opts__)
        return errors

    salt.output.display_output(top, ‘nested‘, __opts__)
    return top
$ sudo salt-run pillar.show_top  ‘jialebi-qa-server‘
base:
    ----------
    *:
        - packages
        - services
def show_pillar(minion=‘*‘, **kwargs):
    ‘‘‘
    Returns the compiled pillar either of a specific minion
    or just the global available pillars. I assume that no minion
    is using the id ``*``.

    CLI Example:

    shows minion specific pillar:

    .. code-block:: bash

        salt-run pillar.show_pillar ‘www.example.com‘

    shows global pillar:

    .. code-block:: bash

        salt-run pillar.show_pillar

    shows global pillar for ‘dev‘ pillar environment:

    .. code-block:: bash

        salt-run pillar.show_pillar ‘saltenv=dev‘

    API Example:

    .. code-block:: python

        import salt.config
        import salt.runner
        opts = salt.config.master_config(‘/etc/salt/master‘)
        runner = salt.runner.RunnerClient(opts)
        pillar = runner.cmd(‘pillar.show_pillar‘, [])
        print pillar
    ‘‘‘

    saltenv = ‘base‘
    id_, grains, _ = salt.utils.minions.get_minion_data(minion, __opts__)
    if grains is None:
        grains = {‘fqdn‘: minion}

    for key in kwargs:
        if key == ‘saltenv‘:
            saltenv = kwargs[key]
        else:
            grains[key] = kwargs[key]

    pillar = salt.pillar.Pillar(
        __opts__,
        grains,
        id_,
        saltenv)

    compiled_pillar = pillar.compile_pillar()
    salt.output.display_output(compiled_pillar, ‘nested‘, __opts__)
    return compiled_pillar

参考资料:

http://docs.saltstack.com/en/2014.7/ref/runners/all/salt.runners.pillar.html

时间: 2024-10-21 10:53:23

SaltStack runners模块分析之pillar模块的相关文章

SaltStack源码分析之pillar模块

/usr/lib/python2.6/site-packages/salt/modules/pillar.py def get(key, default='', merge=False, delimiter=':'):     '''     .. versionadded:: 0.14     Attempt to retrieve the named value from pillar, if the named value is not     available return the p

SaltStack runners模块分析之jobs模块

/usr/lib/python2.6/site-packages/salt/runners/jobs.py jobs runner模块用于方便管理正在运行或者处于活动状态的job 返回所有正在运行的job的报告 def active():     '''     Return a report on all actively running jobs from a job id centric     perspective     CLI Example:     .. code-block:

SaltStack runners模块分析之cache模块

/usr/lib/python2.6/site-packages/salt/runners/cache.py cache模块返回minion端缓存的数据 返回目标minion缓存的grains数据 def grains(tgt=None, expr_form='glob', **kwargs):     '''     Return cached grains of the targeted minions     CLI Example:     .. code-block:: bash   

SaltStack源码分析之cmdmod模块

/usr/lib/python2.6/site-packages/salt/modules/cmdmod.py cmdmod模块用于执行一些命令行 '' A module for shelling out Keep in mind that this module is insecure, in that it can give whomever has access to the master root execution access to all salt minions. ''' # I

audio_coding模块分析和audio_conference_mixer模块分析

audio_coding 1. 主要接口 AudioCodingModuleImpl::RegisterReceiveCodec 初始化Codec AudioCodingModuleImpl::IncomingPacket 收包 AudioCodingModuleImpl::PlayoutData10Ms neteq处理,并解码,返回原始数据 AudioCodingModuleImpl::Add10MsData 存储数据 AudioCodingModuleImpl::Process 编码,并调用

css扁平化博客学习总结(一)模块分析

一.模块分析 1.每开发一个项目之前,首先要对项目进行一个大致规划,它到底要做什么功能,它有什么具体需求. 2.所以需要进行模块化分析,把这些东西具象化,把一个问题模块化,对需求有一个宏观的了解. 3.有一个模块的概念后,把模块进行细分,细分成更小的模块,然后逐一击破. 不进行模块分析的恶劣影响: 不做模块分析,一上手就想到哪儿做到哪儿,很容易一叶障目,不能看到全貌,你会发现做着做着就失控了.因为有些地方出现了矛盾,你会发现要修改的成本很高,还不如推倒重写. 新手很容易着眼于细节,首先不应该从细

学生信息管理系统(四)——模块分析

学生信息管理系统已经敲完了,也进行了第一次验收,结果不是太理想.之前的总结也没有及时发表.现在重新复习一遍,把它发表. 从今天开始,我们就进入了代码分析阶段.现在我们就来分析一下模块中的几个函数. Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset 'executes SQL and returns Recordset Dim cnn As ADODB.Connection

saltstack3 pillar模块

pillar模块: 特点:给minion指定它想要的数据,给哪个minion指定,哪个minion能看到,,其他minion看不到,安全性得到了保障,在master端设置的 pillar应用场景: 1.敏感数据 比如给某一个配置文件设置个密码,这个密码只希望某个minion能看到 2.使用pillar处理变量的差异性 3.做配置管理时用pillar定义一些变量参数 4.定位主机 [[email protected] ~]# salt '*' pillar.items linux-node2: -

ABP之模块分析

ABP之模块分析 本篇作为我ABP介绍的第三篇文章,这次想讲下模块的,ABP文档已经有模块这方面的介绍,但是它只讲到如何使用模块,我想详细讲解下它模块的设计思路. ABP 框架提供了创建和组装模块的基础,一个模块能够依赖于另一个模块.在通常情况 下,一个程序集就可以看成是一个模块.在 ABP 框架中,一个模块通过一个类来定义,而这 个类要继承自 AbpModule. 其实它的设计思路很简单: 1.加载bin目录下的所有dll 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15