I'm trying to replace a line in the file with Ansible replace
module and parameter regex
, which has a line password required pam_allow.so with password requisite pam_deny.so
- hosts: 127.0.0.1
tasks:
- name: replacing string
replace:
path: /var/log/common-password
regexp: '(^password\s)(required\s)(pam\w_allow\.so(.*)$'
replace: 'password requisite pam_deny.so'
PLAY [127.0.0.1] *******************************************************************************************************************************
TASK [Gathering Facts] *************************************************************************************************************************
ok: [127.0.0.1]
TASK [replacing string] ************************************************************************************************************************
ok: [127.0.0.1]
PLAY RECAP *************************************************************************************************************************************
127.0.0.1 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Expected result : password requisite pam_deny.so should replace password required pam_allow.so
CodePudding user response:
The question isn't reproducible.
Thanks for @U880D for clearing it.
There is no need for brackets, just match the white spaces using \s
with
which means one or more white spaces, then skip the dot with \
,see https://regexr.com/6sot0
regexp: '^password\s required\s pam_allow\.so'
CodePudding user response:
Based on your description and Zeitounator's given comment about regex101, I've found the following minimal reproducible example producing the requested result.
Config file login
(annot. as usually used under /etc/pam.d/
)
auth substack system-auth
auth include postlogin
account required pam_nologin.so
account include system-auth
password include system-auth
password required pam_allow.so
Test playbook replace.yml
---
- hosts: localhost
become: false
gather_facts: false
tasks:
- name: Replace allow to deny
replace:
path: login
regexp: '^password\s required\s pam\w*_allow\.so$'
replace: 'password required pam_deny.so'
backup: true
resulting into a changed config file
...
password required pam_deny.so