Замена строки в файле с помощью ansible
Мне необходимо заменить строку в файле index.php по регулярному выражению. Ansible выполняет задачу без ошибок, но ничего не изменяет. Задача ansible:
- name: Update restore date postgres
ansible.builtin.replace:
path: /home/rocketdata/index.php
regexp: '^<h1 class="text">POSTGRES MIRROR №2 Version:[0-9]{1,3} Date\/Time last update: [0-9]{4}.[0-9]{1,2}.[0-9]{1,2}\/[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}<\/h1>$'
replace: '<h1 class="text">POSTGRES MIRROR №2 Version:14 Date/Time last update: {{ansible_date_time.date}}/{{ansible_date_time.time}}</h1>'
Файл index.php:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>DATABASES</title>
<style>
.text{
font-size: 20pt;
font-family: 'Times New Roman', 'Times',serif;
border-bottom: 2px solid Black;
border-top: 2px solid Black;
text-align: left;
background-color: White;
margin-right: 10pt;
margin-left: 10pt;
}
.head_block{
font-size: 30pt;
font-family: 'Times New Roman', 'Times',serif;
border-bottom: 1px solid Black;
border-top: 1px solid Black;
border-right: 1px solid Black;
border-left: 1px solid Black;
text-align: center;
background-color: Gray;
}
body{
background-color: White;
}
</style>
</head>
<body>
<h1 class="head_block"> DATABASES</h1>
<h1 class="text">p Version:13 Date/Time last update: 23.04.2021/24:00:00</h1>
<h1 class="text">POSTGRES MIRROR №2 Version:13 Date/Time last update: 23.04.2021/24:00:20</h1>
<h1 class="text">POSTGRES MIRROR №3 Version:13 Date/Time last update: 23.04.2021/24:00:00</h1>
</body>
</html>
Ответы (1 шт):
Автор решения: zersh
→ Ссылка
Не учли отступ в начале h1 и дата, перепутана последовательность. примерно так:
^([ \t])+<h1 class=\"text\">POSTGRES MIRROR №2 Version:[0-9]{1,3} Date\/Time last update: ([0-9]{1,2}.[0-9]{1,2}.[0-9]{4})\/([0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2})<\/h1>$
У ansible_date_time по умолчанию другой формат, воспользуйтесь: https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html