ansible - Lineinfile 和转义特殊字符
问题描述
我的目的是在我的 hosts 文件中找到一个特定的组,然后在其后附加一个 IP 地址。我的主机文件看起来像这样
[create_new_ecarews]
*blank*
[ecarews]
10.10.10.100
我正在尝试在 [ecarews] 下插入一个新的 IP 10.10.10.101。但是使用以下代码,它最终会出现在 [create_new_ecarews]
lineinfile:
path: /etc/hosts
insertafter: "{{ item.insertafter }}"
line: "{{ item.line }}"
with_items:
- { line: "10.10.10.101", insertafter: '\[ecarews\]' }
这是结果:
[create_new_ecarews]
10.10.10.101
[ecarews]
10.10.10.100
这是想要的结果
[create_new_ecarews]
*blank*
[ecarews]
10.10.10.101
10.10.10.100
如何转义/匹配 [ecarews] 以便 insertafter 将 IP 地址放在 [ecarews] 下?
解决方案
我发现,您不能使用 lineinfile 并使用相同的“行”,但在剧本中使用不同的 insertafter 标准。
所以我所做的是我的第 2 次和第 3 次 lineinfile 调用,我只是将“xxx”和“zzz”附加到 IP 地址的末尾,然后执行两个替换命令(搜索“xxx”和“zzz”为替换为“”)以“清理”解决方法。
推荐阅读
- python - Download dependencies using serverless-python-requirements plugin on GitHub Actions throws "cannot find Python 3.7"
- javascript - 将子数组连接到父数组
- jquery - 使用 bootstrap4-toggle 和 localStorage 为深色模式切换 CSS
- javascript - 如果 Javascript 中的键相同,如何比较两个不同的对象键并更新它的值?
- jquery - 在 iframe 中获取 Visio SharePoint WebPart 的 css
- python - Python:如何按小时和天对熊猫数据框进行分组?
- python - Seaborn 内核密度估计,但带有值
- nginx - Poste.io 的 Nginx 反向代理
- javascript - innerHTML 模板添加的功能自动触发
- python - 在熊猫中计算具有多个条件的行