salt的python api:
python指令碼呼叫salt命令
指令碼要在master機器上執行,執行使用者需要是master使用者
(1)獲取master配置檔案:
salt.config.client_config(path, env_var=』salt_client_config』, defaults=none)
load master configuration data
import salt.config
master_ops = salt.config.client_config(『/etc/salt/master』)#returns a dictionary
(2)獲取minion配置檔案 :
salt.config.minion_config(path, env_var=』salt_minion_config』, defaults=none, minion_id=false)
import salt.config
minion_opts = salt.config.minion_config(『/etc/salt/minion』)#returns a dictionary
獲取執行的機器上的minion配置資訊
(3)py指令碼獲取grain值:
salt.loader.grains(opts, force_refresh=false)
××××××
import salt.config
import salt.loader
__opts__ = salt.config.minion_config(『/etc/salt/minion』)
__grains__ = salt.loader.grains(opts)
print __grains__[『id』]
××××××
(4)class salt.client.localclient(c_path=』/etc/salt/master』, mopts=none, skip_perm_errors=false)
localclient類中有很多執行salt命令的函式,一般返回字典
import salt.client
local = salt.client.localclient()
local.cmd(『*』, 『test.fib』, [10])
返回值:
out[23]:
在使用cmd方法時,其中的引數值得注意。
def cmd(
self,
tgt,
fun,
arg=(),
timeout=none,
expr_form=』glob』,
ret=」,
kwarg=none,
**kwargs):
tgt和expr_form:一般expr_form的預設值是『glob』;若tgt是group,expr_form為『nodegroup』;若tgt是id列表,則expr_form為list。具體值如下:
expr_form: the type oftgt
. allowed values:
* ``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
首先local.cmd(『*』,』saltutil.sync_modules』)
在xzr.py中函式:
def echo(text):
return text
然後使用:
local.cmd(『*』,[『xzr.echo』],」kjbdas」)
out[23]:
, 『shuaizhang2-virtualbox』: }
×××××××××××××××××××××××××××××
local.cmd(『*』,』my_test.echo_』,」kjbdas」)
out[26]:
××××××××××××××××××××××××××××××
local.cmd(『*』,』my_test.echo_』,[「kjbdas」])
out[27]:
××××××××××××××××××××××××××××××××
看來在salt的模組中執行模組中的python指令碼中的函式時,乙個方法對應乙個中括號.例如』my_test.echo_』對應引數是[「kjbdas」];
[『xzr.echo』]對應引數是[[「kjbdas」]]
如果是兩個引數的話,引數要[『111111』,』222222』]
SpringBoot呼叫python介面的實現步驟
目錄 springboot作為後端開發框架,有強大且方便的處理能力。但是作為乙個結合資料分析 前台展示的 來說,後端的資料處理模組使用python指令碼要更加方便。axefjqghe本文主要介紹如何利用springboot框架呼叫python指令碼 其實一句話來說就是利用springboot j a...
Python呼叫遠端Socket介面
web應用通訊通常都喜歡用http介面,但不排除直接socket通訊的情況。socket除了server端構建麻煩些 需要考慮很多實際情況 對於呼叫者來說構建個client端其實不比http麻煩多少。usr bin env python coding utf 8 auther linvo impor...
python呼叫有道翻譯介面
摘錄如下 僅供學習 import json import random import time import hashlib import requests import re import os from urllib import parse from urllib import request...