Ansible 的 import_tasks 和 include_tasks 总结

前几天在写 ansbile 的 roles 的时候,定义了一些 tag,但是在使用 ansible-playbook nginx.yml --list-tags 的时候始终不显示我定义的 tag,后来查阅发现原来是 include_tasks 搞的鬼,这里简单总结一下。

import_tasks: 静态加载,也就是 playbook 在运行一开始解析的时候,加载子任务中全部变量。

include_tasks: 动态加载,就是在执行到该子任务的时候,才会加载该子任务中全部变量。

所以,import_tasks 调用的子任务文件名称也就不可以使用变量,但是 include_tasks 调用的子任务名称则可以加变量。

另外,import_tasks 会调用子任务中的所有 tag,使用 –list-tags 参数时也能看到,但是 include_tasks 调用的子任务中如果定义了tag,则不会生效。

参考:https://docs.ansible.com/ansible/2.6/user_guide/playbooks_tags.html

推荐一个不错的 ansible 学习地址:https://www.zsythink.net/archives/category/%e8%bf%90%e7%bb%b4%e7%9b%b8%e5%85%b3/ansible/

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注