salt的python介面呼叫

2021-06-29 16:24:30 字數 2710 閱讀 9838

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...