我是ansible的新手,所以请原谅任何不正确的语法错误。我有一个简单的手册来安装软件包
我的项目结构如下所示:
TopDir
dev
|roles
| |ant
| | |install
| | | tasks
| | | main.yml
| | |vars
| | main.yml
| |ant-junit
| |install
| | tasks
| | main.yml
| |vars
| main.yml
|install_tools.yml攻略(install_tools.yml):
- name: Install tools
hosts: hostA
tags: ['hostA']
become: yes
roles:
- ant/install
- ant-junit/install
- doxygen/install每个install/main.yml看起来都像这样
- name: Include variables in vars
include_vars: ../../vars/main.yml
- name: Install {{tool_name}}
yum:
name: "{{tool_name}}-{{tool_version}}"
state: present在每个vars/main.yml中,我定义了tool_name和tool_version。所以我想做一些类似下面的事情,但是vars_files不是TaskInclude的有效属性。其想法是generic_install将使用从vars_files定义的变量
- name: Call generic install
include_tasks: ../../../generic_install.yml
vars_files: ../../vars/main.yml发布于 2020-10-06 07:41:44
我使用了错误的属性。下面的方法对我很有效。请注意,我必须使用import_task而不是include_tasks。我不能完全确定其中的区别,但它只适用于import_tasks和vars
- name: Call generic install
import_tasks: ../../../generic_install.yml
vars:
tool_name: "{{tool_name}}"
tool_version: "{{tool_version}}"https://stackoverflow.com/questions/64217090
复制相似问题