Я пишу простой пользовательский модуль и хотел бы получить доступ к данным опоры.
Я проверяю это так (файл salt/_modules/foo.py
):
def bar():
assert 0, __pillar__
файл sls salt/tmp/test_pillar_in_custom_module.sls
:
{{ salt['foo.bar']() }}
И я выполняю это так:
salt-ssh --log-leve=all foohost state.sls tmp.test_pillar_in_custom_module pillar='{systems: [foosys]}' 2> tmp/o
Соответствующая часть tmp/o
:
Traceback (most recent call last):
File "/var/tmp/.root_dcdf8c_salt/salt-call", line 27, in <module>
salt_call()
File "/var/tmp/.root_dcdf8c_salt/pyall/salt/scripts.py", line 431, in salt_call
client.run()
File "/var/tmp/.root_dcdf8c_salt/pyall/salt/cli/call.py", line 57, in run
caller.run()
File "/var/tmp/.root_dcdf8c_salt/pyall/salt/cli/caller.py", line 138, in run
ret = self.call()
File "/var/tmp/.root_dcdf8c_salt/pyall/salt/cli/caller.py", line 237, in call
ret['return'] = self.minion.executors[fname](self.opts, data, func, args, kwargs)
File "/var/tmp/.root_dcdf8c_salt/pyall/salt/executors/direct_call.py", line 12, in execute
return func(*args, **kwargs)
File "/var/tmp/.root_dcdf8c_salt/running_data/var/cache/salt/minion/extmods/modules/foo.py", line 2, in bar
assert 0, __pillar__
AssertionError: {}
Но диктат __pillar__
пуст.
Я читаю документы: https://docs.saltstack.com/en/latest/topics/development/modules/developing.html#pillar
Словарь __pillar__
содержит столбец для соответствующего
миньон.
Хотя __pillar__
определено для каждого модуля, оно заполняется только для
некоторые из них.
В моем пользовательском модуле он пуст.
Есть ли способ доступа к стойке в пользовательском модуле?