Я использую Ansible для автоматической конфигурации apache, в которой у меня есть собственный app.conf. Теперь у меня есть app.conf на недоступном сервере, и я хочу, чтобы он заменил существующий IP-адрес удаленным IP-адресом. мой app.conf выглядит так.
<VirtualHost \
10.10.10.10:80 \
10.10.10.10:80 \
>
DocumentRoot /var/www/application/httpdocs
ServerName lists
ServerAlias lists.*
UseCanonicalName Off
ScriptAlias /mailman/ /usr/lib/mailman/cgi-bin/
Alias /icons/ /var/www/icons/
Alias /pipermail/ /var/lib/mailman/archives/public/
<Directory /var/lib/mailman/archives/>
Options FollowSymLinks
Order allow,deny
Allow from all
</Directory>
Теперь я хочу, чтобы 10.10.10.10 был заменен удаленным IP-адресом. можем ли мы сделать это с помощью модуля lineinfile.
lineinfile:
path: /etc/hosts
regexp: '^10\.10\.10\.10'
line: ''
owner: root
group: root
mode: 0644
Технически это должно быть возможно, но вы столкнетесь с проблемами, потому что:
шаблон для замены, если он найден; будет заменена только последняя найденная строка
документация по модулю lineinfile
Итак, если вы хотите изменить /etc/hosts
это должно быть хорошо. Если вы хотите изменить файл конфигурации с многократным повторением шаблона rexex, вы столкнетесь с проблемами. (Из вопроса неуверенно, что вы хотите изменить / etc / hosts или app.conf)
Если вы хотите управлять файлом конфигурации apache, вам лучше использовать модуль шаблона