简单的问题。 我正在尝试匹配“UseDns”,“usedns”和其他变体。
- name: Disable DNS checking on login (huge speedup)
sudo: true
lineinfile:
dest: "/etc/ssh/sshd_config"
regexp: "^[# \t]*[Uu][Ss][Ee][Dd][Nn][Ss] "
# how does one specify case insensitive regexp in lineinfile?
line: "UseDNS no"
state: "present"
create: true
insertafter: EOF
notify:
- sshd restart
答案 0 :(得分:7)
Ansible使用Python re module。您可以在模式中使用inline modifiers,例如(?ism)
。使用 i 进行不区分大小写的匹配:
regexp: "(?i)^[# \t]*usedns "
内联修饰符适用于修饰符的常规扩展部分到右侧,可以使用-
禁用。 (?-i)
。这可以应用于仅对正则表达式的一部分实现不区分大小写。
例如,正则表达式(?i)use(?-i)DNS
应与useDNS
和UseDNS
匹配,但不能与useDns
或USEdns
匹配。