ansible tag标签
playbook tag 标签
一个playbook 中执行部分或某类任务,或者不执行某类时,可以给任务集打tag 标签。
执行某类任务用-t 参数,不执行某类任务用--skip-tags 参数;
1、查看playbook 中的所有tag:
ansible-playbook --list-tags test_tag.yml
2、预留tag 标签:always,tagged,untagged,all,never;
all:默认值,表示所有任务会被执行;
always: tags的值指定为always时,那么这个任务就总是会被执行,除非你使用–skip-tags选项明确指定不执行对应的任务;
never: 与always 相反;
tagged、untagged、all这三个特殊标签并非像always一样,always作为标签值存在,而这三个特殊标签则是在调用标签时使用;
如:
ansible-playbook --tags tagged testtag.yml
上述命令表示只执行有标签的任务,没有任何标签的任务不会被执行。
ansible-playbook --skip-tags tagged testtag.yml
上述命令表示跳过包含标签的任务,即使对应的任务包含always标签,也会被跳过。
ansible-playbook --tags untagged testtag.yml
上述命令表示只执行没有标签的任务,但是如果某些任务包含always标签,那么这些任务也会被执行。
ansible-playbook --skip-tags untagged testtag.yml
上述命令表示跳过没有标签的任务。
特殊标签all表示所有任务会被执行,不用指定,默认情况下就是使用这个标签。
注意:
1、在执行playbook 的-t 参数可以写为:--tags,与--skip-tags相同,给定的值可以是单个,可以是多个,多个的时候用逗号分开,如:-t=tag1,tag2 ;
当给定的值为all 时,执行所有task,无论task 是否有标签;
测试使用playbook yml 文件内容:
--- - hosts: all name: "play book tag1" tasks: - name: "单个tag" debug: msg: "all tag: tag1" tags: tag1 - name: "单个tag2" tags: - tag2 debug: msg: "all tag: tag2" - name: "不存在tag" debug: msg: "all tag:" - name: "多tag,tag1 tag2" tags: tag1,tag2 debug: msg: "all tag:tag1,tag2" - name: "tag: always 与tag1" tags: ['always','tag1'] debug: msg: "all tag: tag1,always"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)