请在这里为我提供指导。
我想在一个配置文件中注释一行,并且需要使用ansible取消注释另一行。
我的文件内容如下。
<include location="conf/basicUserRegistry.xml"/> -------------------------this i want to comment
<!--include location="conf/ldapUserRegistry.xml"/--> --------------------------- this line i want to uncomment
我尝试使用下面的剧本,即使它没有更改文件更改,也没有显示任何错误。
输出:
PLAY [启用LDAP] ********************************************** ****************************************************** **************************************************
任务[聚会事实] ********************************************** ****************************************************** ********************************************** 好的:[localhost]
任务[disbale基本用户注册表] *************************************** ****************************************************** ************************************** 好的:[localhost]
PLAY RECAP ********************************************* ****************************************************** ****************************************************** * 本地主机:ok = 2更改= 0不可达= 0失败= 0
答案 0 :(得分:0)
这是您要查找的代码吗?
gmtime_r
这不是幂等的!如果 regex 存在,则 line 将替换找到的行。如果 regex 不存在,则仍会添加* line“。要使其幂等,请使用 replace 模块(以下示例)。
或者,也许是这个?
vars:
mark_1: 'include location="conf/basicUserRegistry.xml"/'
mark_2: 'include location="conf/ldapUserRegistry.xml"/'
tasks:
- lineinfile:
path: server.xml
regex: "^<!--{{ mark_2 }}-->"
line: "<{{ mark_2 }}>"
- lineinfile:
path: server.xml
regex: "^<{{ mark_1 }}>"
line: "<!--{{ mark_1 }}-->"
或
- lineinfile:
path: server.xml
regex: ".{{ mark_2 }}."
line: "<{{ mark_2 }}>"
- lineinfile:
path: server.xml
regex: ".{{ mark_1 }}."
line: "<!--{{ mark_1 }}-->"
答案 1 :(得分:0)
下面是我的剧本,它没有更改文件上的任何内容
private string _description;
public string Description
{
get { return _description; }
set
{
_description = value;
NotifyOfPropertyChange(() => Description);
}
}
答案 2 :(得分:0)
解决这个问题的一种更清洁的方法是利用Ansible xml
module。
示例(假设您的示例显示了完整的文件):
tasks:
- xml:
file: server.xml
xpath: /include
attribute: location
value: conf/ldapUserRegistry.xml