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

如何在Ansible剧本启动时生成固定时间戳常量 无需set_fact与重复lookup

解决方案

你可以直接使用Ansible内置的ansible_play_start全局变量实现需求,该变量是剧本启动时自动在控制节点生成的固定时间对象,全剧本生命周期内不会发生变化,无需额外任务、无需调用set_fact、无需重复执行lookup。
直接在module_defaults中按你的时间格式进行格式化即可,示例配置如下:

- hosts:
   - localhost

  module_defaults:
    group/ns.col.session:
      sid: "{{ ansible_play_start.strftime('%Y-%m-%d-%H%M') }}"

补充说明

  • ansible_play_start为Ansible 2.8及以上版本内置变量,完全满足所有约束条件:
    • 无需额外运行任何任务,剧本解析启动阶段自动生成
    • 全局固定,任意位置调用返回的都是同一个时间值
    • 无需单独为获取时间戳配置控制节点执行的任务
      如果你的Ansible版本低于2.8,可以使用命令行传参的方式实现,调用剧本时执行:
ansible-playbook your_playbook.yml -e "sid=$(date '+%Y-%m-%d-%H%M')"

剧本中直接引用{{ sid }}即可,该值同样全局固定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:15:04