Salt top.sls не обновляется на `salt-run fileserver.update` с помощью gitfs

У меня есть единственный солевой миньон, подключенный к соляному мастеру. Недавно я переименовал большой .sls из webserver.sls в jetty.sls. Я использую бэкэнд gitfs с pygit2 и ssh. Я включил только серверную часть gitfs. / etc / salt / master :

fileserver_backend:
#  - roots
  - git

gitfs_provider: pygit2
gitfs_remotes:
  - git@bitbucket.org:Groomblecom/[repo].git:
    - pubkey: /root/salt-credentials/id_rsa.pub
    - privkey: /root/salt-credentials/id_rsa

Однако всякий раз, когда я запускаю salt-run fileserver.update && salt '*' state.highstate , я получаю сообщение об ошибке:

Data failed to compile:
----------
    No matching sls found for 'webserver' in env 'base'

Запуск salt '*' state.show_sls jetty дает ожидаемый (длинный) результат, соответствующий тому, что я вижу в репозитории bitbucket. Запуск salt '*' state.show_top дает следующее:

----------
    base:
        - common
        - ingress
        - webserver

Это несовместимо с top.sls в репозитории bitbucket:

base:
  '*':
    - common
  '*ingress*':
    - ingress
    - jetty
    - nginx

Запуск salt-run fileserver.update или rm -rf / var / cache / salt / * && service salt-master restart не влияет на выходные данные.

Я хотел бы знать, есть ли известная ошибка (и способ ее решения) для это поведение, если есть способ принудительно очистить настоящий кеш, или если я допустил ошибку конфигурации.

4
задан 27 November 2016 в 21:12
2 ответа

Причина ошибки в том, что соль рассматривает все ветви, а затем объединяет все (!) Ветки для компиляции окончательного файла top.sls. У меня была старая ветка, которая была парой коммитов за мастером, и поэтому все еще ссылалась на webserver.sls. Решение довольно простое: просто добавьте следующее в / etc / salt / master :

gitfs_env_whitelist:
  - master

Или, если ваша основная ветвь не является главной, замените master именем вашей ветки.

2
ответ дан 3 December 2019 в 03:40

Причина в том, что соль объединяет все ветви для компиляции окончательного файла top.sls. Я смог исправить это, добавив это в / etc / salt / master :

gitfs_env_whitelist:
  - base

Поскольку Salt отображает ветвь master в среду base (спасибо to gitfs_base ), правильный env в белый список - это base , а не master .

1
ответ дан 3 December 2019 в 03:40

Теги

Похожие вопросы