首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python和salt堆栈错误

问使用python和salt堆栈错误
EN

Stack Overflow用户
提问于 2014-01-12 14:45:05
回答 1查看 268关注 0票数 1

我正在用Python编写一个小程序,我得到了一个错误

代码语言:javascript
复制
import salt.client
SnakeInSalt = salt.client.LocalClient()
SnakeInSalt.cmd('*',test.ping)

错误:

代码语言:javascript
复制
python test.py 
Traceback (most recent call last):
File "test.py", line 4, in <module>
SnakeInSalt.cmd('*',test.ping)
NameError: name 'test' is not defined

如果我从命令行运行salt,它就能工作。

代码语言:javascript
复制
> sudo salt '*' test.ping

> [sudo] password for z: 

> z-ThinkPad:
> True
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-07 18:37:02

我可以假设这不再是你需要回答的问题了吗?(无论如何,我都要回答)

当您运行sudo salt '*' test.ping时,您将在模块测试中运行内建函数ping。要查看可用模块的列表,请使用sudo salt '*' sys.list_modules test。您可以通过键入salt '*' sys.list_funtions test来查看该模块中的函数列表。命令sudo salt '*' test.ping应该适用于世界上的每个salt设置,而不是对您编写的任何自定义状态或模块的测试。

您的错误是因为您使用错误的语法,并且您调用的是cmd模块而不是测试模块。您的代码应该如下所示:

代码语言:javascript
复制
import salt.client
SnakeInSalt = salt.client.LocalClient()
SnakeInSalt.cmd('*', 'test.ping')

唯一的区别是test.ping需要用引号括起来(双引号或单引号)。您可以引用https://docs.saltstack.com/en/latest/ref/clients/#salt.client.LocalClient.cmd来查看.cmd()可用的所有参数。您所缺乏的知识是cmd需要第二个参数fun (函数的缩写)需要一个字符串。这将不会为你转换,所以你需要用引号包围它。

您还可以引用https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.test.html#salt.modules.test.ping来查看测试模块的ping函数所需的参数。扰流板提醒...the的答案是零,但看起来你已经知道了。

干杯!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21075967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档