SaltStack и GitFS — совпадения данных верхнего файла или внешних узлов не найдены

Вот моя конфигурация /etc/salt/master:

#GitFS
gitfs_provider: pygit2
gitfs_base: DEVELOPMENT
gitfs_env_whitelist:
  - base

fileserver_backend:
  - git
gitfs_remotes:
  - ssh://[email protected]/myrepo/salt-states.git:
    - pubkey: /root/.ssh/my.pub
    - privkey: /root/.ssh/my
    - mountpoint: salt:///srv/salt/salt-states

Вот моя структура каталогов для репо:

.
|-- README.md
|-- formulas
|   `-- test
|       |-- test.sls
`-- top.sls

Вот мой самый простой top.sls:

base:
  '*':
    - test

Если я попытаюсь запустить highstate на своем тестовом узле, я получу:

root@saltmaster:/etc/salt] salt -v '*' state.highstate
Executing job with jid 1234567890
-------------------------------------------

test-minion.domain:
----------
          ID: states
    Function: no.None
      Result: False
     Comment: No Top file or external nodes data matches found.
     Started:
    Duration:
     Changes:

Summary for test-minion.domain
------------
Succeeded: 0
Failed:    1
------------
Total states run:     1
Total run time:   0.000 ms

Я не уверен, почему это не работает, и буду признателен за любую помощь в этом. Я попытался просто применить test.sls, чтобы увидеть, был ли проблема в верхнем файле, но я получил это:

root@saltmaster:/etc/salt] salt -v '*' state.sls test
Executing job with jid 1234567890
-------------------------------------------

test-minion.domain:
    Data failed to compile:
----------
    No matching sls found for 'test' in env 'base'

person Kryten    schedule 10.12.2015    source источник
comment
Отсутствие соответствия sls для «теста» в «базе» env указывает на тот факт, что «тест» не является состоянием, в показанной структуре репо он находится под формулами. Чтобы использовать его как в верхней ссылке на файл, он должен находиться в файле salt/test.sls.   -  person Efren    schedule 03.06.2016


Ответы (2)


У меня была аналогичная проблема, связанная с тем, что кеш не синхронизировался и не обновлялся. Если бы я попытался запустить:

salt-run fileserver.update

Я получил:

[ПРЕДУПРЕЖДЕНИЕ] Файл блокировки обновления присутствует для удаленного gitfs «[email protected]:mention-me/Salt.git», пропуская. Если это предупреждение сохраняется, возможно, процесс обновления был прерван, но блокировка также могла быть установлена ​​вручную. Удаление /var/cache/salt/master/gitfs/7d8d9790a933949777fd5a58284b8850/.git/update.lk или запуск «salt-run cache.clear_git_lock gitfs type=update» позволит продолжать обновления для этого удаленного устройства.

Удаление указанного файла кеша и выполнение вышеуказанной команды устранили проблему.

person edhgoose    schedule 04.05.2016
comment
Спасибо за понимание! - person Kryten; 03.06.2016

Я поговорил с людьми в IRC-солтстеке, и кто-то помог мне решить проблему. Кажется, что добавление точки монтирования все испортило. Кредит идет:

12:20] ==  realname : Thomas Phipps
[12:20] ==  channels : #salt
[12:20] ==  server   : orwell.freenode.net [NL]
[12:20] ==           : is using a secure connection
[12:20] ==  account  : whytewolf
[12:20] == End of WHOIS
person Kryten    schedule 10.12.2015
comment
Удаление точки монтирования помогло? Я попытался удалить конфигурацию gitfs, перезапустить мастер, но проблема осталась. Нужно ли очищать кеш, а также упомянутый ответ @edhgoose? - person Efren; 01.06.2016
comment
Да на оба вопроса - person Kryten; 03.06.2016
comment
Спасибо @pullsumo. У меня не получилось восстановить мастер, наверное слишком много чего удалил, поэтому после переустановки, в версии 2015.5.8, точка монтирования хоть работала, чего стоит. - person Efren; 06.06.2016