LINUX.ORG.RU

Сообщения Masterplan

 

Ansible, проблема с шаблоном jinja2

Всем привет. Не получается настроить шаблон для определения сетевого адаптера по его IP адресу

Во второй строке закралась ошибка (['ansible_'+interface]), не могу понять что делаю не так...

{% for interface in ansible_interfaces %}
{% if hostvars[inventory_hostname]['ansible_'+interface].ipv4.address == LANIP %}
INTERFACES="{{ interface }}"
{% endif %}
{% endfor %}

Если в ручную прописать нужный адаптер (['ansible_enp3s0']), то скрипт отрабатывает как надо.

С jinja2 синтаксисом столкнулся в первые, два для убил на мануалы, но так и не дошло, в итоге получаю такую ошибку :

fatal: [host]: FAILED! => {
    "msg": "The task includes an option with an undefined variable. The error was: 'dict object' has no attribute u'ansible_br-141a37688284'\n\nThe error appears to have been in '/home/ansible/playbooks/testj2.yml': line 10, column 6, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n  tasks:\n   - pause:\n     ^ here\n"

Playbook

---
- hosts: host
  become: yes
  become_user: root
  become_method: sudo
  vars:
    LANIP: 192.168.{{ IP }}.1
  tasks:
   - pause:
        prompt: "{{ lookup('template', 'demo.j2') }}"

 

Masterplan
()

RSS подписка на новые темы