我有具有多个角色的 setup.yml
:
setup.yml:
- hosts: localhost
roles:
- { role: file-download, tags: files }
- { role: setup-nginx, tags: nginx}
- { role: restart-vm, tags: restartvm }
- { role: file-upload, tags: upload}
- { role: intall-vm, tags: installvm}
- { role: create-backup, tags: backup}
从命令行我可以运行:
ansible-playbook -i inventory setup.yml --tags=nginx
ansible-playbook -i inventory setup.yml --tags=restartvm
如何将_playbooks导入到new.yml
playbook并仅运行具有标签nginx
和restartvm
的角色?
new.yml:
- import_playbook: setup.yml --tags=nginx
- import_playbook:setup.yml --tags=restartvm
我收到以下错误:
ERROR! Invalid variable name in vars specified for PlaybookInclude: '--tags' is not a valid variable name
感谢帮助
最佳答案
这行不通。您只能使用包含 playbook 的 yaml 文件名来提供 import_playbook
。
来自the doc :
The name of the imported playbook is specified directly without any other option.
但是,如果在您的 new.yml
中,您只需具有 import_playbook: setup.yml
,然后将标记指定为 ansible-playbook
选项,它将完成工作:
ansible-playbook -i inventory new.yml --tags=my_tag
关于带有角色标签的 ansible import_playbook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63939537/