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

Ansible如何通过Jinja2模板仅修改INI配置文件的指定行

INI配置文件部分模板化的实现方案

要实现仅修改指定行、其余配置和格式完全保留,有两种成熟方案可选:

方案1:直接编写Jinja2模板

这是最贴合需求的方案,只需要把原有INI配置原封不动复制到configuration.ini.j2文件中,仅替换需要修改的两行的取值即可。Jinja2渲染时会完整保留所有未使用模板标记的内容,不会改动原有格式、注释、空格缩进。

模板内容示例:

[configuration]
config1 = this_is_fine
config2 = {{ assigned_value }}
config3 = {{ assigned_value }}
config_4 = this_is_fine

你只需要在Ansible playbook中正常调用template模块渲染该模板到目标路径即可:

- name: 渲染配置文件模板
  ansible.builtin.template:
    src: configuration.ini.j2
    dest: /etc/你的配置路径/configuration.ini
    mode: '0644'

方案2:使用ini_file模块直接修改(无需维护模板)

如果你不想维护完整的模板文件,或者配置文件可能会被其他流程修改、需要保留已有修改仅更新指定配置项,可以直接用Ansible自带的community.general.ini_file模块实现,完全不会触碰未指定的配置内容:

- name: 更新INI配置指定项
  hosts: 你的目标主机分组
  tasks:
    - name: 修改config2和config3的取值
      community.general.ini_file:
        path: /etc/你的配置路径/configuration.ini
        section: configuration
        option: "{{ item }}"
        value: "{{ assigned_value }}"
        mode: '0644'
      loop:
        - config2
        - config3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:39:00