2024-05-13 22:03:00 发布
网友
我正在用Python编写一个带有SaltStack API的小程序,但遇到了一个错误
import salt.client SnakeInSalt = salt.client.LocalClient() SnakeInSalt.cmd('*',test.ping)
错误:
如果我从命令行运行salt,它可以工作
salt
> sudo salt '*' test.ping > [sudo] password for z: > z-ThinkPad: > True
我能假设这不再是你需要回答的问题吗?(不管怎样我都会回答的)
当您运行sudo salt '*' test.ping时,您正在模块测试中运行名为ping的内置函数。要查看可用模块的列表,请使用sudo salt '*' sys.list_modules test。您可以通过键入salt '*' sys.list_funtions test查看该模块中的函数列表。命令sudo salt '*' test.ping应该适用于世界上的每个salt设置,而不是对您编写的任何自定义状态或模块的测试。在
sudo salt '*' test.ping
sudo salt '*' sys.list_modules test
salt '*' sys.list_funtions test
由于使用了错误的语法,并且调用的是cmd模块而不是test模块,所以您的代码被破坏了。您的代码应该如下所示:
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(函数的缩写)必须是字符串。这不会为您转换,所以您需要将其括在引号中。在
test.ping
.cmd()
fun
您还可以引用https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.test.html#salt.modules.test.ping,以查看测试模块的ping函数需要哪些参数。扰流板提醒…答案是没有,但看起来你已经知道了。在
干杯!在
我能假设这不再是你需要回答的问题吗?(不管怎样我都会回答的)
当您运行
sudo salt '*' test.ping
时,您正在模块测试中运行名为ping的内置函数。要查看可用模块的列表,请使用sudo salt '*' sys.list_modules test
。您可以通过键入salt '*' sys.list_funtions test
查看该模块中的函数列表。命令sudo salt '*' test.ping
应该适用于世界上的每个salt设置,而不是对您编写的任何自定义状态或模块的测试。在由于使用了错误的语法,并且调用的是cmd模块而不是test模块,所以您的代码被破坏了。您的代码应该如下所示:
唯一的区别是
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函数需要哪些参数。扰流板提醒…答案是没有,但看起来你已经知道了。在
干杯!在
相关问题 更多 >
编程相关推荐