У меня есть несколько ролей: haproxy, java, nginx, tomcat.
âââ ansible-test-host.yml
âââ гапокси
ââ java
âââ myplaybook.yml
— nginx
âââ кот
Базовый сборник игр: myplaybook.yml
и выглядит следующим образом:
---
- хосты: test-local
подключение: местное
вары:
java_версия: "1.8.0"
роли:
- Ява
Поэтому мое требование зависит от указанных ролей java/tomcat/nginx и т. д. У меня есть файл шаблона для заполнения. Скажем, моя логика заключается в следующем:
если
role == java, то в template.j2 я должен установить `JAVA_TOOL_OPTIONS= -Xmx10g -Xms5g`
Элиф
role == tomcat, то в template.j2 я должен установить `JAVA_OPTS= -Xmx10g -Xms5g`
еще
НИЧЕГО ТАКОГО
конец
У меня есть другие основные сценарии для сортировки, но если я получу основу, я смогу это сделать.
То, что я пробовал в java-роли main.yml, находится здесь.
---
# файл задач для java
- имя: вывод магических переменных 'ansible_'
отлаживать:
сообщение: [
"ansible_role_names = {{ ansible_role_names | по умолчанию ({}) }}",
"ansible_dependent_role_names = {{ ansible_dependent_role_names }}",
"ansible_play_role_names = {{ ansible_play_role_names | default([]) | join(',') }}"
]
- название: набор фактов
set_fact:
DEFAULT_VAR: >
{% if "{{ ansible_play_role_names | default([]) | join(',') }}" == "java" %}
JAVA_TOOL_OPTIONS
{% elif "{{ ansible_play_role_names | default([]) | join(',') }}" == 'tomcat' %}
CATALINA_OPTS
{% еще %}
НИЧЕГО ТАКОГО
{% конец%}
- имя: вывод моей пользовательской переменной var-try1
отлаживать:
сообщение: >
{% if "{{ ansible_play_role_names | default([]) | join(',') }}" == "java" %}
JAVA_TOOL_OPTIONS
{% еще %}
НИЧЕГО ТАКОГО
{% конец%}
- имя: вывести мою пользовательскую переменную - эхо
отлаживать:
сообщение: "{{DEFAULT_VAR}}"
Мой вывод такой
ЗАДАЧА [java: вывести магические переменные 'ansible_'] ********************************************** ****************
ок: [127.0.0.1] => {
"сообщение": [
"ansible_role_names = ['java']",
"ansible_dependent_role_names = []",
"ansible_play_role_names = Java"
]
}
ЗАДАЧА [java: установить факты] ************************************************* ****************************************
хорошо: [127.0.0.1]
ЗАДАЧА [java: вывести мой пользовательский var-try1] ********************************************* *************************
ок: [127.0.0.1] => {
"msg": " НИЧЕГО\n"
}
ЗАДАЧА [java: вывести мою пользовательскую переменную - эхо] ******************************************* *************************
ок: [127.0.0.1] => {
"msg": " НИЧЕГО\n"
}
ОБЗОР ИГРЫ ******************************************************* ************************************************
127.0.0.1 : ok=5 изменено=0 недостижимо=0 не удалось=0 пропущено=0 спасено=0 проигнорировано=0
Пожалуйста, помогите с указателями для достижения этого.