2017-09-27 49 views
0

我描述了我的标签在最后的剧本在接下来的方式来标记:Ansible。分配前/后任务剧本

roles: 
    - { role: common, tags: ["common"] } 
    - { role: redis, tags: ["redis"] } 

除此之外,在同样的剧本我都预/后任务部分:

pre_tasks: 
    - include: pre_post_tasks/create_lock.yml 

    post_tasks: 
    - include: pre_post_tasks/remove_lock.yml 

问题是,前/后任务只启动与包括所有的标签(W/O标签参数):

ansible-playbook -vv -l host -i inventory/dev --extra-vars '@temporary/additional_inventory' playbook.yml 

,不与标签:

ansible-playbook -vv -l host -i inventory/dev --extra-vars '@temporary/additional_inventory' playbook.yml --tags "redis" 

为什么?它是否由设计?如何避免这种情况?我想在所有情况下执行前/后任务。

回答

4

像所有任务一样,您可以使用special tags。在你的情况下,always

pre_tasks: 
    - include: pre_post_tasks/create_lock.yml 
    tags: 
     - always 

post_tasks: 
    - include: pre_post_tasks/remove_lock.yml 
    tags: 
     - always