2016-10-06 8 views
0

Я работаю с функцией «gitfs», чтобы выполнить файл состояния. Файл состояния использует функцию «включить» для вставки других двух файлов состояния из репозитория.Не удалось выполнить встроенное состояние Saltstack с помощью gitfs

Мой репозиторий имеет следующую иерархию:

salt 
    - dir1 
      - dir3/init.sls 
      - dir4/init.sls 
    - dir2 
      - dir5/init.sls 

Мой мастер-файл, как показано ниже:

. . . 
fileserver_backend: 
    - git 

gitfs_remotes: 
    - https://[email protected].org/path/to/repo.git 
. . . 

Соль/dir1/DIR3/init.sls содержит следующее:

include: 
    - salt/dir2/dir5/init.sls 
    - salt/dir1/dir4/init.sls 
. . . 

При перезапуске солевого мастера, а затем выполняется файл соленой воды filefile.list salte nv = base backend = git показывает мне все файлы из репозитория. Но работает соль '' state.apply salt.dir1.dir3 -l отлаживать Я получаю следующее сообщение об ошибке:

[ERROR ] Data passed to highstate outputter is not a valid highstate return: {'<minion-id>': ['Specified SLS salt/dir2/dir5/init.sls in saltenv base is not available on the salt master or through a configured fileserver', 'Specified SLS salt/dir1/dir4/init.sls in saltenv base is not available on the salt master or through a configured fileserver']} 

конфигурации моей системы заключаются в следующем:

$ salt --versions-report 

Salt Version: 
      Salt: 2016.3.3 

Dependency Versions: 
      cffi: Not Installed 
     cherrypy: 3.2.2 
     dateutil: 1.5 
      gitdb: 0.5.4 
     gitpython: 0.3.2 RC1 
      ioflo: Not Installed 
     Jinja2: 2.7.2 
     libgit2: Not Installed 
     libnacl: Not Installed 
     M2Crypto: Not Installed 
      Mako: 0.9.1 
    msgpack-pure: Not Installed 
msgpack-python: 0.3.0 
    mysql-python: 1.2.3 
     pycparser: Not Installed 
     pycrypto: 2.6.1 
     pygit2: Not Installed 
     Python: 2.7.6 (default, Jun 22 2015, 17:58:13) 
    python-gnupg: Not Installed 
     PyYAML: 3.10 
      PyZMQ: 14.0.1 
      RAET: Not Installed 
      smmap: 0.8.2 
     timelib: Not Installed 
     Tornado: 4.2.1 
      ZMQ: 4.0.5 

System Versions: 
      dist: Ubuntu 14.04 trusty 
     machine: x86_64 
     release: 3.13.0-91-generic 
     system: Linux 
     version: Ubuntu 14.04 trusty 

Репозиторий получает кеширование в пути «/ var/cache/salt/master/gitfs/refs/base/salt» при перезапуске солевого мастера. Но я нашел "dir2/dir5/INIT/СЛС" вместо "dir2/dir5/init.sls"

What could be the reason for this issue?

ответ

0

Проблема, скорее всего, в вашем include декларации. Модуль Salt's include обрабатывает файлы SLS, подобные модулям Python. Например, вы должны ссылаться на файл SLS foo/bar/baz.sls как foo.bar.baz.

Кроме того, файл init.sls получает специальную обработку и позволяет обрабатывать весь каталог как модуль. Например, foo.bar.baz будет включать либо foo/bar/baz.sls, либо foo/bar/baz/init.sls (в зависимости от того, какой из них фактически существует).

В заключение, ваше include заявление должно выглядеть следующим образом:

include: 
    - salt.dir2.dir5 
    - salt.dir1.dir4 
+0

Спасибо, Helmbert. Как получить доступ к файлу dir2/dir5/abc.conf? Должно быть dir2.dir5.abc.conf – shrikant