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

如何在Ansible Playbook中打印传入的标签值?

如何在Ansible Playbook中打印传入的标签值

你可以通过Ansible内置变量获取并打印传入的标签,之前的代码思路可行,但需要明确变量差异和执行细节。

正确实现示例

使用ansible_run_tags可直接获取用户命令行传入的标签,ansible_play_tags则包含当前Play中生效的所有标签(含任务自身的always标签)。以下是完整Playbook:

- name: 演示打印传入标签
  hosts: localhost
  tasks:
    - name: 打印用户指定的标签
      debug:
        var: ansible_run_tags
      tags: always

    - name: 打印当前Play生效的所有标签
      debug:
        var: ansible_play_tags
      tags: always

执行方式

运行Playbook时传入目标标签,例如:

ansible-playbook your_playbook.yml --tags START

预期输出

执行后会得到类似结果:

TASK [打印用户指定的标签] *********************************************************
ok: [localhost] => {
    "ansible_run_tags": [
        "START"
    ]
}

TASK [打印当前Play生效的所有标签] *************************************************
ok: [localhost] => {
    "ansible_play_tags": [
        "START",
        "always"
    ]
}

关键注意点

  • 任务必须添加tags: always,确保无论指定什么标签,该任务都会执行并输出标签信息。
  • 若Playbook包含多个Play,ansible_play_tags仅返回当前Play的标签集合,而ansible_run_tags始终是用户传入的完整标签列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 10:35:55