我有简单的角色来安装Weblogic服务器;现在我想添加一个 deinstall.yml 任务文件。
目前我创建了一个新的简单剧本,并想用它执行文件tasks/deinstall.yml。请问我怎样才能做到这一点?我最新的方法是使用标签......这是一种可能的方法吗?当我测试它时,main.yml被执行,其中的块和任务没有标签。
- hosts: alf_sandbox
roles:
- role: Weblogic
vars:
domain: TODO
tags: deinstall
角色目录的一部分
├── tasks
│ ├── deinstall.yml
│ ├── main.yml
您的标签示例不会进行过滤,而是将标签卸载添加到角色中的每个任务中。请参阅https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_tags.html#adding-tags-to-roles
您可以通过从 main.yml 中包含 deinstall 并设置 never 标签来使用标签:
然后要求 Ansible 仅运行标记有 deinstall 的任务
ansible-playbook ./weblogic.yml --tags deinstall
另一个选项是使用tasks_from选项的include_role:
但通常卸载可能只是一个单独的剧本。这可以保持您的角色干净,并且安装/配置和卸载任务之间通常很少有重叠。