Spec-Zone.ru › Ansible

Модуль community.windows.win_lineinfile – Обеспечение наличия определенной строки в файле или замена существующей строки с использованием обратной ссылки на регулярное выражение

Примечание

Этот модуль входит в коллекцию community.windows (версия 2.3.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.windows.

Для использования в плейбуке укажите: community.windows.win_lineinfile.

  • Описание
  • Параметры
  • См. также
  • Примеры
  • Возвращаемые значения

Описание

  • Этот модуль ищет строку в файле и гарантирует ее присутствие или отсутствие.
  • Это преимущественно полезно, когда нужно изменить только одну строку в файле.

Параметры

Параметр

Комментарии

backrefs

boolean

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

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

Выбори:

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

backup

boolean

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

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

Выбори:

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

create

boolean

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

Выбори:

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

encoding

string

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

string

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

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

Выбори:

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

insertbefore

string

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

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

Выбори:

  • "BOF"
  • "*regex*"

line

string

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

Обратите внимание, что строка обрабатывается сначала на контроллере и, следовательно, зависит от правил цитирования YAML. Любая строка в двойных кавычках будет содержать управляющие символы, такие как «\r\n», расширенные. Для буквального вывода таких символов используйте одинарные или без кавычек.

newline

string

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

Выбори:

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

path

aliases: dest, destfile, name

path / обязательно

Путь к файлу, который нужно изменить.

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

regex

aliases: regexp

string

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

state

string

Нужно ли наличие этой строки.

Выбори:

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

validate

string

Валидация, выполняемая перед копированием в место. Используйте %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

строка

Имя резервной копии файла, который был создан.

Теперь устарело, используйте backup_file вместо этого.

Возвращается: если backup=yes

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

backup_file

строка

Имя резервной копии файла, который был создан.

Возвращается: если backup=yes

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

Авторы

  • Brian Lloyd (@brianlloyd)

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

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

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/windows/win_lineinfile_module.html

Spec-Zone.ru

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