ソルトを使用して Web サーバーをブートストラップします。複数の異なるドメインをホストしています。/etc/apache2/sites-available
ドメインごとにファイルを作成します。次に、にシンボリックリンクしsites-enabled
ます。
問題は、ドメインを別のサーバーに移動すると、リンクsites-enabled
が削除されないことです。ドメイン名を変更してデータをそのままにしておくと、old.domain.com と new.domain.com の vhost ファイルが作成されます。最終的には new.domain.com のみになると予想してsites-enabled
いますが、両方のファイルが存在し、作業ドメインはアルファベットに依存します (私は推測します) - どちらの仮想ホストが最初にロードされるか。
ドメインをピラーに保存し、次のような vhost を生成します。
{%- 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 %}
柱にリストされている vhost のみが highstate の後に残るようにする必要があります。最初にフォルダーを空にすることを考えましたが、ハイステートが空中で失敗する可能性があり、追加しようとしたという理由だけで、vhosts なしで残り、他のすべてのドメインが機能しなくなる可能性があるため、危険に感じます。
「この高状態の実行に存在しなかったものをすべて削除する」のようなものを強制する方法はありますか?