You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible blockinfile模块未按指定缩进值生效问题求助

Ansible blockinfile模块indent参数未按预期生效的问题

问题场景

我的Playbook

- name: Add line to netplan file
  become: true
  ansible.builtin.blockinfile:
    path: /etc/netplan/00-installer-config.yaml.REMOVE
    marker: ""
    block: |4
          test

文件修改前后

  • 修改前00-installer-config.yaml.REMOVE内容:
test
  • 修改后文件内容:
test
  test

我明确指定了4空格缩进,但实际仅生效2空格,尝试8、10等其他整数值也始终是2空格,这是为什么?

原因及解决方法

问题出在对YAML块标记|4的误解——这是YAML自身的块缩进规则,并非blockinfile模块的indent配置。

|4的作用是告诉YAML解析器:块内容的缩进基准线是第4个空格,块内内容超出这个基准的部分会被保留。你当前的test前面有6个空格,减去基准的4个,最终只会保留2个空格,这就是实际缩进为2的原因。

blockinfile模块的缩进需要通过专门的indent参数配置,正确写法如下:

- name: Add line to netplan file
  become: true
  ansible.builtin.blockinfile:
    path: /etc/netplan/00-installer-config.yaml.REMOVE
    marker: ""
    indent: 4  # 这里指定需要的缩进空格数
    block: |
      test

配置后,block内的内容会被自动添加指定的4空格缩进,得到预期结果。

内容的提问来源于stack exchange,提问作者Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 11:25:32