2014-01-20 7 views
2

Я установил git на сервер nfs. Мастер солей автоматически монтирует папку, содержащую репозиторий git при загрузке. Я скопировал файлы .sls, шаблоны и скрипты в каталог git и добавил их в git.«Нет совпадений с данными о файлах или внешних узлах». Настройка gitfs с помощью SaltStack

Я добавил следующее в файл мастер конфигурации, в соответствии с руководством here:

fileserver_backend: 
    - git 

gitfs_remotes: 
    - file:///mnt/git-repo 

Я в сомнении о том, чтобы установить file_roots, но постарались как

- /srv/salt 

и

- /mnt/git-repo 

с таким же результатом: «Нет данных для верхнего файла или внешних узлов ches found "

Версия SaltStack 0.17.4, ОС - SLES 11.2.

Кто-нибудь знает, где я поступил не так?

+0

Не пытайтесь оскорбить вас, но не могли бы вы подтвердить, что есть /mnt/git-repo/top.sls? Можете ли вы также подтвердить, что пользователь, которого вы используете для запуска соли (root по умолчанию), может извлечь из этого репо через ssh (например, git clone ssh: // gitrepoip)? –

+0

Вам не нужно устанавливать 'file_roots', если вы используете gitfs. Кроме того, когда вы используете префикс 'file: //' в 'gitfs_remote', обратите внимание, что он все равно будет клонировать этот репозиторий, поэтому репозиторий должен либо быть репозиторией, либо путь должен указывать на' .git 'папка внутри репо. В принципе, команда 'git clone ' должна работать вне соли. После того, как вы установили эту настройку, вы должны запустить 'salt 'myminion' cp.list_master', чтобы убедиться, что репо фактически вносит его в кеш. – basepi

ответ

-1

Клонирование репозитория дало следующее сообщение «Предупреждение: вы, похоже, клонировали пустой репозиторий». (спасибо @Jason Zhu) Это было сделано, потому что, хотя файлы были добавлены в репозиторий, они не были выполнены.

Для решения задачи I:

  1. удалены file_roots из главного файла конфигурации, так как не требуется при использовании gitfs (спасибо @basepi)

  2. перезапущен соль-мастер, для обеспечения изменений в осилить конфигурационный файл (благодаря @Utah_Dave)

  3. совершил добавленные файлы в хранилище

0

Убедитесь, что у вас есть файл top.sls в корневой папке главной ветви и что вы перезапустили демон мастера соля после изменения основного файла конфигурации.

0

Для решения этой проблемы для меня на самом деле было обновление пакета соляных мастеров, кажется, что их api каким-то образом несовместимо между версией, поэтому более новая солонка-миньон не была правильно синхронизирована с file_roots.

1

Неправильная конфигурация

Этот раздел был неподходящим для меня, так как у меня не было ничего на локальной файловой системе.

fileserver_backend: 
    - git 
    - roots 

Я изменил его:

fileserver_backend: 
    - git 

Отсутствующие GitPython

easy_install GitPython

неправильная конфигурация (GitPython против pygit2)

Моя конфигурация была:

gitfs_provider: gitpython 
gitfs_remotes: 
    - ssh://git.example.com/salt-states.git: 
    - pubkey: /root/.ssh/id_rsa.pub 
    - privkey: /root/.ssh/id_rsa 

Но, глядя на журналы, tail /var/log/salt/master:

2015-02-24 14: 25: 37162 [salt.loaded.int.fileserver.gitfs] [КРИТИЧЕСКАЯ] GitFS параметр аутентификации 'privkey' (из удаленного ssh: //git.example.com/salt-states.git) поддерживается только следующими провайдерами: pygit2. Текущий gitfs_provider - это «gitpython». Для получения дополнительной информации см. Прохождение GitFS в сопроводительной документации.

gitfs_provider: gitpython 
gitfs_remotes: 
    - ssh://git.example.com/salt-states.git 

Все остальное (IdentityFile) задается в /root/.ssh/config.

Кэша загрязнен

я имел оставшиеся данные из предыдущих экспериментов; так что я должен был очистить кэш:

rm -rf /var/cache/salt/*

0

Это может быть, что вы пытаетесь использовать точку монтирования и файл корни в двух разных местах. У меня была аналогичная проблема некоторое время назад: SaltStack and GitFS - No Top file or external nodes data matches found

Моим решением было удалить крепление.

 Смежные вопросы

  • Нет связанных вопросов^_^