我正在尝试将几个配置项添加到默认的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
,但最终替换而不是添加。
似乎还没有合乎逻辑的方法来做到这一点。最好的解决方案似乎是使用模板(似乎是首选方式(或使用insertbefore
。