Spec-Zone.ru › Ansible

Модуль 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

логическое значение

Используется с state=present. Если параметр установлен, строка может содержать обратные ссылки (как позиционные, так и именованные), которые будут подставлены, если совпадёт regexp. Этот флаг немного меняет работу модуля: параметры insertbefore и insertafter игнорируются, а если regexp нигде в файле не совпадёт, файл останется без изменений.

Если regexp совпадёт, последняя совпавшая строка будет заменена строкой с подставленными значениями из параметра line.

Варианты:

  • false ← (по умолчанию)
  • true

backup

логическое значение

Определяет, нужно ли создавать резервную копию.

Если задано значение yes, создаётся файл резервной копии с информацией о временной метке, чтобы можно было восстановить исходный файл, если вы случайно испортите его.

Варианты:

  • false ← (по умолчанию)
  • true

create

логическое значение

Используется с state=present. Если параметр указан, файл будет создан, если он ещё не существует. По умолчанию выполнение завершится ошибкой, если файл отсутствует.

Варианты:

  • false ← (по умолчанию)
  • true

encoding

строка

Задаёт кодировку исходного текстового файла (а значит, и кодировку выходного файла). Значение по умолчанию 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).

По умолчанию: "auto"

insertafter

строка

Используется с state=present. Если параметр указан, строка будет вставлена после последнего совпадения с заданным регулярным выражением. Доступно специальное значение EOF, которое вставляет строку в конец файла.

Если заданное регулярное выражение не совпало ни с одной строкой, вместо него используется EOF. Нельзя использовать вместе с backrefs.

Варианты:

  • "EOF" ← (по умолчанию)
  • "*regex*"

insertbefore

строка

Используется с state=present. Если параметр указан, строка будет вставлена перед последним совпадением с заданным регулярным выражением. Доступно значение BOF, которое вставляет строку в начало файла.

Если заданное регулярное выражение не совпало ни с одной строкой, строка будет вставлена в конец файла. Нельзя использовать вместе с backrefs.

Варианты:

  • "BOF"
  • "*regex*"

line

строка

Обязателен для state=present. Строка, которую нужно вставить в файл или заменить ею существующую. Если задан backrefs, строка может содержать обратные ссылки, которые будут подставлены из групп захвата regexp при совпадении с регулярным выражением.

Обратите внимание: строка сначала обрабатывается на управляющем узле, поэтому результат зависит от правил кавычек YAML. В строках в двойных кавычках управляющие символы, например «\r\n», будут преобразованы. Чтобы вывести такие символы буквально, используйте одинарные кавычки или не используйте кавычки.

newline

строка

Задаёт используемый в изменённом файле тип разделителя строк. По умолчанию используется разделитель строк Windows (\r\n). Указанный разделитель будет использоваться при записи файла независимо от разделителя строк в исходном файле.

Варианты:

  • "unix"
  • "windows" ← (по умолчанию)

path

псевдонимы: dest, destfile, name

путь / обязательный

Путь к изменяемому файлу.

Обратите внимание: разделитель Windows-путей \ необходимо экранировать как \\, если строка заключена в двойные кавычки.

regex

псевдоним: regexp

строка

Регулярное выражение для поиска в каждой строке файла. Для state=present — шаблон строки для замены; заменяется только последняя найденная строка. Для state=absent — шаблон строки для удаления. Используются регулярные выражения, совместимые с .NET; см. https://msdn.microsoft.com/en-us/library/hs600312%28v=vs.110%29.aspx.

state

строка

Определяет, должна ли строка присутствовать.

Варианты:

  • "absent"
  • "present" ← (по умолчанию)

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

Пример: "C:\\Path\\To\\File.txt.11540.20150212-220915.bak"

Авторы

  • Brian Lloyd (@brianlloyd)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Связь

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API