如何使用我自己的参数从 galaxy 使用 ansible 角色?
How to use ansible role from galaxy with my own parameters?
我想使用在 ansible galaxy 上找到的角色:robertdebock.java
我想使用此角色安装 java 并将版本作为参数。我在我的 roles/java/tasks/main.yml 文件中试过这个:
- name: Install Java
include_role:
name: robertdebock.java
vars:
java_version: 10
不幸的是,无论我为 java_version
.
提供什么参数,都只安装了版本 11
如何通过我自己的参数使用现有的 Galaxy 角色?
是的,可以使用带有您自己的参数的现有 Galaxy 角色。
但对于您的情况,请阅读 VALID-COMBINATIONS.md 文档。
您可能获得了 OS:
的默认版本
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([])) }}"
您可以在剧本中使用角色时将变量传递给角色:
- name: Install Java
roles:
- { role: robertdebock.java, java_version: 10 }
只要变量使用相同的名称,它们将作为角色变量被拉入,在the proper scope
我想使用在 ansible galaxy 上找到的角色:robertdebock.java
我想使用此角色安装 java 并将版本作为参数。我在我的 roles/java/tasks/main.yml 文件中试过这个:
- name: Install Java
include_role:
name: robertdebock.java
vars:
java_version: 10
不幸的是,无论我为 java_version
.
如何通过我自己的参数使用现有的 Galaxy 角色?
是的,可以使用带有您自己的参数的现有 Galaxy 角色。
但对于您的情况,请阅读 VALID-COMBINATIONS.md 文档。
您可能获得了 OS:
的默认版本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([])) }}"
您可以在剧本中使用角色时将变量传递给角色:
- name: Install Java
roles:
- { role: robertdebock.java, java_version: 10 }
只要变量使用相同的名称,它们将作为角色变量被拉入,在the proper scope