我正在创建一个Ansible剧本来对/etc/login.defs进行更改。
我无法使用模板,因为其他团队可能会对模板进行更改,我只想修改所需的内容。也许有一些模块可以处理login.defs,但是我不想依靠外部依赖关系,因为服务器没有向Internet开放。
我想修改PASS_MAX_DAYS参数,将其值设置为60。默认值是PASS_MAX_DAYS 99999,但我不想指定99999,如果发现PASS_MAX_DAYS,请替换整行,并在注释时取消注释。
我尝试了以下选项,但它不能代替该行
name: configure password length
become: yes
lineinfile:
dest: /etc/login.defs
regexp: ^#(?)PASS_MAX_DAYS.*
line: "PASS_MAX_DAYS 60"
我做错什么了吗?
答案 0 :(得分:1)
如果文件包含默认值,或者该值已被注释掉,这似乎可以按您的意愿工作。
lineinfile:
dest: /etc/login.defs
regexp: '^[#]?[\s+]?PASS_MAX_DAYS\s+\d+'
line: "PASS_MAX_DAYS 60"
backup: true