Saltstack-Api

1、salt.config.client_config(path, env_var='SALT_CLIENT_CONFIG', defaults=None)

功能:加载salt master配置文件

样例:master_opts = salt.config.client_config('/etc/salt/master')

2、salt.config.minion_config(path, env_var='SALT_MINION_CONFIG', defaults=None, cache_minion_id=False)

功能:加载salt minion端配置文件

样例:minion_opts = salt.config.minion_config('/etc/salt/minion')

3、salt模块装载器接口

功能:将salt 模块加载到内存中。每个salt模块都有一个专用的加载函数。

(1)加载执行模块

功能:通过评估每个模块中的__virtual __()函数来返回适用于当前系统的执行模块的字典。

salt.loader.minion_mods(opts, context=None, utils=None, whitelist=None, include_errors=False, initial_load=False, loaded_base_name=None, notify=False, static_modules=None, proxy=None)

样例:

import salt.config,salt.loader

__opts__ = salt.config.minion_config('/etc/salt/minion')

__grains__ = salt.loader.grains(__opts__)

__opts__['grains'] = __grains__

__salt__ = salt.loader.minion_mods(__opts__)

__salt__['test.ping']()

(2)加载单个模块

并绕过__virtual__函数

salt.loader.raw_mod(opts, name, functions, mod='modules')

样例:

import salt.config,salt.loader

__opts__ = salt.config.minion_config('/etc/salt/minion')

testmod = salt.loader.raw_mod(__opts__, 'test', None)

testmod['test.ping']()

(3)加载状态模块

返回状态模块。

salt.loader.states(opts, functions, utils, serializers, whitelist=None)

样例:

import salt.config,salt.loader

__opts__ = salt.config.minion_config('/etc/salt/minion')

statemods = salt.loader.states(__opts__, None, None)

(4)加载grains模块

返回动态grains的功能和静态grains的值。

salt.loader.grains(opts, force_refresh=False, proxy=None)

样例:

import salt.config,salt.loader

__opts__ = salt.config.minion_config('/etc/salt/minion')

__grains__ = salt.loader.grains(__opts__)

print __grains__['id']

(5)加载grains功能函数

salt.loader.grain_funcs

样例:

import salt.config,salt.loader

__opts__ = salt.config.minion_config('/etc/salt/minion')

grainfuncs = salt.loader.grain_funcs(__opts__)

4、Salt的客户端接口——LocalClient

class  salt.client.LocalClient(c_path='/etc/salt/master', mopts=None, skip_perm_errors=False, io_loop=None)

在salt master上执行客户端管理命令的接口。

LocalClient用于向Salt minions发送一个命令来执行执行模块并将结果返回给Salt Master。

必须在与Salt Master相同的计算机上完成导入和使用LocalClient,并且必须使用与运行Salt Master的相同用户。

样例:

import salt.client

local = salt.client.LocalClient()

local.cmd('id', 'cmd.run', ['whoami'])

(1)cmd(tgt, fun, arg=(), timeout=None, expr_form='glob', ret='', jid='', kwarg=None, **kwargs)

在目标客户机上以同步的方式执行一个命令。

cmd方法将执行并等待所有客户机的超时时间回复,然后它将一次返回所有的数据。

重要参数:

tgt(字符串或列表) - 要执行的目标是哪些子节点。 默认是shell通配符。 可以由expr_form选项修改。

fun(字符串或字符串列表) - 在客户机上执行的模块与函数,例如test.ping或grains.items 。

expr_form -- 设定tgt的参数类型,支持的参数类型有:

glob - Bash glob completion - Default

pcre - Perl style regular expression

list - Python list of hosts

grain - Match based on a grain comparison

grain_pcre - Grain comparison with a regex

pillar - Pillar data comparison

pillar_pcre - Pillar data comparison with a regex

nodegroup - Match on nodegroup

range - Use a Range server for matching

compound - Pas

(2)cmd_async(tgt, fun, arg=(), expr_form='glob', ret='', jid='', kwarg=None, **kwargs)

在指定的客户机上以异步的形式执行一个命令。

该函数与cmd()的特性基本相同,仅有以下不同。

返回:    A job ID or 0 on failure.

样例:

>>> local.cmd_async('*', 'test.sleep', [300])

'20131219215921857715'

(3)cmd_batch(tgt, fun, arg=(), expr_form='glob', ret='', kwarg=None, batch='10%', **kwargs)

一次只在符合匹配规则的目标客户机的一个子集中,执行指定的命令。

该函数与cmd()的特性基本相同,仅有以下差别。

参数:    batch -- 要执行的系统的批量标识符

返回:    A generator of minion returns

>>> returns = local.cmd_batch('*', 'state.highstate', bat='10%')

>>> for ret in returns:

...     print(ret)

{'jerry': {...}}

{'dave': {...}}

{'stewart': {...}}

(4)cmd_iter(tgt, fun, arg=(), timeout=None, expr_form='glob', ret='', kwarg=None, **kwargs)

执行命令,然后对有结果返回的客户机收集其执行结果。

该函数与cmd()的特性基本相同,仅有以下差别。

返回:    A generator yielding the individual minion returns

注:A generator object in python is something like a lazy list. The elements are only evaluated as soon as you iterate over them.

样例:

>>> ret = local.cmd_iter('*', 'test.ping')

>>> for i in ret:

...     print(i)

{'jerry': {'ret': True}}

{'dave': {'ret': True}}

{'stewart': {'ret': True}}

(5)cmd_iter_no_block(tgt, fun, arg=(), timeout=None, expr_form='glob', ret='', kwarg=None, **kwargs)

执行命令,然后对有结果返回的客户机收集其执行结果,如果客户机没有返回结果则标记为None 。

该函数与cmd()的特性基本相同,仅有以下差别。

返回:返回一个生成器,对有结果返回的客户机收集其执行结果,如果客户机没有返回结果则标记为None 。这里允许在两个客户机返回结果之间注入特定的actions。

样例:

>>> ret = local.cmd_iter_no_block('*', 'test.ping')

>>> for i in ret:

...     print(i)

None

{'jerry': {'ret': True}}

{'dave': {'ret': True}}

None

{'stewart': {'ret': True}}

(6)cmd_subset(tgt, fun, arg=(), expr_form='glob', ret='', kwarg=None, sub=3, cli=False, progress=False, **kwargs)

在目标系统的随机子集上执行命令

该函数与cmd()的特性基本相同,仅有以下差别。

参数:    sub -- The number of systems to execute on

样例:

>>> SLC.cmd_subset('*', 'test.ping', sub=1)

{'jerry': True}

 

(7)get_cli_returns(jid, minions, timeout=None, tgt='*', tgt_type='glob', verbose=False, show_jid=False, **kwargs)

启动观察者以查看指定JID的返回数据。

返回:    all of the information for the JID

 

(8)get_event_iter_returns(jid, minions, timeout=None)

从事件系统收集返回数据,达到超时时会强制中断。

 

(9)run_job(tgt, fun, arg=(), expr_form='glob', ret='', timeout=None, jid='', kwarg=None, **kwargs)

异步发送一个命令给连接着的客户机。准备作业目录并向任何目标客户机都发布一个命令。

返回:

一个可验证的pub_data字典或失败的空字典。 pub_data包含作业ID和预期返回数据的所有客户机列表。

样例:

>>> local.run_job('*', 'test.sleep', [300])

{'jid': '20131219215650131543', 'minions': ['jerry']}

你可能感兴趣的:(linux服务,python)