Điểm:0

Ansible- Xác định các biến dựa trên các điều kiện với if elif other

lá cờ in

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.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.