我使用以下内容:
目录文件:dir.yml
x86_64:
alpine:
update:
version: 3.14.0
aarch64:
alpine:
update:
version: 3.14.0
可靠的剧本:
---
- name: Playbook
hosts: localhost
vars:
new_version: 3.15.0
update:
tasks:
- name: "Include: dir.yml"
ansible.builtin.include_vars:
file: dir.yml
- debug:
msg:
- "{{x86_64.alpine.version}}"
- "{{new_version}}"
- "{{update}}"
- set_fact:
update: "{{'true' if x86_64.alpine.version < new_version else 'false'}}"
问题:
如何更新 dir.yml 中的以下字段
x86_64:
alpine:
update: true <------
我试图使用 ansible.builtin.replace 或 ansible.builtin.lineinfile 但仍然无法弄清楚
有没有人对此有任何解决方案
将文件读入字典
给
更新字典
给
并重写文件
给
笔记
属性更新的空值将被“null”替换。这应该不是问题,因为“null”在 YAML 中转换为布尔值“false”。
更新后的属性update的值将替换为“true”或“false”。
由于前两个注释,这些任务是幂等的。
您可能想要更新更多项目。例如,给定变量
下面的任务更新字典
给