我想要添加参数
-原木-选择最大尺寸=5m
到文件中的现有行,首先要检查是否已经设置了此参数:
regexp: "^OPTIONS=(?!.*?(--log-opt max-size).*)"我用该teststring进行了测试,在3种不同的在线测试器上进行了测试,它们根据需要进行匹配:
OPTIONS='--log-opt max-size=5M --selinux-enabled --signature-verification=False'这是完整的剧本:
- name: "adding limiting parameter for container log-sizes"
lineinfile:
path: /etc/sysconfig/docker
backrefs: true
state: present
regexp: "^OPTIONS=(?!.*?(--log-opt max-size).*)"
line: "OPTIONS='--log-opt max-size=5M \\1'"Ansible断线有一个例外,用Ansible 2.6.5和2.7猜测它是一个synthax而不是二进制问题。已经尝试了这么久
还希望在regexp中签入OPTIONS=之后的引号(应该是OPTIONS='any ')
有什么想法吗?提前感谢
发布于 2018-10-28 14:15:20
此模式将获得OPTIONS=上引号之后的所有行。
如果您想要检查这一行,可以尝试另一个正则表达式,比如/-log max-size=/,测试从上面的匹配得到的输出行。
发布于 2018-10-29 23:51:44
发现,第一组不匹配,例外就是因为这一点。也许这并不是最聪明的方法,但它可以解决这个问题,并将regex更新为:^OPTIONS='(?!.*?(--log-opt max-size))(.*)还必须调整替换行:OPTIONS='--log-opt max-size=5M\\2。
现在完成剧本部分:
- name: "adding limiting parameter for container log-sizes" lineinfile: path: /etc/sysconfig/docker backrefs: true state: present regexp: "^OPTIONS='(?!.*?(--log-opt max-size))(.*)" line: "OPTIONS='--log-opt max-size=5M \\2"
https://stackoverflow.com/questions/53032368
复制相似问题