Строка не обновляется в файле с помощью win_lineinfile - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь обновить файл appsettings. json на каждом из моих узлов. Когда я запускаю свою playbook, я получаю измененное состояние для всех моих узлов, но когда я проверяю узел, я не вижу никаких изменений в строке. Я также пытаюсь обновить строку с именем хоста, но, похоже, это работает не очень хорошо.

Вот пример того, что я пытаюсь сделать:

- name: Replace line in appsettings.json
  win_lineinfile:
    path: C:\BatchJobs\appsettings.json
    regex: '"SrcDir:"\s*:\s*"[^"]*",'
    line: '"SrcDir:" "\\\\<ip-address>\\D$\\ETLs\\{{ansible_hostname}}\\",'

Вот фрагмент настроек приложения:

  },
  "DirectorySettings": {
    "FileSettingsConfigFile": "\\\\10.34.0.202\\D$\\Config\\<config>",
    "SrcDir": "\\\\<ip-Address>\\D$\\ETLs\\ETL01\\",
    "DestinationDir": "D:\\DestinationDir\\",
    "ShipDir": "D:\\ShipDir\\",
    "FailedDir": "\\\\10.34.0.202\\D$\\FailedDir\\",
    "DBQueriesBaseFolder": "./config/JobQueries/",
    "FileStatJobConfig": "./config/FileStat/"

1 Ответ

0 голосов
/ 28 февраля 2020

Проблема возникла из-за документации: https://docs.ansible.com/ansible/latest/modules/win_lineinfile_module.html#examples

Мне удалось заставить ее работать, изменив на:

- name: Replace line in appsettings.json
  win_lineinfile:
    path: C:\BatchJobs\appsettings.json
    regexp: '"SrcDir:"\s*:\s*"[^"]*",'
    line: '"SrcDir:" "\\\\<ip-address>\\D$\\ETLs\\{{ansible_hostname}}\\",'
...