Apache VirtualHost线的Ansible regexp

时间:2017-01-03 06:14:42

标签: ansible

我想使用ansible将<VirtualHost *:80>替换为我的apache配置文件中的<VirtualHost *:443>。我该怎么办?我在下面试过,但没有帮助:

- name: Enable SSL port
  replace: dest="/etc/apache2/sites-enabled/000-default.conf"
           regexp='^<VirtualHost *:80>'
           replace='<VirtualHost *:443>'
  become: true

1 个答案:

答案 0 :(得分:1)

由于*中的regexp(正则表达式重复标记),它不起作用。您应该使用\对其进行转义,以匹配目标文件中的*字符:

regexp='^<VirtualHost \*:80>'

然而:

  • 使用Ansible的replace模块编辑Apache配置文件相当麻烦。 Apache已经使您可以轻松地将配置放在单独的文件中,自动读取和组合它们。请改用copytemplate;

  • 不要将配置文件直接保存到sites-enabled,它们应存储在sites-available中,并且sites-enabled符号链接(这可能与您无关,但是这适用于Apache的a2ensitea2dissite命令。