如何通过我自己的参数使用银河系的角色?

时间:2018-11-05 20:30:34

标签: ansible ansible-galaxy

我想使用一个在银河系中发现的角色:robertdebock.java

我想使用此角色以版本作为参数来安装Java。我已经在我的role / java / tasks / main.yml文件中尝试过此操作:

- name: Install Java
  include_role:
    name: robertdebock.java
  vars:
    java_version: 10

不幸的是,无论我为java_version提供什么参数,都仅安装了版本11。

如何通过我自己的参数使用现有的Galaxy角色?

2 个答案:

答案 0 :(得分:1)

是的,可以将现有的Galaxy角色与您自己的参数一起使用。

但是对于您而言,请阅读VALID-COMBINATIONS.md文档。

您可能会获得操作系统的默认版本:

https://github.com/robertdebock/ansible-role-java/blob/master/vars/main.yml#L73

java_openjdk_package: "{{ _java_openjdk_package[java_type][java_version][ansible_distribution] | default(_java_openjdk_package[java_type][java_version]['default'] | default([])) }}"

答案 1 :(得分:0)

在剧本中使用角色时,可以将变量传递给角色:

- name: Install Java
  roles: 
  - { role: robertdebock.java, java_version: 10 }

只要变量使用相同的名称,它们就会作为角色变量进入the proper scope