PeterMosmans.apache2
Ansible 角色:Apache2
该角色在 Debian 和 Ubuntu 服务器上安装和配置 Apache 2 网页服务器。主要目的是 加强默认的 Apache 安装。它会修改默认的 Apache 配置,并禁用和启用特定模块。此外,它还可以部署网站配置文件、SSL 证书及相应的私钥。
通过将 apache2_php
标志设置为 true,可以安装和配置 PHP。
请注意,将 apache2_php
标志设置为 false 并不会删除或禁用 PHP。可以通过将 PHP 模块添加到 apache2_modules_disabled
列表中来完成此操作。
要求
安装 ufw(简单防火墙,iptables 的前端)。
角色变量
可用的变量如下,带有默认值。
apache2_default:当为 true 时,默认站点将 不会 被禁用,并且 /var/www/html
不会 被删除。如果未指定或为 false,则默认站点将被禁用,并且 /var/www/html
将被删除。
apache2_default: false
默认情况下,此值未指定。
apache2_modules_disabled:一个包含将默认禁用的 Apache 模块的列表。默认值可以在 defaults/main.yml
中找到。
apache2_modules_disabled:
- autoindex
- authn_anon
- cgi
- dav
- env
- negotiation
- setenvif
- status
- userdir
apache2_modules_enabled:一个包含将默认启用的 Apache 模块的列表。默认值可以在 defaults/main.yml
中找到。
apache2_modules_enabled:
- alias
- auth_digest
- authz_host
- deflate
- dir
- headers
- reqtimeout
- rewrite
- ssl
apache2_php:当为 true 时,还会安装 PHP,包括 Apache 的 PHP 模块。
apache2_php: false
apache2_php_version:PHP 版本。默认值可以在 defaults/main.yml
中找到。
apache2_php_version: 7.0
如果安装 PHP,将会将 php.ini
部署到 /etc/php/[apache2_php_version]/apache2/php.ini
。这是一个使用大量可自定义模板变量的模板。默认值可以在 defaults/main.yml
中找到。
apache2_php_allow_url_fopen: "Off"
apache2_php_allow_url_include: "Off"
apache2_php_assert_active: "0"
apache2_php_default_charset: "\"UTF-8\""
apache2_php_disable_functions: "fsockopen,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriorit,stream_socket_client"
apache2_php_display_errors: "Off"
apache2_php_display_startup_errors: "Off"
apache2_php_enable_dl: "Off"
apache2_php_expose_php: "Off"
apache2_php_log_errors: "On"
apache2_php_mail_add_x_header: "Off"
apache2_php_open_basedir: "/dev/urandom:/var/www"
apache2_ports:Apache 将监听的端口列表。如果未定义此变量,将使用 80 端口(和 443 端口)。示例:
apache2_ports:
- 80
- 8000
apache2_security_conf:将默认应用的 security.conf 设置列表。默认值可以在 defaults/main.yml
中找到。
apache2_security_conf:
- name: "Header set X-Content-Type-Options:"
value: "\"nosniff\""
- name: "Header set X-Frame-Options:"
value: "\"sameorigin\""
- name: "ServerName"
value: "{{ ansible_fqdn }}"
- name: "ServerTokens"
value: "Prod"
- name: "ServerSignature"
value: "Off"
- name: "TraceEnable"
value: "Off"
apache2_websites:一个可选的 Apache 配置文件列表。src
指向 Jinja2 文件,dest
将是生成的网页配置文件。示例:
apache2_websites:
- src: mywebsited.conf.j2
name: mywebsite.conf
默认情况下,此列表为空。
ssl_certificates:一个可选列表,包含 x.509 SSL 证书的位置(src
)和名称(name
)。请注意,位置是相对于 apache2 role/files
子文件夹的。例如,如果要包含来自安全存储路径的证书,请使用以下:
ssl_certificates:
- src: /secure/storage/path
name: www.mysite.com.cer
默认情况下,此列表为空。
ssl_keys:一个可选列表,包含私钥的位置(src
)和名称(name
)。请注意,位置是相对于 apache2 role/files
子文件夹的。例如,如果要包含来自安全存储路径的密钥,请使用以下:
ssl_keys:
- src: /secure/storage/path
name: www.mysite.com.key
默认情况下,此列表为空。
www_folder:默认根目录,用于存储网站目录。
www_folder: /var/www
请注意,此角色不模板化 Apache 配置,它复制配置文件。但它确实模板化 PHP。
依赖关系
无。
示例剧本
- hosts: all
become: yes
become_method: sudo
roles:
- role: PeterMosmans.apache2
该示例将安装并加强 Apache。
- hosts: all
become: yes
become_method: sudo
roles:
- role: PeterMosmans.apache2
apache2_websites:
- src: .
name: mywebsite.conf
vars:
apache2_php: true
该示例将安装和加强 Apache,安装和加强 PHP,从文件夹 roles/apache2/files
部署文件 mywebsite.conf
并启用该网站。默认网站将被禁用,并且 /var/www/html
将被删除。
许可证
GPLv3
作者信息
创建者:彼得·莫斯曼。