Могу ли я считать, что это уже не вопрос, на который вы нуждаетесь? (Я собираюсь ответить на него в любом случае)
При запуске sudo salt '*' test.ping
вы выполняете встроенную функцию с именем ping в модульном тесте. Чтобы просмотреть список доступных модулей, используйте sudo salt '*' sys.list_modules test
. Вы можете просмотреть список функций в этом модуле, набрав salt '*' sys.list_funtions test
. Команда sudo salt '*' test.ping
должна работать для каждой конфигурации солей в мире и не является проверкой какого-либо настраиваемого состояния или модуля, который вы написали.
Ваш ломается, потому что вы используете неправильный синтаксис, и вы вызываете модуль cmd вместо тестового модуля. Ваш код должен выглядеть следующим образом:
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
(short for function) должен быть строкой. Это не будет конвертировано для вас, поэтому вам нужно окружить его кавычками.
Вы также можете обратиться к https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.test.html#salt.modules.test.ping, чтобы узнать, какие аргументы требуются функцией ping тестового модуля. Предупреждение о спойле ... ответ - нет, но похоже, что вы уже это знали.
CHEERS!
Ответьте им в любом случае. 99% глаз - у не-акитатора (ОП) – Drew