我们使用 salt 来引导我们的 Web 服务器。我们托管多个不同的域。/etc/apache2/sites-available
我为我们的每个域创建一个文件。然后我将它符号链接到sites-enabled
.
问题是,如果我将域移动到不同的服务器,sites-enabled
则不会删除来自的链接。如果我更改域名并将数据保留在原位 - 那么我就有 old.domain.com 和 new.domain.com 虚拟主机文件。我希望最终只有 new.domain.com in sites-enabled
,但是两个文件都在那里,并且工作域取决于字母表(我猜)-首先加载哪个虚拟主机。
我将域存储在支柱中并生成虚拟主机,例如:
{%- for site in pillar.sites %}
/etc/apache2/sites-available/{{ site.name }}:
file:
- managed
- source: salt://apache/conf/sites/site
- template: jinja
- require:
- file: /etc/apache2/sites-available/default
- cmd: apache_rewrite_enable
- defaults:
site_name: "{{ site.name }}"
/etc/apache2/sites-enabled/{{ site.name }}:
file.symlink:
- target: /etc/apache2/sites-available/{{ site.name }}
- require:
- file: /etc/apache2/sites-available/{{ site.name }}
{% endfor %}
我需要确保只有在柱子中列出的虚拟主机才能在高状态之后保留。我考虑过先清空文件夹,但这感觉很危险,因为 highstate 可能会在半空中失败,我将失去任何虚拟主机 - 破坏所有其他域 - 只是因为我试图添加一个。
有没有办法强制执行类似:“删除此高状态运行中不存在的所有内容”?