从Python代码获取highstate输出

1 投票
1 回答
710 浏览
提问于 2025-04-18 18:28

我刚接触Salt,想知道怎么用Python获取state.highstate的输出。能不能用LocalClient把输出显示成字符串?我好像需要在Salt里调用salt.output.highstate.output,但我不知道怎么在Python中做到这一点。

这是我尝试过的:

import salt.client
local = salt.client.LocalClient()
ret = local.cmd('*', 'output.highstate.output')

我得到的返回结果只是说output.highstate.output不可用。有没有其他方法可以直接从Python代码中获取输出呢?谢谢。

相关问题:

1 个回答

2

有很多方法可以通过Python与Salt进行交互。一般来说,它会给你一个字典的生成器,但不会帮你格式化这些数据。

其他的方法似乎没有详细的文档说明——如果可以的话,最好还是使用local.cmd()这个方法。

下面是cmd_full_return的一个例子(来源):

源代码

from pprint import pprint
import salt.client
local = salt.client.LocalClient()
pprint( local.cmd_full_return(
    '*', 'test.ping', verbose=True,
    ) )

输出结果

Executing job with jid 20140825132240132013
-------------------------------------------

{'palabras': {'ret': True, 'success': True}}

撰写回答