community.windows.win_lineinfile – Обеспечение наличия определённой строки в файле или замена существующей строки с использованием обратной ссылки на регулярное выражение
Примечание
Этот плагин входит в сборку community.windows (версия 1.2.0).
Для его установки используйте: ansible-galaxy collection install community.windows.
Для использования в плейбуке укажите: community.windows.win_lineinfile.
Обзор
- Этот модуль ищет в файле строку и гарантирует, что она присутствует или отсутствует.
- Это преимущественно полезно, когда требуется изменить только одну строку в файле.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| backrefs boolean |
| Используется с state=present. Если установлено, строка может содержать обратные ссылки (как позиционные, так и именованные), которые будут заполнены, если regexp совпадает. Этот флаг немного изменяет работу модуля; insertbefore и insertafter будут игнорироваться, и если regexp нигде в файле не совпадёт, файл останется без изменений.Если regexp совпадает, последняя совпавшая строка будет заменена расширенным параметром строки. |
| backup boolean |
| Определяет, следует ли создавать резервную копию. При установке в yes, создаётся резервная копия файла, включая отметку времени, чтобы вы могли восстановить исходный файл, если что-то пойдёт не так. |
| create boolean |
| Используется с state=present. Если указано, файл будет создан, если он ещё не существует. По умолчанию он будет завершаться ошибкой, если файл отсутствует. |
| encoding string | По умолчанию: "auto" | Указывает кодировку исходного текстового файла для обработки (и, следовательно, кодировку вывода). Значение по умолчанию auto заставит модуль автоматически определить кодировку исходного файла и гарантировать, что изменённый файл будет записан с той же кодировкой.Явную кодировку можно передать в виде строки, являющейся допустимым значением для метода .NET framework System.Text.Encoding.GetEncoding() - см. https://msdn.microsoft.com/en-us/library/system.text.encoding%28v=vs.110%29.aspx. Это в основном полезно с create=yes если вы хотите создать новый файл с определённой кодировкой. Если create=yes указано без конкретной кодировки, будет использована кодировка по умолчанию (UTF-8 без BOM). |
| insertafter string |
| Используется с state=present. Если указано, строка будет вставлена после последнего совпадения указанного регулярного выражения. Доступно специальное значение; EOF для вставки строки в конец файла.Если указанное регулярное выражение не имеет совпадений, вместо него будет использоваться КОНЕЦ. Не может использоваться с backrefs. |
| insertbefore string |
| Используется с state=present. Если указано, строка будет вставлена перед последним совпадением указанного регулярного выражения. Доступно значение; BOF для вставки строки в начало файла.Если указанное регулярное выражение не имеет совпадений, строка будет вставлена в конец файла. Не может использоваться с backrefs. |
| line string | Требуется для state=present. Строка для вставки/замены в файле. Если backrefs установлено, может содержать обратные ссылки, которые будут расширены с помощью regexp групп захвата, если регулярное выражение соответствует.Учитывайте, что строка обрабатывается сначала на контроллере и, следовательно, зависит от правил цитирования YAML. Любая строка в двойных кавычках будет иметь управляющие символы, такие как '\r\n', расширенные. Для буквального вывода таких символов используйте одинарные или отсутствие кавычек. | |
| newline string |
| Указывает стиль разделителя строк для использования в изменённом файле. По умолчанию используется разделитель строк Windows ( \r\n). Обратите внимание, что указанный разделитель строк будет использоваться для вывода файла независимо от исходного разделителя строк, который появляется в входном файле. |
| path path / required | Путь к файлу для изменения. Обратите внимание, что разделитель пути Windows \ необходимо экранировать как \\ при использовании строки в двойных кавычках.псевдонимы: dest, destfile, name | |
| regex string | Регулярное выражение для поиска в каждой строке файла. Для state=present, шаблон для замены при поиске; будет заменена только последняя найденная строка. Для state=absent, шаблон строки для удаления. Использует регулярные выражения, совместимые с .NET; см. https://msdn.microsoft.com/en-us/library/hs600312%28v=vs.110%29.aspx.псевдонимы: regexp | |
| state string |
| Следует ли присутствовать строке. |
| validate string | Валидация для выполнения перед копированием на место. Используйте %s в команде для обозначения текущего файла для валидации. Команда передаётся безопасно, поэтому такие возможности оболочки, как расширение и конвейеры, не будут работать. |
См. также
См. также
- ansible.builtin.assemble
-
Официальная документация модуля ansible.builtin.assemble.
- ansible.builtin.lineinfile
-
Официальная документация модуля ansible.builtin.lineinfile.
Примеры
- name: Insert path without converting \r\n
community.windows.win_lineinfile:
path: c:\file.txt
line: c:\return\new
- community.windows.win_lineinfile:
path: C:\Temp\example.conf
regex: '^name='
line: 'name=JohnDoe'
- community.windows.win_lineinfile:
path: C:\Temp\example.conf
regex: '^name='
state: absent
- community.windows.win_lineinfile:
path: C:\Temp\example.conf
regex: '^127\.0\.0\.1'
line: '127.0.0.1 localhost'
- community.windows.win_lineinfile:
path: C:\Temp\httpd.conf
regex: '^Listen '
insertafter: '^#Listen '
line: Listen 8080
- community.windows.win_lineinfile:
path: C:\Temp\services
regex: '^# port for http'
insertbefore: '^www.*80/tcp'
line: '# port for http by default'
- name: Create file if it doesn't exist with a specific encoding
community.windows.win_lineinfile:
path: C:\Temp\utf16.txt
create: yes
encoding: utf-16
line: This is a utf-16 encoded file
- name: Add a line to a file and ensure the resulting file uses unix line separators
community.windows.win_lineinfile:
path: C:\Temp\testfile.txt
line: Line added to file
newline: unix
- name: Update a line using backrefs
community.windows.win_lineinfile:
path: C:\Temp\example.conf
backrefs: yes
regex: '(^name=)'
line: '$1JohnDoe'
Возвращаемые значения
Общие возвращаемые значения описаны в этом разделе, а следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backup string | если backup=да | Имя резервного файла, который был создан. Этот параметр устарел, используйте backup_file вместо него.Пример: C:\Путь\К\Файлу.txt.11540.20150212-220915.bak |
| backup_file string | если backup=да | Имя резервного файла, который был создан. Пример: C:\Путь\К\Файлу.txt.11540.20150212-220915.bak |
Авторы
- Brian Lloyd (@brianlloyd)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/windows/win_lineinfile_module.html