Что такое проверка для пула хранения LV в шаблоне j2 с ansible? - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь определить пулы хранения LV с помощью ansible следующим образом.Я борюсь с тем, как проверить, который используется в файле .xml.j2 во время определения.

Кто-нибудь может подсказать, как это сделать и определить требуемый пул производства в этом примере?

Я думал о том, чтобы как-то использовать ссылку на 'name: "{{ production_storage_pool }}"' из пьесы?Оба пула находятся на одном хосте, поэтому проверка хоста невозможна.

name: Define Production Storage Pool
  virt_pool:
    command: define
    name: "{{ production_storage_pool }}"
    xml: "{{ lookup('template', '../templates/pool.xml.j2') }}"


    <pool type='logical'>
    {% if HOW TO CHECK FOR "{{ staging_storage_pool }}" %}
      <name>{{ staging_storage_pool }}</name>
      <source>
        <device path='{{ staging_disk }}'/>
        <name>{{ staging_volgroup }}</name>
        <format type='lvm2'/>
      </source>
      <target>
        <path>/dev/{{ staging_volgroup }}</path>
      </target>
    {% elif HOW TO CHECK FOR "{{ production_storage_pool }}" %}
      <name>{{ production_storage_pool }}</name>
      <source>
        <device path='{{ production_disk }}'/>
        <name>{{ production_volgroup }}</name>
        <format type='lvm2'/>
      </source>
       <target>
        <path>/dev/{{ production_volgroup }}</path>
       </target>
    {% endif % }
    </pool>

В настоящее время я использую два отдельных файла, но мне нужен только один с проверкой и т. Д.

1 Ответ

0 голосов
/ 23 октября 2018

Решено: Я определил переменные production_pool & staging_pool в каждой пьесе и использовал проверку «определен» в шаблоне j2.

vars:
  production_pool:

- debug: var=staging_pool

- debug: var=production_pool

name: Define Production Storage Pool
  virt_pool:
    command: define
    name: "{{ production_storage_pool }}"
    xml: "{{ lookup('template', '../templates/pool.xml.j2') }}"


<pool type='logical'>
{% if staging_pool is defined %}
  <name>{{ staging_storage_pool }}</name>
  <source>
    <device path='{{ staging_disk }}'/>
    <name>{{ staging_volgroup }}</name>
    <format type='lvm2'/>
  </source>
  <target>
    <path>/dev/'{{ staging_volgroup }}'</path>
  </target>
{% elif production_pool is defined %}
  <name>{{ production_storage_pool }}</name>
  <source>
    <device path='{{ production_disk }}'/>
    <name>{{ production_volgroup }}</name>
    <format type='lvm2'/>
  </source>
   <target>
    <path>/dev/'{{ production_volgroup }}'</path>
   </target>
{% endif % }
</pool>


TASK [debug]
ok: [hostname] => {
    "staging_pool": "VARIABLE IS NOT DEFINED!"
}

TASK [debug]
ok: [hostname] => {
   "production_pool": null
}
...