2017-09-26 138 views
0

Ansible没有安装Apache的重写模块。Ansible没有安装Apache重写模块

Ansible任务:

- name: Enable mod_rewrite 
    apache2_module: 
    state: present 
    name: rewrite 

TAKS结果:

TASK [apache : Enable mod_rewrite] ********************************************* 
fatal: [local_vm]: FAILED! => {"changed": false, "failed": true, "msg": "Error executing /usr/sbin/apache2ctl: AH00526: Syntax error on line 33 of /etc/apache2/sites-enabled/mysite.conf:\nInvalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration\n"} 

我注意到,该模块没有启用:

[email protected]:/etc/apache2/mods-enabled$ ls | grep write 
[email protected]:/etc/apache2/mods-enabled$ 

更新#1

这里是mysite.conf的内容:

32: # Redirect to https 
33: RewriteEngine On 
34: RewriteCond %{REQUEST_URI} !^\/lightbox 
+0

mysite.conf的内容是什么?至少在犯罪线附近。 – tedder42

+0

增加了更新1,指出问题出在哪里的第33行。 – TekiusFanatikus

+0

那么问题是什么?似乎Apache抱怨模块不可用。它与Ansible有什么关系?是否启用它从CLI工作,但不是Ansible? – techraf

回答

1

你可以试试这个:

- name: Enable rewrite module 
    apache2_module: 
    name: rewrite 
    state: present 
    ignore_configcheck: True 
+0

我在2.2.2上,该选项无法识别。 – TekiusFanatikus

+0

Ansible 2.3中引入了'ignore_configcheck'选项 –

+0

目前使用Windows Linux子系统(WSL)将脚本运行到Virtualbox/Ubuntu VM上。我似乎在WSL上有最新的Ansible。 – TekiusFanatikus

0

试试这个:

创建.conf文件模板,并添加所需的重写。 (这是Jinja2语法)。

然后,在执行剧本时,内容将包含在生成的Apache VirtualHost文件中。