如何在Ansible Playbook中将变量值写入指定文件?
Ansible 变量写入指定格式文件实现方法
有两种常用的实现方案,都可以满足需求:
方案1:使用 copy 模块直接生成(适合内容简单的场景)
直接在现有 Playbook 中新增 copy 任务即可,完整示例如下:
- hosts: myhost vars: A: "{{ input }}" tasks: - name: 写入变量值到文件B ansible.builtin.copy: dest: /your/target/path/B # 替换为文件B的实际存储路径 content: 'A="{{ A }}"'
Ansible 会自动将变量 A 的实际值(也就是 survey 输入的内容)渲染到 content 中,直接生成符合格式要求的文件B。
方案2:使用 template 模块(适合文件内容复杂、后续有扩展需求的场景)
- 新建 Jinja2 模板文件
B.j2,内容直接写你需要的格式:A="{{ A }}" - 在 Playbook 中新增 template 任务调用模板:
- hosts: myhost vars: A: "{{ input }}" tasks: - name: 渲染模板生成文件B ansible.builtin.template: src: /your/template/path/B.j2 # 替换为模板文件的实际路径 dest: /your/target/path/B # 替换为文件B的实际存储路径
注意事项
- 两种方案都支持 survey 输入的任意合法字符串内容,无需手动处理转义,Ansible 会自动适配特殊字符
- 若需要覆盖文件已有内容,两个模块默认都会直接覆盖,不需要额外加参数
内容的提问来源于stack exchange,提问作者asking
相关产品推荐
相关产品推荐

