- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在/etc/foo.txt 中有一个简单的文件。该文件包含以下内容:
#bar
我有以下 ansible playbook 任务来取消注释上面的行:
- name: test lineinfile
lineinfile: backup=yes state=present dest=/etc/foo.txt
regexp='^#bar'
line='bar'
当我第一次运行 ansible-playbook 时,该行被取消注释,并且/etc/foo.txt 现在包含以下内容:
bar
但是,如果我再次运行 ansible-playbook,我会得到以下信息:
bar
bar
如果我再次运行它,那么/etc/foo.txt 文件将如下所示:
bar
bar
bar
如何避免这种重复行?我只想取消注释“#bar”并完成它。
最佳答案
如果您不想更改正则表达式,则需要添加backrefs=yes。
- name: test lineinfile
lineinfile: backup=yes state=present dest=/etc/foo.txt
regexp='^#bar' backrefs=yes
line='bar'
这会改变 lineinfile 的行为来自:
find
if found
replace line found
else
add line
至:
find
if found
replace line found
换句话说,这使得操作具有幂等性。
关于Ansible lineinfile 重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19390600/
我有很多行需要添加,比如 今天 是 一个 好 天 如果只有一个目的地,将是 - name: add line lineinfile: dest: "/tmp/aaa.txt" li
同样,有一个模块lineinfile可以在文件中添加一行,有没有办法添加多行? 我不想使用模板,因为您必须提供整个文件。我只想向现有文件添加一些内容,而不必知道该文件已包含什么内容,因此模板不是一个选
我在/etc/foo.txt 中有一个简单的文件。该文件包含以下内容: #bar 我有以下 ansible playbook 任务来取消注释上面的行: - name: test lineinfile
我是 Ansible 新手,正在尝试修改 /etc/default/grub 中的一行以启用审核。 我需要在一行的引号内添加 audit=1 ,如下所示: GRUB_CMDLINE_LINUX="cr
我正在使用 lineinfile在 syslog 文件中插入一行。这是我的系统日志: /var/log/cron /var/log/maillog /var/log/messages /var/log
我正在尝试读取文件的内容,将它们存储在变量中,然后如果它们不存在,则将它们插入到另一个文件中。 所以,我试图解决这个问题的方法如下: # Create a variable that represen
当行中冒号 (:) 后面有空格时,Ansible 的 lineinfile 会出现语法错误,例如 line='item: value'。如果没有像 line='item:value' 这样的空格,它就
我正在尝试添加包含单引号和双引号的行,但我在一个小时内未能这样做...... vars: line1: "a=\\\"a'b'c\\\"" line2: 'a="a\''b\''c"' tas
嗨我有一个任务如下 - name: Replace log directory in configuration lineinfile: path: $HOME/am
简单的问题。 我正在尝试匹配“UseDns”、“usedns”和其他变体。 - name: Disable DNS checking on login (huge speedup) sudo: t
我有一个 ansible play 可以正常工作,如下所示,这里我有两个 From 条目正在用 TO 条目更改。 但我只是想知道在我的例子中,是否有办法可以将名为 ntp.conf 的文件中的一行替换
我看过一些有类似问题的帖子,但似乎对我没有任何帮助。有些人提到需要在我的正则表达式中使用组,所以我添加了它们但仍然有问题。其他人说只要在我的 lineinfile 中添加“backrefs: yes”
如何确保文件中存在特定行并且未使用 ansible 的 `lineinfile' 进行注释 我想要取消注释的行(在 .htaccess 中): #php_flag display_errors on
我正在尝试使用 Ansible 编辑 apache.conf。这是我的conf的一部分: # Sets the default security model of the Apache2 HTTPD
我有一本剧本 --- - hosts: 127.0.0.1 connection: local vars: WORK_DIR: /somefolder tasks: - deb
我很难相信没有任何东西可以涵盖这个用例,但事实证明我的搜索毫无结果。 我在 /etc/fstab 中有一行用于安装不再可用的驱动器: //archive/Pipeline /pipeline/Arch
我正在尝试确保从文件中删除除少数特定行以外的所有行。我可以完成以下任务。 - name: ensure only the correct lines are present lineinfile:
我们的 SSL 证书将在几天内用完。所以我认为 Ansible 可以将新证书放在服务器上并更改 apache2 站点。 服务器站点正在此服务器上运行。 我想替换以下几行: SSLCertificate
如果它不在基于主机名的文件中,我们需要添加行。 意思是: 如果主机名是 abc 则行 "ABC" 转到 /etc/app.conf 否则 "XYZ" 行将转到 /etc/app.conf 文件。 对此
我开始使用 Ansible 来编写一个剧本,为我们的应用程序部署一个登台环境。 我试图了解对文件应用更改的最佳实践是否是在控制机器上本地更改它们,然后将它们传播到远程服务器,或者是否应该在剧本中操作文
我是一名优秀的程序员,十分优秀!