Size: a a a

2020 February 14

MK

Maksim Kavpush in Saltstack
спасибо. пойду раскуривать тему.
источник

MK

Maksim Kavpush in Saltstack
пытался делать проще:
fire_roots:
 base:
   - /srv/salt
   - /srv/winrepo
 test:
   - /salt/test
   - /srv/winrepo
winrepo_dir_ng: /srv/winrepo/win/repo_ng
winrepo_remotes_ng:
 - 'https://gitlab/salt/salt-winrepo-ng.git'
источник

MK

Maksim Kavpush in Saltstack
не взлетело
источник

KN

Konstantin Nikolaev in Saltstack
🔥🔥🔥
куча интересного, например loop.until_no_eval state
источник

ВЕ

Вячеслав Ефимов in Saltstack
Доброе утро,
Сейчас тестирую кластер сальта на синдиках с etcd.

Заметил, что если устройство не в сети, выдается эксепшен.

jid: 20200214105302360082
Traceback (most recent call last):
 File "/usr/lib64/python2.7/logging/__init__.py", line 861, in emit
[ERROR   ] Unexpected request failure, re-raising.
Traceback (most recent call last):
 File "/usr/lib/python2.7/site-packages/etcd/client.py", line 855, in wrapper
   params=params, timeout=timeout)
 File "/usr/lib/python2.7/site-packages/etcd/client.py", line 923, in api_execute
   preload_content=False)
 File "/usr/lib/python2.7/site-packages/urllib3/request.py", line 76, in request
   method, url, fields=fields, headers=headers, **urlopen_kw
 File "/usr/lib/python2.7/site-packages/urllib3/request.py", line 97, in request_encode_url
   return self.urlopen(method, url, **extra_kw)
 File "/usr/lib/python2.7/site-packages/urllib3/poolmanager.py", line 330, in urlopen
   response = conn.urlopen(method, u.request_uri, **kw)
 File "/usr/lib/python2.7/site-packages/urllib3/connectionpool.py", line 672, in urlopen
   chunked=chunked,
 File "/usr/lib/python2.7/site-packages/urllib3/connectionpool.py", line 437, in _make_request
   httplib_response.length,
 File "/usr/lib64/python2.7/logging/__init__.py", line 1155, in debug
   self._log(DEBUG, msg, args, **kwargs)
 File "/usr/lib/python2.7/site-packages/salt/log/setup.py", line 343, in _log
   self, level, msg, args, exc_info=exc_info, extra=extra
 File "/usr/lib64/python2.7/logging/__init__.py", line 1286, in _log
   self.handle(record)
 File "/usr/lib64/python2.7/logging/__init__.py", line 1296, in handle
   self.callHandlers(record)
 File "/usr/lib64/python2.7/logging/__init__.py", line 1336, in callHandlers
   hdlr.handle(record)
 File "/usr/lib64/python2.7/logging/__init__.py", line 759, in handle
   self.emit(record)
 File "/usr/lib64/python2.7/logging/handlers.py", line 430, in emit
   logging.FileHandler.emit(self, record)
 File "/usr/lib64/python2.7/logging/__init__.py", line 957, in emit
   StreamHandler.emit(self, record)
 File "/usr/lib64/python2.7/logging/__init__.py", line 889, in emit
   self.handleError(record)
 File "/usr/lib64/python2.7/logging/__init__.py", line 812, in handleError
   None, sys.stderr)
 File "/usr/lib64/python2.7/traceback.py", line 125, in print_exception
   print_tb(tb, limit, file)
 File "/usr/lib64/python2.7/traceback.py", line 69, in print_tb
   line = linecache.getline(filename, lineno, f.f_globals)
 File "/usr/lib64/python2.7/linecache.py", line 14, in getline
   lines = getlines(filename, module_globals)
 File "/usr/lib64/python2.7/linecache.py", line 41, in getlines
   return updatecache(filename, module_globals)
RuntimeError: maximum recursion depth exceeded
[ERROR   ] An un-handled exception was caught by salt's global exception handler:
SaltCacheError: There was an error getting the key "minions": maximum recursion depth exceeded
Traceback (most recent call last):
 File "/usr/bin/salt", line 10, in <module>
   salt_main()
 File "/usr/lib/python2.7/site-packages/salt/scripts.py", line 516, in salt_main
   client.run()
 File "/usr/lib/python2.7/site-packages/salt/cli/salt.py", line 194, in run
   for full_ret in cmd_func(**kwargs):
 File "/usr/lib/python2.7/site-packages/salt/client/__init__.py", line 746, in cmd_cli
   **kwargs):
 File "/usr/lib/python2.7/site-packages/salt/client/__init__.py", line 1508, in get_cli_event_returns
   connected_minions = salt.utils.minions.CkMinions(self.opts).connected_ids()
 File "/usr/lib/python2.7/site-packages/salt/utils/minions.py", line 640, in connected_ids
   search = self.cache.list('minions')
 File "/usr/lib/python2.7/site-packages/salt/cache/__init__.py", line 244, in list
   return self.modules[fun](bank, **self._kwargs)
 File "/usr/lib/python2.7/site-packages/salt/cache/etcd_cache.py", line 205, in ls
   bank, exc
SaltCacheError: There was an error getting the key "minions": maximum recursion depth exceeded
Traceback (most recent call last):
источник

ВЕ

Вячеслав Ефимов in Saltstack

 File "/usr/bin/salt", line 10, in <module>
   salt_main()
 File "/usr/lib/python2.7/site-packages/salt/scripts.py", line 516, in salt_main
   client.run()
 File "/usr/lib/python2.7/site-packages/salt/cli/salt.py", line 194, in run
   for full_ret in cmd_func(**kwargs):
 File "/usr/lib/python2.7/site-packages/salt/client/__init__.py", line 746, in cmd_cli
   **kwargs):
 File "/usr/lib/python2.7/site-packages/salt/client/__init__.py", line 1508, in get_cli_event_returns
   connected_minions = salt.utils.minions.CkMinions(self.opts).connected_ids()
 File "/usr/lib/python2.7/site-packages/salt/utils/minions.py", line 640, in connected_ids
   search = self.cache.list('minions')
 File "/usr/lib/python2.7/site-packages/salt/cache/__init__.py", line 244, in list
   return self.modules[fun](bank, **self._kwargs)
 File "/usr/lib/python2.7/site-packages/salt/cache/etcd_cache.py", line 205, in ls
   bank, exc
salt.exceptions.SaltCacheError: There was an error getting the key "minions": maximum recursion depth exceeded
источник

ВЕ

Вячеслав Ефимов in Saltstack
Это же не нормально?
источник

OM

Omega M in Saltstack
Konstantin Nikolaev
Странно почему salt пытается при выполнении import_yaml ещё и джинжа код там отрендерить, но видимо это фича такая.

Как вариант, сделай свой Custom execution module: https://docs.saltstack.com/en/latest/ref/modules/index.html#writing-execution-modules

В который запихай вот этот код: https://stackoverflow.com/a/9769454 и вызывай потом в салте {{ salt.include_file('path_to/file.txt') }}
Плюс код который определяет корень pillar'ов, чтобы путь до path_to/file.txt искалься от него
Возьму на вооружение. Спасибо.
источник

OM

Omega M in Saltstack
Konstantin Nikolaev
Блин позже дошло до меня, что это всё работаеть не будет т.к. у тебя в test.yaml такой же как у Джинжи код GO темплейта который, нужно лишь только там в raw/endraw запихивать :(
Угу. Но через модуль можно наверно его как raw заимпортить. Я как нибудь поэксперементирую.
источник

OM

Omega M in Saltstack
Рестрикшены на майн и https://salt.tips/whats-new-in-salt-neon/#module-calls-in-unless-onlyif меня прям порадовали :)
источник

KN

Konstantin Nikolaev in Saltstack
Omega M
Угу. Но через модуль можно наверно его как raw заимпортить. Я как нибудь поэксперементирую.
Да, а потом, там, куда ты его заимпортил, будет опять Jinja рендер пиллары считывать и опять свалится
источник

OM

Omega M in Saltstack
Хмм
источник

KN

Konstantin Nikolaev in Saltstack
вот это я осознал позже...
источник

OM

Omega M in Saltstack
Замкнутый круг :)
источник

KN

Konstantin Nikolaev in Saltstack
а ты же куда импортить будешь уже не можешь написать:
{%- raw %}
{{ salt.import_file('file.yaml' }}
{%- endraw %}

Всмысле можешь, но salt.import_file работать уже не будет, т.к. он внутри же raw блока
источник

OM

Omega M in Saltstack
Угу. Я так пробывал уже :)
источник

OM

Omega M in Saltstack
Да ладно я в конце перенес вайл на сторону стэйта и там его файл мэнэджу.
источник

KN

Konstantin Nikolaev in Saltstack
Тоже с таким же сталкивался и в итоге так же с помощью file.managed без включения Jinja рендеринга
источник

GG

George Gaál in Saltstack
источник

GG

George Gaál in Saltstack
Собрал 3000-й salt-ssh на дебиане
источник