ansible☞playbook-include

阅读量: zyh 2020-05-18 17:12:44
Categories: > Tags:

引入额外任务

tasks:
  - include: add.yml

绑定 kv 对,从而改变额外任务里的变量

tasks:
  - include: add.yml
    var1=hello
    var2=world

绑定 tags 标记

可以通过tags执行相应的额外任务

tasks:
  - include: add1.yml
    tags: add1
  - include: add2.yml
    tags: add2
ansible-playbook test.play --tags add1 # 仅执行 add1.yml 任务

绑定 loop 循环

tasks:
  - include: add.yml
    loop:
      - [1,2,3]

# add.yml
- debug:
  msg: "loop-item: {{ item }} in add.yml "

绑定 when 条件

tasks:
  - include: add.yml
    when: 1 < 2

ansible 在当前版本2.9中,推荐使用 import_tasks 和 include_tasks 来替换 include,include 未来有可能不在支持。(为啥总感觉 ansible 各种变呢)

import_tasks 静态任务导入,静态任务简单来说,就是不能从任务外传递变量到任务中。

include_tasks 动态任务导入。支持循环传递变量

import_tasks 绑定 when 的时候,会将 when 的条件一对一的应用到任务文件中列出的所有任务

include_tasks 绑定 when 的时候,会将 when 的条件仅应用到任务文件。即只要条件为真,任务文件里的所有任务都会执行。

关于新版写法,绑定 tags 的方式,和旧版差异比较大,例如

include_tasks

---
- hosts: localhost
  remote_user: zyh
  gather_facts: no
  tasks:
    - name: test
      include_tasks: 
        file: add.yml
        apply:
          tags:
            - add
      tags:
        - always
        
# add.yml
- debug:
    msg: "{{ item }} is ok"
  loop: [1,2,3]