【发布时间】:2023-01-09 17:20:20
【问题描述】:
我有一个文件,包含一行多个空格分隔的字符串:
$ cat /tmp/strings.txt
alpha beta gamma zeta omega
我的目标是检查 /tmp/strings.txt 中是否不存在 delta 字符串,如果不存在,则将其添加到 gamma 字符串之后:
$ cat /tmp/strings.txt
alpha beta gamma delta zeta omega
我认为将是一个解决方案:
- name: Check if delta string is present
ansible.builtin.command: grep 'delta' /tmp/strings.txt | wc -l
register: delta_string
- name: Add delta string
ansible.builtin.blockinfile:
block: gamma delta
path: /tmp/strings.txt
when: delta_string.stdout == 0
这是在 Ansible 中正确使用字符串替换吗?不确定 ansible.builtin.blockinfile 块是如何工作的,如果找不到它会插入 gamma delta 字符串作为 gamma 的替代品,还是将其添加到文件末尾?
有没有需要 when 检查的解决方案?
【问题讨论】:
标签: ansible