ansible 变量传递到include

本文介绍Ansible中如何通过include指令复用任务列表,包括如何定义和使用任务文件及处理程序文件,同时展示了如何传递变量给include文件并进行参数化操作。

Task Include Files And Encouraging Reuse

假设您想在play或playbook中重复使用任务列表。 您可以使用include文件来执行此操作。 使用include的任务列表是定义系统将要实现的角色的好方法。 请记住,playbook中play的目标是将一组系统映射到多个角色。 让我们看看这是什么样子

一个task include 文件只包含一个平面的任务列表,如下所示:

---

# possibly saved as tasks/foo.yml

 - name: placeholder foo

   command: /bin/foo

 - name: placeholder bar

   command: /bin/bar

include指令看起来像这样,并且可以混合在一个playbook中的常规任务: tasks:

  - include: tasks/foo.yml 您也可以将变量传递给include。 我们称之为“参数化include”。 例如,要部署到多个wordpress实例,我可以将所有我的wordpress任务封装在一个wordpress.yml文件中,并使用如下所示:

tasks:   - include: wordpress.yml wp_user=timmy   - include: wordpress.yml wp_user=alice   - include: wordpress.yml wp_user=bob

从1.0开始,变量也可以使用替代语法传递到包含文件,这也支持结构化变量: tasks:

  - include: wordpress.yml     vars:         wp_user: timmy         ssh_keys:           - keys/one.txt           - keys/two.txt

使用任何一种语法,然后可以在包含的文件中使用传入的变量。 我们将在变量中介绍它们。 你可以这样引用它们:

{{ wp_user }} (除了明确传递的参数之外,vars部分中的所有变量也可以在这里使用。)

include也可以在'handler'部分使用,例如,如果你想定义如何重新启动apache,你对所有的Playbook只做一次。 你可能会制作一个看似如下的handlers.yml:

--- # this might be in a file like handlers/handlers.yml - name: restart apache   service: name=apache state=restarted

而在你的main Playbook文件中,只要把它include进来,放到play的底部:

handlers:   - include: handlers/handlers.yml

 

转载于:https://www.cnblogs.com/gaoyuechen/p/7762466.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值