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

在Ansible中使用Jinja2时如何避免创建临时文件

单任务实现方案

你可以直接将模板渲染逻辑内联到shell任务中,不需要额外的set_fact步骤,全程不会生成临时文件,写法如下:

---
- hosts: localhost
  gather_facts: false
  any_errors_fatal: true

  ################################################################
  # 必传 --extra-vars 参数                                       #
  #     myvar    : 自定义变量值                                   #
  # ##############################################################
  vars:
    myvar: "{{ myvar }}"

  tasks:
    - name: 直接渲染模板并传入命令执行
      shell: |
        cat <<< {{ lookup('template', './templates/mytemplate.j2') | quote }} | ./mycommand -f -

说明

  1. lookup('template') 会直接在Ansible控制节点完成Jinja2模板渲染,返回渲染后的纯文本内容,不会写入磁盘
  2. 增加quote过滤器是为了兼容模板渲染结果包含特殊字符(引号、换行、空格等)的场景,避免shell解析出错
  3. 整个流程只有一个任务,没有临时文件生成,完全符合要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:45:07