pulse-mind.ansible-role-apache-vhosts
Ansible 角色:Apache 虚拟主机
目的
我使用角色 geerlingguy.apache 与角色 jdauphant.nginx 和 viasite-ansible.site。
jdauphant.nginx 将网站管理在单独的文件中,并支持明确移除网站。
Geerlingguy 评论了单个 vhosts.conf 的目的。
角色 viasite-ansible.site 做复杂的网站设置:创建用户、设置 nginx、apache、mysql 等。每个网站作为一个独立的角色,所以我也需要单独的 apache 虚拟主机。
这个角色让使用 geerlingguy.apache 有了不同的方式。
我发现的其他 "apache-vhosts" 角色和 viasite-ansible.site 一样复杂。
特性
- 通过多个 playbook 添加网站
- 明确移除网站
- 每个网站可以有独立的模板
限制
- 仅支持 Debian、Ubuntu 和 CentOS
- 无 SSL(我们在 nginx 上配置 SSL)
欢迎反馈问题!
用法
在使用这个角色之前,您必须先用 geerlingguy.apache 角色或其他方式安装 apache。
一些变量名称和值与 geerlingguy 的角色相匹配(见 default 和 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
示例 Playbook
- 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