ansible常用模块 -- include_role模块 -- 加载并执行角色

ansible常用模块 -- include_role模块 -- 加载并执行角色

include_role模块 – 加载并执行角色

一、摘要

  • 将指定的角色作为任务动态加载和执行。
  • 只能在Ansible任务允许的情况下使用——在pre_tasks, tasks,或post_tasks剧本对象内,或作为角色内的任务。
  • 任务级关键字、循环和条件只应用于include_role语句本身。
  • 要将关键字应用到角色中的任务,可以使用apply选项传递它们,或者使用import_role代替。
  • 忽略一些关键字,如until和retries
  • Windows目标也支持此模块

二、参数

参数选项/默认值描述
allow_duplicates
boolean
· yes ←
· no
覆盖角色的元数据设置,以允许使用相同参数多次使用角色
apply接受任务关键字的散列(例如,tags,become),它将应用于包含的角色中的所有任务。
defaults_from
string
Default: “main”要从角色的defaults/目录加载的文件。
handlers_from
string
Default: “main”要从角色的handlers/目录加载的文件。
name
string
required
要执行的角色的名称
public
boolean
· no ←
· yes
此选项指示角色的变量和默认值是否向剧本公开。如果设置为yes,这些变量将对include_role任务之后的任务可用。此功能不同于在roles头或import_role下面列出的角色的标准变量公开,因为它们在剧本解析时公开,并且对早期的角色和任务也可用。
tasks_from
string
Default: “main”要从角色的tasks/目录加载的文件。
vars_from
string
Default: “main”要从角色的vars/目录加载的文件。

三、示例

- include_role:
    name: myrole

- name: Run tasks/other.yaml instead of 'main'
  include_role:
    name: myrole
    tasks_from: other

- name: Pass variables to role
  include_role:
    name: myrole
  vars:
    rolevar1: value from task

- name: Use role in loop
  include_role:
    name: '{{ roleinputvar }}'
  loop:
    - '{{ roleinput1 }}'
    - '{{ roleinput2 }}'
  loop_control:
    loop_var: roleinputvar

- name: Conditional role
  include_role:
    name: myrole
  when: not idontwanttorun

- name: Apply tags to tasks within included file
  include_role:
    name: install
    apply:
      tags:
        - install
  tags:
    - always

官方文档:https://docs.ansible.com/ansible/2.9/modules/include_role_module.html#include-role-module

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值