首页 > 解决方案 > 如何在 ansible include_role 选项中传递文件/文件夹

问题描述

我正在尝试通过使用include_roleansible 中的功能来重用现有角色,但我似乎找不到files/testrole1.yaml从调用角色传递文件夹内文件的方法,并且它始终使用来自公共角色的文件。这是我到目前为止提出的结构和代码:

在此处输入图像描述

---
- name: importing tasks from role1
  include_role:
    name: service-deploy-role1
    tasks_from: "{{item}}"
  loop:
       - install
       - setup

上面的代码总是使用testrole1.yaml file. testrole2.yml当我从 调用安装任务时是否可以通过service-deploy-role1

标签: ansible

解决方案


我可以找出解决方案:

---
- name: workaround
  set_fact:
    role_location: "{{ role_path }}"

- name: debug role path
  debug:
    msg: "{{ role_location }}"

- name: importing tasks from role1
  include_role:
    name: service-deploy-role1
    tasks_from: "{{item}}"
  vars:
    role_dir: "{{ role_location }}"
  loop:
       - install
       - setup

推荐阅读