我正在尝试将几个配置项添加到默认的 containerd 配置文件中。这是文件的片段。
[plugins."io.containerd.grpc.v1.cri".containerd.default_runtime]
runtime_type = ""
runtime_engine = ""
runtime_root = ""
privileged_without_host_devices = false
[plugins."io.containerd.grpc.v1.cri".containerd.untrusted_workload_runtime]
runtime_type = ""
runtime_engine = ""
runtime_root = ""
privileged_without_host_devices = false
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
runtime_type = "io.containerd.runc.v1"
runtime_engine = ""
runtime_root = ""
privileged_without_host_devices = false
[plugins."io.containerd.grpc.v1.cri".cni]
我想在 [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
块的末尾插入以下两行。
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true
我已经设法使用以下代码将它们插入到块的开头。它很乱,我正在手动计算我想要避免的空格。有没有更好的方法来做到这一点?
---
- name: Replace line in file
hosts: control
gather_facts: false
tasks:
- name: Replacing first line
ansible.builtin.lineinfile:
path: /root/config.toml
insertafter: '^(\s+)\[plugins.+\w\.runc\]'
line: ' [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]'
- name: Replacing second line
ansible.builtin.lineinfile:
path: /root/config.toml
insertafter: '^(\s+)\[plugins.+\w\.runc\.options\]'
line: ' SystemdCgroup = true'
我尝试使用 backrefs
但最终替换而不是添加。
答案 0 :(得分:0)
似乎还没有合乎逻辑的方法来做到这一点。最好的解决方案似乎是使用模板(似乎是首选方式)或使用 insertbefore
。