manager: auto
- name: "Устанавливаем версию {{ pgsql_version }}"
ansible.builtin.dnf:
name: "postgresql{{ pgsql_version }}-server, postgresql{{ pgsql_version }}"
state: latest
tags: updatepkgs
when: "'postgresql{{ pgsql_version }}-server' not in ansible_facts.packages"
[WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: 'postgresql{{ pgsql_version }}-server' not in ansible_facts.packages
Ну надо мне обозначить имя пакета с учётом версии, которая задаётся переменной! Говорит нельзя, хотя работает. А как надо тогда?
Вообще у вас лишняя логика. Можно просто поставить нужный пакет. Условие проверки его наличия не обязательно, модуль сам проверит - стоит уже пакет или нет.
В данном случае, наверное вы правы, но бывает что вместо имени пакет в name: ставится http://.....some.rpm. Тогда логика конечно та же. но вот время выполнения таска очень сильно увеличивается, за счёт того, что dnf лежет наружу за пакетом, сверяет версии и т.д.
Обсуждают сегодня