我有一个文件/ home / ec2-user / hosts,其中有一个名为[sample_word_test]的组,带有方括号,我想使用ansible剧本在该组下添加一个IP地址。我想使用lineinfile正则表达式来匹配[sample_word_test],并在该匹配组下添加IP地址
以下是我的剧本代码
lineinfile:
path: /home/ec2-user/hosts
regexp: "\[.*?sample_word_test.*$\]"
line: "{{ new_server_ip }}"
backup: yes
答案 0 :(得分:1)
要完全匹配,您应该使用
@Data
您需要转义方括号,因为方括号用于在正则表达式语法中定义字符集。
^\[sample_word_test\]$
-匹配字符串的开头^
-转义字符,与左括号匹配\[
-转义字符,与右括号匹配\]
-匹配字符串的结尾答案 1 :(得分:1)
非常简单的解决方案是使用ini_file。以下任务完成了所要求的工作。
- ini_file:
path: /home/ec2-user/hosts
section: sample_word_test
option: "{{ new_server_ip }}"
allow_no_value: yes
backup: yes
例如
$ cat hosts
[all]
test1
test2
[sample_word_test]
192.168.1.99