pulse-mind.ansible-role-apache-vhosts
Ansible Role: Apache vhosts
目的
私は geerlingguy.apache ロールを使用しています。それに加えて jdauphant.nginx と viasite-ansible.site ロールも使っています。
jdauphant.nginx はサイトを別々のファイルで管理し、サイトを明示的に削除する機能をサポートしています。
Geerlingguy は コメント で単一の vhosts.conf の目的を説明しました。
role viasite-ansible.site はユーザー作成、nginx、apache、mysql の設定など、複雑なサイト設定を行います。各サイトは別々のロールとして機能するため、私も別々の apache vhosts が必要です。
このロールは、geerlingguy.apache を他の方法で利用できるようにします。
私が見つけた他の "apache-vhosts" ロールは viasite-ansible.site と同じことを行いますが、こちらも複雑すぎます。
機能
- 複数のプレイブックでサイトを追加
- サイトを明示的に削除
- 各サイトに別々のテンプレートを持たせることが可能
制限事項
- Debian、Ubuntu、CentOS のみ
- SSL は未対応(nginx で SSL を設定しています)
問題提起は歓迎します!
使い方
このロールの前に、geerlingguy.apache ロールまたは他の方法で apache をインストールする必要があります。
いくつかの変数名と値は geerlingguy のロールに一致します(デフォルトおよび vars ディレクトリを参照してください)。そのため、二重に定義する必要はありません。
サイトの追加:
サイトの定義は次のようになります:
apache_vhosts_sites:
www.local.dev:
servername: "www.local.dev"
serveralias: "local.dev"
documentroot: "/var/www/html"
extra_parameters: |
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
geerlingguy のものと比較すると:
apache_vhosts_sites:
- servername: "www.local.dev"
serveralias: "local.dev"
documentroot: "/var/www/html"
extra_parameters: |
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
サイト用のカスタムテンプレート:
apache_vhosts_sites:
www.local.dev:
servername: "www.local.dev"
template: "custom.conf.j2"
サイトの削除:
apache_vhosts_remove_sites:
- www.local.dev
例プレイブック
- hosts: all
roles:
- viasite-ansible.apache-vhosts
vars:
apache_vhosts_sites:
foo:
servername: "local.dev"
documentroot: "/var/www/html"
bar:
servername: "local2.dev"
documentroot: "/var/www/html"
templated_site:
template: tests/custom_template.conf.j2
servername: "other.dev"
somevariable: "somevalue"
apache_vhosts_remove_sites:
- baz