Salt-Stack 将目录从 salt master 复制到 minion

Salt-Stack 将目录从 salt master 复制到 minion

背景:我一直在努力设置 salt 环境,现在我不仅想分发文件,还想分发目录。我发现最明智的方法是将我想要复制的目录放在/srv/salt/path_to_dir主服务器上,然后使用cp.获取目录命令来分发它。

我做了什么:为了测试设置和命令,我创建了/srv/salt/tmp/foo两个文件并将其放入其中。然后,当我salt minion_name cp.get_dir salt://tmp/foo /tmp/foo在主服务器上运行命令时,有一行输出内容正是minion_name:。有点奇怪的是,除了 minion 名称甚至错误之外没有输出,但没关系,我去检查 minion 以查看是否发生了什么事情。

在 minion 上它没有出现在 中,并且在或中也/tmp/没有新内容。我检查了,但除了我花了一个小时尝试弄清楚为什么我不能使用将递归设置为 true 来分发文件之外什么也没有。/etc/salt//var/cache/salt//var/log/salt/minionfile.copy

我的问题:我做错了什么吗?根据文档,我发现我所做的应该有效。似乎也没有任何错误输出。我是否应该尝试使用其他命令或方法通过 salt 分发包含来自主服务器内容的文件夹?

附加信息:主服务器和所有从属服务器都是 Debian 系统。安装的 salt 版本salt 2014.1.3 (Hydrogen)在主服务器和salt-minion 0.17.5从属salt-minion 2015.5.3服务器上,我已尝试过这种方法。

答案1

我不确定您如何使用模块来做到这一点,我尝试了与您相同的模块并得到了相同的结果,所以可能是错误,但如果您想设置 sls 状态,您可以使用 file.recurse 功能,它看起来像这样:

作为参考,我使用:

  • /srv/salt/test1/init.sls作为我的 sls 文件,
  • 里面test1源码目录testdir
  • 我们的目标我们要复制到的机器是/test

init.sls

/test:
 file.recurse:
  - source: salt://test1/testdir
  - include_empty: True

从那时起你就可以

salt '<targetmachine>' state.sls test1

相关内容