用途:在 Windmill 环境中编写 Ansible Playbook。Playbook 由一个 YAML 文档组成,使用 --- 分隔 Windmill 头与标准 Ansible plays。头部由 Windmill 解析,用于构建输入与运行环境。
主要能力与用法: 头部支持 extra_vars(脚本参数,作为 Jinja 变量在 plays 中引用)、inventory(使用 ansible_inventory 或 dynamic_inventory 资源)、files(运行时把资源或变量写入文件)、dependencies(galaxy collections/roles 与 python pip 包)、options(额外 ansible-playbook 标志如 verbosity: vvv)、vault_password。可用 env lookup 读取 Windmill 上下文环境变量,例如 lookup('env', 'WM_WORKSPACE')。输出通过在作业目录写入 result.json 返回 JSON 结果。
CLI 流程:本地迭代用 wmill script preview <script_path>,不部署;已部署版本用 wmill script run <path>;改动脚本内容后运行 wmill generate-metadata 重新生成 .script.yaml 与 .lock 并刷新哈希,可用 --dry-run 查看受影响项,用 rehash 仅刷新哈希;部署通过 git push 或 wmill sync push,仅在用户明确要求时执行。可用 wmill resource-type list --schema 发现资源类型。
限制:generate-metadata 只写本地文件但会重新解析依赖,可能提升未固定版本,需先确认再运行,并核对依赖版本变化。preview 会执行代码,可能产生副作用。仅在用户明确要求部署时才推送。