我使用Ansible 2.3.2.0,並且正在調用運行4個不同任務的角色。Ansible,通過標記調用特定角色任務不起作用,所有任務正在運行
當我通過劇本呼叫角色並指定特定標籤時,整個角色和所有任務都正在運行。在ansible 2.0之後,我看到這是一個已知問題,並且建議的解決方法是在include語句下添加靜態指令。我嘗試過,但仍然運行了所有任務。 這裏是在劇本的角色聲明...
roles:
- {role: ansible-role-auto-deploy, tags: [ 'ami', 'launch_config', 'asg']}
這裏是角色main.yml
---
- include: ami.yml
static: yes
tags:
- ami
- include: launch_config.yml
static: yes
tags:
- launch_config
- include: asg.yml
static: yes
tags:
- asg
- include: ami_lc_cleanup.yml
static: yes
tags:
- ami_lc_cleanup
當我跑這與上面的角色聲明,我所期望的AMI, launch_config和asg任務運行,但此外ami_lc_cleanup任務也正在運行。
這些任務都有效,我只是不知道如何限制哪些任務正在運行。有沒有人有任何建議如何讓它工作(能夠通過標籤指定任務)?
這並沒有多大幫助,你能否詳細說明一下? – tman
您將包含的內容定義爲'static:yes',但在使用'when''或''''標記''時使用條件時,它應該是'static:no'。 – clemens321
我試過切換到靜態:沒有,也沒有區別。使用--list-tags和--list-tasks選項,我可以看到前3個任務正在使用TAGS運行:[ami,asg和launch_config],然後當它到達最後一個任務時,它正在運行即使它在通話劇本中沒有標記。所以它必須繼承角色的標記... – tman