遇到了一种情况,我需要将文件从 Salt Master 同步到 Syndic。我在网上搜索,但除了通常的“使用共享文件系统,rsync它们等等”之外,找不到任何真正的解决方案。
这些解决方案可能对其他人来说是一个选择,但对于我的环境来说,这是行不通的,需要 Salt 中的解决方案来做到这一点。
经过搜索和测试,我修改了能找到的最接近的解决方案,并提出了以下方法,使 Syndic 上的 /srv/salt 与 Master 上的内容保持同步:
{% for file in salt['cp.list_master']() %}
/srv/salt/{{ file }}:
file.managed:
- name: /srv/salt/{{ file }}
- source: salt://{{ file }}
- user: salt
- group: salt
- mode: 640
- makedirs: True
{% endfor %}
希望这对其他人有帮助!
使用 Salt 状态镜像文件服务器的最简单方法:
/srv/salt:
file.recurse:
- source: salt://
- clean: true
- keep_symlinks: true
您可能会考虑使用不同的文件服务器后端,这样可以更轻松地共享。