yuandan 发表于 2015-11-26 11:05:47

saltstack官方文档——Python client API

  转自:http://docs.saltstack.com/ref/python-api.html
  


Python client API
  Salt is written to be completely API centric, Salt minions and master can be built directly into third party applications as a communication layer. The Salt client API is very straightforward.
  A number of client command methods are available depending on the exact behavior desired.

USING THE LOCALCLIENT API
  Sending information through the client is simple:

# Import the Salt client library
import salt.client
# create a local client object
client = salt.client.LocalClient()
# make calls with the cmd method
ret = client.cmd('*', 'cmd.run', ['ls -l'])

  The LocalClient object only works running as root on the salt-master, it is the same interface used by the saltcommand line tool.

LocalClient.cmd(tgt, fun, arg=[], timeout=5, expr_form='glob', ret='')  The cmd method will execute and wait for the timeout period for all minions to reply, then it will return all minion data at once.


tgt  The tgt option is the target specification, by default a target is passed in as a bash shell glob. The expr_form option allows the tgt to be passed as either a PCRE regular expression or as a Python list.


fun  The name of the function to call on the specified minions. The documentation for these functions can be seen by running on the salt-master: salt '*' sys.doc


arg  The optional arg parameter is used to pass a list of options on to the remote function


timeout  The number of seconds to wait after the last minion returns but before all minions return.


expr_form  The type of tgt that is passed in, the allowed values are:


[*]'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
[*]'nodegroup' - Match on nodegroup
[*]'range' - Use a Range server for matching
[*]'compound' - Pass a compound match string


ret  Specify the returner to use. The value passed can be single returner, or a comma delimited list of returners to call in order on the minions


LocalClient.cmd_cli(tgt, fun, arg=[], timeout=5, verbose=False, expr_form='glob', ret='')  The cmd_cli method is used by the salt command, it is a generator. This method returns minion returns as the come back and attempts to block until all minions return.


tgt  The tgt option is the target specification, by default a target is passed in as a bash shell glob. The expr_form option allows the tgt to be passed as either a pcre regular expression or as a Python list.


fun  The name of the function to call on the specified minions. The documentation for these functions can be seen by running on the salt-master: salt '*' sys.doc


arg  The optional arg parameter is used to pass a list of options on to the remote function


timeout  The number of seconds to wait after the last minion returns but before all minions return.


expr_form  The type of tgt that is passed in, the allowed values are:


[*]'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
[*]'nodegroup' - Match on nodegroup
[*]'range' - Use a Range server for matching
[*]'compound' - Pass a compound match string


ret  Specify the returner to use. The value passed can be single returner, or a comma delimited list of returners to call in order on the minions


verbose  Print extra information about the running command to the terminal


LocalClient.cmd_iter(tgt, fun, arg=[], timeout=5, expr_form='glob', ret='')  The cmd_iter method is a generator which yields the individual minion returns as the come in.


tgt  The tgt option is the target specification, by default a target is passed in as a bash shell glob. The expr_form option allows the tgt to be passed as either a pcre regular expression or as a Python list.


fun  The name of the function to call on the specified minions. The documentation for these functions can be seen by running on the salt-master: salt '*' sys.doc


arg  The optional arg parameter is used to pass a list of options on to the remote function


timeout  The number of seconds to wait after the last minion returns but before all minions return.


expr_form  The type of tgt that is passed in, the allowed values are:


[*]'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
[*]'nodegroup' - Match on nodegroup
[*]'range' - Use a Range server for matching
[*]'compound' - Pass a compound match string


ret  Specify the returner to use. The value passed can be single returner, or a comma delimited list of returners to call in order on the minions


LocalClient.cmd_iter_no_block(tgt, fun, arg=[], timeout=5, expr_form='glob', ret='')  The cmd_iter method will block waiting for individual minions to return, the cmd_iter_no_block method will return None until the next minion returns. This allows for actions to be injected in between minion returns


tgt  The tgt option is the target specification, by default a target is passed in as a bash shell glob. The expr_form option allows the tgt to be passed as either a pcre regular expression or as a Python list.


fun  The name of the function to call on the specified minions. The documentation for these functions can be seen by running on the salt-master: salt '*' sys.doc


arg  The optional arg parameter is used to pass a list of options on to the remote function


timeout  The number of seconds to wait after the last minion returns but before all minions return.


expr_form  The type of tgt that is passed in, the allowed values are:


[*]'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
[*]'nodegroup' - Match on nodegroup
[*]'range' - Use a Range server for matching
[*]'compound' - Pass a compound match string


ret  Specify the returner to use. The value passed can be single returner, or a comma delimited list of returners to call in order on the minions


COMPOUND COMMAND EXECUTION WITH THE SALT API
  The Salt client API can also send what is called a compound command. Often a collection of commands need to be executed on the targeted minions, rather than send the commands one after another, they can be sent in a single publish containing a series
of commands. This can dramatically lower overhead and speed up the application communicating with Salt.
  When commands are executed with compound execution the minion functions called are executed in serial on the minion and the return value is sent back in a different fashion. The return value is a dict, with the function names as keys to the function
returns as values.
  Using the compound command execution system via the API requires that the fun value and the arg value are lists matching by index. This ensures that the order of the executions can be controlled. Any function that has no arguments MUST have an empty
array in the corresponding arg index.
  All client command methods can execute compound commands.

# Import the Salt client library
import salt.client
# create a local client object
client = salt.client.LocalClient()
# make compound execution calls with the cmd method
ret = client.cmd('*', ['cmd.run', 'test.ping', 'test.echo'], [['ls -l'], [], ['foo']])

  This will execute cmd.run ls -l then test.ping and
finally test.echo foo. The return data from the minion will look like this:

{'cmd.run': '<output from ls -l>',
'test.ping': True,
'test.echo': 'foo'}


SALT CALLER API
  The Salt minion caller api can be used to simplify the execution and use of minion elements. The caller api is useful for accessing the Salt api, direct access to the state functions, using the matcher interface on a single minion, and as an api
for the peer interface. Using the api is fairly straightforward:

# Import the Salt client library
import salt.client
# Create the caller object
caller = salt.client.Caller()
# call a function
caller.function('test.ping')
# Call objects directly:
caller.sminion.functions['cmd.run']('ls -l')



Table Of Contents


[*]Python client API

[*]Using the LocalClient API
[*]Compound Command Execution With the Salt API
[*]Salt Caller API



Previous topic

Salt Syndic

Next topic

File Server Backends

Quick search



Enter search terms or a module, class or function name.




[*]


  
页: [1]
查看完整版本: saltstack官方文档——Python client API