2017-09-26 119 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文件中。