Модуль 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 | Используется с Если Выбори:
|
backup boolean | Определяет, следует ли создавать резервную копию. Если установлено Выбори:
|
create boolean | Используется с Выбори:
|
encoding string | Указывает кодировку исходного текстового файла для обработки (и, следовательно, кодировку вывода). Значение по умолчанию Явную кодировку можно передать как строку, являющуюся допустимым значением для метода .NET framework System.Text.Encoding.GetEncoding() - см. https://msdn.microsoft.com/en-us/library/system.text.encoding%28v=vs.110%29.aspx. Это в основном полезно с По умолчанию: |
insertafter string | Используется с Если указанное регулярное выражение не находит совпадений, будет использован конец файла. Не может быть использовано с Выбори:
|
insertbefore string | Используется с Если указанное регулярное выражение не находит совпадений, строка будет вставлена в конец файла. Не может быть использовано с Выбори:
|
line string | Необходим для Обратите внимание, что строка обрабатывается сначала на контроллере и, следовательно, зависит от правил цитирования YAML. Любая строка в двойных кавычках будет содержать управляющие символы, такие как «\r\n», расширенные. Для буквального вывода таких символов используйте одинарные или без кавычек. |
newline string | Указывает стиль разделителя строк для использования в изменённом файле. По умолчанию используется разделитель строк Windows ( Выбори:
|
path aliases: dest, destfile, name path / обязательно | Путь к файлу, который нужно изменить. Обратите внимание, что разделитель путей Windows |
regex aliases: regexp string | Регулярное выражение для поиска в каждой строке файла. Для |
state string | Нужно ли наличие этой строки. Выбори:
|
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=yes Пример: |
backup_file строка | Имя резервной копии файла, который был создан. Возвращается: если backup=yes Пример: |
Ссылки на коллекцию
© 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