Модуль замены ANSIB не работает должным образом
Моя сборная игра работает для меня, чтобы раскомментировать определенные строки в файле.conf, но она не работает для одной конкретной строки и не вносит никаких изменений.
ниже моя часть файла.conf.
#<VirtualHost *:443>
#SSLEnable
#Header always set Strict-Transport-Security "max-age=31536000 includeSubDomains; preload"
#</VirtualHost>
Ожидаемый результат
<VirtualHost *:443>
SSLEnable
#Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</VirtualHost>
ниже моя игра
- name: uncomment virtualhost starting line
replace:
path: /opt/conf/httpd.conf
regexp: '^#(.*<VirtualHost *:443>.*)'
replace: '\1'
- name: uncomment virtualhost end line
replace:
path: /opt/conf/httpd.conf
regexp: '^#(.*</VirtualHost>.*)'
replace: '\1'
Здесь моя конечная строка виртуального хоста становится некомментированной, но стартовой линии нет... не могли бы вы привести меня сюда.....
2 ответа
Решение
* - это специальный символ в регулярном выражении, это подстановочный знак.
Замените первое задание следующим (я изменил только параметр regexp):
- name: uncomment virtualhost starting line
replace:
path: /opt/conf/httpd.conf
regexp: '^#(.*<VirtualHost \*:443>.*)'
replace: '\1'
Попробуй сбежать *
в *:443
, В противном случае это будет интерпретировано как контрольный символ для регулярного выражения:
regexp: '^#(.*<VirtualHost \*:443>.*)'