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

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

  • 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

你可能感兴趣的:(ansible,ansible,运维,服务器,linux)