замена строк в файлах на ansible - PullRequest
0 голосов
/ 29 ноября 2018

Я создаю ANSIBLE PlayBook для внесения изменений в /etc/login.defs.

Я не могу использовать шаблон, так как другие команды могут вносить в него изменения, я хочу изменить только то, что мне нужно.Возможно, есть модули для обработки login.defs, но я не хочу полагаться на внешние зависимости, так как сервер не открыт для Интернета.

Я хочу изменить параметр PASS_MAX_DAYS, установив его значение равным 60. Значение по умолчанию:PASS_MAX_DAYS 99999, но я не хочу указывать 99999, просто замените всю строку, если она найдет PASS_MAX_DAYS, и раскомментируйте ее, если она закомментирована.

Я попробовал следующую опцию, но она не заменяетline

name: configure password length
 become: yes
 lineinfile:
  dest: /etc/login.defs
  regexp: ^#(?)PASS_MAX_DAYS.*
  line: "PASS_MAX_DAYS 60"

Я что-то не так делаю?

1 Ответ

0 голосов
/ 29 ноября 2018

Похоже, это работает, как вы хотите, если файл содержит значение по умолчанию или если значение было закомментировано.

  lineinfile:
    dest: /etc/login.defs
    regexp: '^[#]?[\s+]?PASS_MAX_DAYS\s+\d+'
    line: "PASS_MAX_DAYS   60"
    backup: true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...