Ansible 换行和转义特殊字符

Ansible 换行和转义特殊字符,ansible,ansible-2.x,Ansible,Ansible 2.x,我的目的是在我的主机文件中找到一个特定的组,然后在它后面附加一个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.inser

我的目的是在我的主机文件中找到一个特定的组,然后在它后面附加一个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和使用相同的“line”,但使用不同的insertafter标准


因此,我所做的是在第二次和第三次lineinfle调用中,我只是在IP地址的末尾添加了“xxx”和“zzz”,然后使用两个替换命令(搜索将“xxx”和“zzz”替换为“”)来“清理”解决方法。

在将
linefile
更正为
lineinfle
后,问题中的代码按照您的预期工作。你确定你复制了你想要的代码吗?对不起,我是从控制台复制的,所以我不能复制/粘贴。这只是我的一个换位错误,我的代码中的“lineinfle”是正确的。但是正如我所说的,然后问题中的代码给出了期望的结果。你是正确的,我用“line:10.10.10.101”硬编码运行它,如上所示,但当我用代码中的实际编写方式运行它时,“line:{ip_address}”“我得到了我描述的结果。我认为我的问题是“insertafter”标准,但似乎我的ip_地址变量可能是原因。