Модуль community.windows.win_lineinfile — обеспечить наличие определённой строки в файле или заменить существующую строку с помощью регулярного выражения с обратными ссылками
Примечание
Этот модуль входит в коллекцию community.windows (версия 3.1.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.windows.
Чтобы использовать её в плейбуке, укажите: community.windows.win_lineinfile.
Краткое описание
- Этот модуль ищет строку в файле и обеспечивает её наличие или отсутствие.
- Модуль в первую очередь полезен, когда нужно изменить только одну строку в файле.
Параметры
Параметр | Комментарии |
|---|---|
backrefs логическое значение | Используется с Если Варианты:
|
backup логическое значение | Определяет, нужно ли создавать резервную копию. Если задано значение Варианты:
|
create логическое значение | Используется с Варианты:
|
encoding строка | Задаёт кодировку исходного текстового файла (а значит, и кодировку выходного файла). Значение по умолчанию Кодировку можно указать явно в виде строки, допустимой для передачи методу .NET Framework System.Text.Encoding.GetEncoding(); см. https://msdn.microsoft.com/en-us/library/system.text.encoding%28v=vs.110%29.aspx. Это в основном полезно с По умолчанию: |
insertafter строка | Используется с Если заданное регулярное выражение не совпало ни с одной строкой, вместо него используется EOF. Нельзя использовать вместе с Варианты:
|
insertbefore строка | Используется с Если заданное регулярное выражение не совпало ни с одной строкой, строка будет вставлена в конец файла. Нельзя использовать вместе с Варианты:
|
line строка | Обязателен для Обратите внимание: строка сначала обрабатывается на управляющем узле, поэтому результат зависит от правил кавычек YAML. В строках в двойных кавычках управляющие символы, например «\r\n», будут преобразованы. Чтобы вывести такие символы буквально, используйте одинарные кавычки или не используйте кавычки. |
newline строка | Задаёт используемый в изменённом файле тип разделителя строк. По умолчанию используется разделитель строк Windows ( Варианты:
|
path псевдонимы: dest, destfile, name путь / обязательный | Путь к изменяемому файлу. Обратите внимание: разделитель Windows-путей |
regex псевдоним: regexp строка | Регулярное выражение для поиска в каждой строке файла. Для |
state строка | Определяет, должна ли строка присутствовать. Варианты:
|
validate строка | Проверка, выполняемая перед заменой файла. Используйте %s в команде, чтобы указать проверяемый файл. Команда передаётся безопасным способом, поэтому функции оболочки, такие как подстановка и конвейеры, работать не будут. |
См. также
См. также
- ansible.builtin.assemble
-
Собирает файлы конфигурации из фрагментов.
- 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: true
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: true
regex: '(^name=)'
line: '$1JohnDoe'
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже приведены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
backup_file строка | Имя созданного файла резервной копии. Возвращается: если backup=yes Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/windows/win_lineinfile_module.html