ฉันมีหลายบทบาทดังนี้: haproxy, java, nginx, tomcat
âââ ansible-test-host.yml
âââ แฮพพ็อกซี่
âââ ชวา
âââ myplaybook.yml
âââ nginx
âââ แมวตัวผู้
Playbook พื้นฐานคือ: myplaybook.yml
และดูเหมือนว่าด้านล่าง:
---
- โฮสต์: ทดสอบในเครื่อง
การเชื่อมต่อ: ท้องถิ่น
วาร์:
java_version: "1.8.0"
บทบาท:
- จาวา
ดังนั้นความต้องการของฉันจึงขึ้นอยู่กับบทบาทที่ระบุ java/tomcat/nginx ฯลฯ ฉันมีไฟล์เทมเพลตที่จะเติม บอกว่าตรรกะของฉันคือทำดังนี้:
ถ้า
บทบาท == java จากนั้นใน template.j2 ฉันต้องตั้งค่า `JAVA_TOOL_OPTIONS= -Xmx10g -Xms5g`
เอลฟ์
role == tomcat จากนั้นใน template.j2 ฉันต้องตั้งค่า `JAVA_OPTS= -Xmx10g -Xms5g`
อื่น
ไม่มีอะไร
สิ้นสุด
ฉันมีสถานการณ์พื้นฐานอื่น ๆ ที่จะจัดเรียง แต่ถ้าฉันได้รับฐานที่เหลือฉันสามารถทำได้
สิ่งที่ฉันได้ลองในบทบาทจาวา 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: >
{% ถ้า "{{ ansible_play_role_names | default([]) | join(',') }}" == "java" %}
JAVA_TOOL_OPTIONS
{% elif "{{ ansible_play_role_names | default([]) | join(',') }}" == 'ทอมแคท' %}
CATALINA_OPTS
{% อื่น %}
ไม่มีอะไร
{% เอนดิฟ %}
- ชื่อ: ส่งออก vartry1 ที่กำหนดเองของฉัน
แก้ปัญหา:
ข้อความ: >
{% ถ้า "{{ ansible_play_role_names | default([]) | join(',') }}" == "java" %}
JAVA_TOOL_OPTIONS
{% อื่น %}
ไม่มีอะไร
{% เอนดิฟ %}
- ชื่อ: ส่งออก var - echo ที่กำหนดเองของฉัน
แก้ปัญหา:
ข้อความ: "{{ DEFAULT_VAR }}"
ผลลัพธ์ของฉันคือ
TASK [java : ส่งออกตัวแปรวิเศษ 'ansible_'] ************************************** **************
ตกลง: [127.0.0.1] => {
"ข้อความ": [
"ansible_role_names = ['จาวา']",
"ansible_dependent_role_names = []",
"ansible_play_role_names = จาวา"
]
}
งาน [java : ตั้งค่าข้อเท็จจริง] ******************************************* *************************************
ตกลง: [127.0.0.1]
TASK [java : ส่งออก var-try1 ที่กำหนดเองของฉัน] *************************************** ************************
ตกลง: [127.0.0.1] => {
"msg": " ไม่มีอะไร \n"
}
TASK [java : ส่งออก var ที่กำหนดเองของฉัน - echo] *************************************** ***********************
ตกลง: [127.0.0.1] => {
"msg": " ไม่มีอะไร \n"
}
เล่น RECAP ************************************************ *********************************************
127.0.0.1 : ตกลง=5 เปลี่ยนแปลง=0 ไม่สามารถเข้าถึงได้=0 ล้มเหลว=0 ข้าม=0 ได้รับการช่วยเหลือ=0 ละเว้น=0
โปรดช่วยชี้แนะเพื่อให้บรรลุเป้าหมายนี้