我遇到了盐文档无法帮助我解决的难题。我正在尝试从 git repo 获取文件,而不是在 sls 中管理文件。我已经通过以下方式配置了主控:
gitfs_provider: pygit2
fileserver_backend:
- git
- roots
file_roots:
base:
- /srv/salt/
dev:
- /srv/salt/dev/
int:
- /srv/salt/int/
qa:
- /srv/salt/qa/
stg:
- /srv/salt/stg/
prod:
- /srv/salt/prod/
我指定了一个遥控器:
gitfs_remotes:
- https://server.com/path/to/repo.git:
- user: salt
- password: salt
- root: path/to/file/in/git
- mountpoint: salt://dev
在我的 sls 中,我有以下内容,并且只有条目:
jbiam.yaml:
file.managed:
- name: /srv/salt/dev/files/application.yml
- source: salt://application.yml
- user: root
- group: root
- mode: 655
- template: jinja
- defaults:
bla: "bla"
我为开发环境执行 highstate:
salt '*' state.highstate env=dev
现在,无论我在源中放入什么,路径明智,它永远不会找到我现在丢失的文件....如果我将文件添加到 salt fs 的根目录中,事情会按预期工作。但是对于 gitfs,它只是不起作用。如果我从 git remote config 中删除挂载点并在没有环境的情况下运行 highstate,事情会按预期工作,但是一旦我引入环境,它就找不到文件
当我运行 salt-run fileserver.file_list 时,我看到列出的文件:
salt-run fileserver.file_list
[DEBUG ] Configuration file path: /etc/salt/master
[WARNING ] Insecure logging configuration detected! Sensitive data may be logged.
[DEBUG ] LazyLoaded fileserver.file_list
[DEBUG ] Reading configuration from /etc/salt/master
[DEBUG ] Guessing ID. The id can be explicitly set in /etc/salt/minion
[DEBUG ] Found minion id from generate_minion_id(): bla
[DEBUG ] Reading configuration from /etc/salt/master
[DEBUG ] MasterEvent PUB socket URI: /var/run/salt/master /master_event_pub.ipc
[DEBUG ] MasterEvent PULL socket URI: /var/run/salt/master /master_event_pull.ipc
[DEBUG ] Initializing new IPCClient for path: /var/run/salt/master/master_event_pull.ipc
[DEBUG ] Sending event - data = {'fun': 'runner.fileserver.file_list', 'jid': '20160830220634591807', 'user': 'root', '_stamp': '2016-08-31T02:06:35.031018'}
[DEBUG ] pygit2 gitfs_provider enabled
[DEBUG ] LazyLoaded git.envs
[DEBUG ] LazyLoaded roots.envs
[DEBUG ] LazyLoaded nested.output
- .git/HEAD
- .git/config
- .git/description
- .git/hooks/applypatch-msg.sample
- .git/hooks/commit-msg.sample
- .git/hooks/post-update.sample
- .git/hooks/pre-applypatch.sample
- .git/hooks/pre-commit.sample
- .git/hooks/pre-push.sample
- .git/hooks/pre-rebase.sample
- .git/hooks/prepare-commit-msg.sample
- .git/hooks/update.sample
- .git/index
- .git/info/exclude
- .git/logs/HEAD
- .git/logs/refs/heads/master
- .git/logs/refs/remotes/origin/HEAD
- .git/objects/pack/pack-280ac298a92c1fde082a7d7d84da86d855720a3a.idx
- .git/objects/pack/pack-280ac298a92c1fde082a7d7d84da86d855720a3a.pack
- .git/packed-refs
- .git/refs/heads/master
- .git/refs/remotes/origin/HEAD
- .gitignore
- dev/application.yml
- dev/bootstrap.yml
但是,当我运行它时我无法引用它:
site.com:
----------
ID: /srv/salt/dev/files/application.yml
Function: file.managed
Result: False
Comment: Source file salt://application.yml not found
Started: 22:31:29.496613
Duration: 33.199 ms
Changes:
Summary for site.com
------------
Succeeded: 0
Failed: 1
------------
Total states run: 1
先感谢您