Tôi có nhiều vai trò như sau: haproxy, java, nginx, tomcat
âââ ansible-test-host.yml
âââ hapoxy
âââ java
âââ myplaybook.yml
âââ nginx
âââ mèo con
Playbook cơ sở là: myplaybook.yml
và trông giống như dưới đây:
---
- máy chủ: test-local
kết nối: cục bộ
lọ:
java_version: "1.8.0"
vai trò:
-java
Vì vậy, yêu cầu của tôi phụ thuộc vào các vai trò được chỉ định java/tomcat/nginx, v.v. Tôi có một tệp mẫu để điền. Giả sử logic của tôi là làm như sau:
nếu
vai trò == java thì trong template.j2 tôi phải đặt `JAVA_TOOL_OPTIONS= -Xmx10g -Xms5g`
yêu tinh
role == tomcat thì trong template.j2 mình phải set `JAVA_OPTS= -Xmx10g -Xms5g`
khác
KHÔNG CÓ GÌ
phần cuối
Tôi có các kịch bản cơ bản khác để sắp xếp nhưng nếu tôi có cơ sở của phần còn lại thì tôi có thể làm được.
Những gì tôi đã thử trong vai trò java main.yml ở đây
---
# tệp nhiệm vụ cho java
- tên: xuất các biến ma thuật 'ansible_'
gỡ lỗi:
thông báo: [
"ansible_role_names = {{ ansible_role_names | mặc định({}) }}",
"ansible_dependent_role_names = {{ ansible_dependent_role_names }}",
"ansible_play_role_names = {{ ansible_play_role_names | mặc định([]) | tham gia(',') }}"
]
- tên: đặt sự thật
set_fact:
DEFAULT_VAR: >
{% if "{{ ansible_play_role_names | default([]) | join(',') }}" == "java" %}
Java_TOOL_OPTIONS
{% elif "{{ ansible_play_role_names | mặc định([]) | tham gia(',') }}" == 'tomcat' %}
CATALINA_OPTS
{% khác %}
KHÔNG CÓ GÌ
{% endif %}
- tên: xuất ra var- try1 tùy chỉnh của tôi
gỡ lỗi:
tin nhắn: >
{% if "{{ ansible_play_role_names | default([]) | join(',') }}" == "java" %}
Java_TOOL_OPTIONS
{% khác %}
KHÔNG CÓ GÌ
{% endif %}
- tên: xuất var tùy chỉnh của tôi - echo
gỡ lỗi:
msg: "{{ DEFAULT_VAR }}"
đầu ra của tôi là như
NHIỆM VỤ [java: xuất các biến ma thuật 'ansible_'] *************************************** ***************
được rồi: [127.0.0.1] => {
"tin nhắn": [
"ansible_role_names = ['java']",
"ansible_dependent_role_names = []",
"ansible_play_role_names = java"
]
}
NHIỆM VỤ [java: đặt dữ kiện] ********************************************* ***************************************
được rồi: [127.0.0.1]
NHIỆM VỤ [java: xuất var-try1 tùy chỉnh của tôi] *************************************** ***************************
được rồi: [127.0.0.1] => {
"msg": " KHÔNG CÓ GÌ \n"
}
NHIỆM VỤ [java: xuất var - echo tùy chỉnh của tôi] *************************************** ************************
được rồi: [127.0.0.1] => {
"msg": " KHÔNG CÓ GÌ \n"
}
TÓM TẮT CHƠI *************************************************** ************************************************
127.0.0.1 : ok=5 đã thay đổi=0 không truy cập được=0 thất bại=0 bỏ qua=0 đã giải cứu=0 bỏ qua=0
Xin hãy giúp đỡ với con trỏ để đạt được điều này.