Puncte:0

Ansible- Definiți variabile pe baza condițiilor cu if elif else

drapel in

Am mai multe roluri, după cum urmează: haproxy, java, nginx, tomcat

âââ ansible-test-host.yml
âââ hapoxi
âââ java
âââ myplaybook.yml
âââ nginx
âââ pisica

Registrul de bază este: myplaybook.yml si arata ca mai jos:

---
- gazde: test-local
  conexiune: locală
  vars:
    java_version: „1.8.0”

  roluri:
    - java

Deci, cerința mea depinde de rolurile specificate java/tomcat/nginx etc. Am un fișier șablon de populat. Spunem că logica mea este să fac după cum urmează:

dacă 
    rol == java apoi în template.j2 Trebuie să setez `JAVA_TOOL_OPTIONS= -Xmx10g -Xms5g` 
elif 
    rol == tomcat apoi în template.j2 Trebuie să setez `JAVA_OPTS= -Xmx10g -Xms5g` 
altfel    
    NIMIC 
endif

Am și alte scenarii care stau la baza de sortat, dar dacă primesc baza, pot să o fac.

Ce am încercat în rol java main.yml este aici

---
# fișier de sarcini pentru java
- nume: scoateți variabilele magice „ansible_”.
  depanare:
    mesaj: [
      „ansible_role_names = {{ ansible_role_names | default({}) }}”,
      „ansible_dependent_role_names = {{ ansible_dependent_role_names }}”,
      "ansible_play_role_names = {{ ansible_play_role_names | default([]) | join(',') }}"
    ]

- nume: set de fapte
  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
                {% altfel %}
                NIMIC
                {% endif %}

- nume: scoateți var-a personalizată1
  depanare:
    mesaj: >
        {% if "{{ ansible_play_role_names | default([]) | join(',') }}" == "java" %}
        JAVA_TOOL_OPTIONS
        {% altfel %}
        NIMIC
        {% endif %}


- nume: scoateți varul meu personalizat - echo 
  depanare:
    msg: „{{ DEFAULT_VAR }}”

Ieșirea mea este ca

SARCINA [java: scoateți variabilele magice „ansible_”] **************************************** *************
ok: [127.0.0.1] => {
    "msg": [
        "ansible_role_names = ['java']",
        „ansible_dependent_role_names = []”,
        „ansible_play_role_names = java”
    ]
}

SARCINA [java: set facts] ******************************************** ************************************
ok: [127.0.0.1]

SARCINA [java: scoateți var-a personalizată1] **************************************** ************************
ok: [127.0.0.1] => {
    "msg": " NIMIC \n"
}

SARCINA [java: scoateți varul personalizat - echo] **************************************** ************************
ok: [127.0.0.1] => {
    "msg": " NIMIC \n"
}

JOACĂ RECAPITULARE ************************************************ ********************************************
127.0.0.1: ok=5 schimbat=0 inaccesibil=0 eșuat=0 omis=0 salvat=0 ignorat=0   

Vă rugăm să ajutați cu indicații pentru a realiza acest lucru.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.