2016-10-06 6 views
0

状態ファイルを実行するためにSaltStackの "gitfs"機能を使用しています。 状態ファイルは、 "インクルード"機能を使用して、リポジトリから他の2つの状態ファイルを埋め込みます。gitfsを使用して埋め込みSaltstack状態を実行できません

私のリポジトリには、次の階層があります。

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

私のマスターファイルは以下の通りです:

. . . 
fileserver_backend: 
    - git 

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

塩/ DIR1/DIR3/init.sls次のものが含まれます。

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

salt-masterを再起動してから salt-run fileserver.file_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 

リポジトリをsalt-masterの再起動時に "/ var/cache/salt/master/gitfs/refs/base/salt"パスにキャッシュされます。 しかし、私は問題があなたのinclude宣言で最も可能性が高い代わりに

What could be the reason for this issue?

答えて

0

"DIR2/DIR5/init.sls" の "DIR2/DIR5/initを/ SLS" を発見しました。 Saltのincludeモジュールは、Pythonモジュールと同様のSLSファイルを扱います。たとえば、SLSファイルfoo/bar/baz.slsfoo.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

関連する問題