Я немного сбит с толку, когда пытаюсь использовать предопределенные переменные в моем шаблоне.Я хочу, чтобы мой файл template.xml содержал правильную информацию, уже определенную в файле vars yaml.
Например, для каждого namevm будут иметь каждый шаблон, который уже содержит каждую информацию, определенную в файле vars.Но, к сожалению, когда я запускаю свой playbook, я получаю следующее сообщение об ошибке, что переменная 'vmname' не определена, в чем я запутался.
Знаете ли вы, какую часть я пропустил?
TASK [createvm : modify db template] ********************************************
fatal: [127.0.0.1]: FAILED! => {
"msg": "The task includes an option with an undefined variable. The error was : 'list object' has no attribute 'vmname'. The offending line appears to be:\n\n\n- name: modify db template\n ^ here\n" }
Как выглядит моя пьеса:
- name: Prepare DB component
hosts: 127.0.0.1
connection: local
roles:
- { role: "createvm" }
Как выглядят мои роли / createvm / tasks / main.yml:
- name: modify db template
template:
src: template.xml
dest: /home/synthesizer/{{ settings.vmname }}.xml
vars:
settings: "{{ dbserver }}"
- name: modify loadbalancer template
template:
src: template.xml
dest: /home/synthesizer/{{ settings.vmname }}.xml
vars:
settings: "{{ loadbalancer }}"
- name: modify forwarder template
template:
src: template.xml
dest: /home/synthesizer/{{ settings.vmname }}.xml
vars:
settings: "{{ forwarder }}"
Это роли / createvm / vars /main.yml выглядит так:
loadbalancer:
- vmname: elbi1
memory: 1024
cpu: 2
- vmname: elbi2
memory: 2048
cpu: 3
forwarder:
- vmname: efwe1
memory: 1024
cpu: 1
- vmname: efwe2
memory: 4096
cpu: 3
dbserver:
- vmname: dibi1
memory: 1024
cpu: 3
- vmname: dibi2
memory: 2048
cpu: 1
И, наконец, так выглядит моя роль / createvm / templates / templates.xml:
<name>{{settings.vmname}}</name>
<memory unit='KiB'>{{settings.memory}}</memory>
<vcpu placement='static'>{{settings.cpu}}</vcpu>