Spec-Zone.ru › Ansible 2.5

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

Новое в версии 2.0.

  • Обзор
  • Параметры
  • Примечания
  • Примеры
  • Статус
    • Автор

Обзор

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

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
backrefs
    Варианты:
  • да
  • нет ←
Используется с state=present. Если установлено, строка может содержать обратные ссылки (как позиционные, так и именованные), которые будут заполнены, если regexp совпадает. Этот флаг немного изменяет работу модуля; insertbefore и insertafter будут проигнорированы, и если regexp не соответствует нигде в файле, файл останется без изменений.
Если regexp совпадает, последняя совпавшая строка будет заменена параметром расширенной строки.
backup
    Варианты:
  • да
  • нет ←
Создать резервную копию файла, включая информацию о времени создания, чтобы вы могли восстановить исходный файл, если вы его неправильно перезаписали.
create
    Варианты:
  • да
  • нет ←
Используется с state=present. Если указано, файл будет создан, если он ещё не существует. По умолчанию, если файла нет, произойдёт ошибка.
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).
insertafter
    Варианты:
  • EOF ←
  • *regex*
Используется с state=present. Если указано, строка будет вставлена после последнего совпадения указанного регулярного выражения. Доступно специальное значение; EOF для вставки строки в конец файла.
Если указанное регулярное выражение не имеет совпадений, будет использовано EOF вместо него. Нельзя использовать с backrefs.
insertbefore
    Варианты:
  • BOF
  • *regex*
Используется с state=present. Если указано, строка будет вставлена перед последним совпадением указанного регулярного выражения. Доступно значение; BOF для вставки строки в начало файла.
Если указанное регулярное выражение не имеет совпадений, строка будет вставлена в конец файла. Нельзя использовать с backrefs.
line
Требуется для state=present. Строка для вставки/замены в файле. Если backrefs установлено, может содержать обратные ссылки, которые будут расширены с использованием regexp групп захвата, если regexp совпадает.
Обратите внимание, что строка обрабатывается сначала на контроллере и, следовательно, зависит от правил цитирования YAML. Любая строка в двойных кавычках будет иметь управляющие символы, такие как '\r\n', расширенные. Чтобы отобразить такие символы буквально, используйте одинарные кавычки или отсутствие кавычек.
newline
    Варианты:
  • windows ←
  • unix
Указывает стиль разделителя строк, который следует использовать для изменённого файла. По умолчанию используется разделитель строк Windows (\r\n). Обратите внимание, что указанный разделитель строк будет использоваться для вывода файла независимо от исходного разделителя строк, который появляется в входном файле.
path
необходимо
Путь к файлу, который нужно изменить.
Обратите внимание, что разделитель пути Windows \ должен быть экранирован как \\ при использовании строки в двойных кавычках.
До версии 2.3 этот параметр был доступен только как dest, destfile и name.

алиасы: dest, destfile, name
regexp
Регулярное выражение для поиска в каждой строке файла. Для state=present, шаблон для замены, если найден; будет заменена только последняя найденная строка. Для state=absent, шаблон строки для удаления. Использует совместимые с .NET регулярные выражения; см. https://msdn.microsoft.com/en-us/library/hs600312%28v=vs.110%29.aspx.
state
    Варианты:
  • present ←
  • absent
Нужно ли, чтобы строка была там или нет.
validate Значение по умолчанию:
None
Проверка, выполняемая перед копированием в место назначения. Используйте %s в команде для указания текущего файла для проверки.
Команда передаётся безопасно, поэтому такие возможности оболочки, как расширение и конвейеры, не будут работать.

Примечания

Примечание

  • Начиная с Ansible 2.3, параметр dest был изменён на path по умолчанию, но dest по-прежнему работает.

Примеры

# Before 2.3, option 'dest', 'destfile' or 'name' was used instead of 'path'
- name: insert path without converting \r\n
  win_lineinfile:
    path: c:\file.txt
    line: c:\return\new

- win_lineinfile:
    path: C:\temp\example.conf
    regexp: '^name='
    line: 'name=JohnDoe'

- win_lineinfile:
    path: C:\temp\example.conf
    regexp: '^name='
    state: absent

- win_lineinfile:
    path: C:\temp\example.conf
    regexp: '^127\.0\.0\.1'
    line: '127.0.0.1 localhost'

- win_lineinfile:
    path: C:\temp\httpd.conf
    regexp: '^Listen '
    insertafter: '^#Listen '
    line: Listen 8080

- win_lineinfile:
    path: C:\temp\services
    regexp: '^# port for http'
    insertbefore: '^www.*80/tcp'
    line: '# port for http by default'

# Create file if it doesn't exist with a specific encoding
- win_lineinfile:
    path: C:\temp\utf16.txt
    create: yes
    encoding: utf-16
    line: This is a utf-16 encoded file

# Add a line to a file and ensure the resulting file uses unix line separators
- win_lineinfile:
    path: C:\temp\testfile.txt
    line: Line added to file
    newline: unix

# Update a line using backrefs
- win_lineinfile:
    path: C:\temp\example.conf
    backrefs: yes
    regexp: '(^name=)'
    line: '$1JohnDoe'

Статус

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

Автор

  • Brian Lloyd <brian.d.lloyd@gmail.com>

Подсказка

Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.5/modules/win_lineinfile_module.html

Spec-Zone.ru

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