Skip to content

ломается плейбук, при выходе новых минорных версий дистрибутивов #109

@melazyk

Description

@melazyk

- name: set vars_for_distribution_version variables

Проблема: вышла версия RedOS 8.0.2 и плейбук перестал работать, так как переменных для этой версии нет

Возможные решения:

  • скопировать roles/packages/vars/distributions/RED/8.0 в roles/packages/vars/distributions/RED/8.0.2, чтобы находились переменные для нашей версии дистрибутива
  • добавить в переменные vars_for_distribution_version_dir: "distributions/RED/8.0", чтобы использовались значения для версии 8.0

кажется лучше сделать комплексное решение, которое будет поддерживать "работоспособность плейбуков" как можно дольше, и брать значения из первого найденого файла, согласно приоритетам

возможный фикс

- name: Load distribution version variables — with optional explicit override
  ansible.builtin.include_vars:
    file: "{{ vars_for_distribution_version_file }}"
    name: vars_for_distribution_version
  when: vars_for_distribution_version_file is defined and vars_for_distribution_version_file | length > 0

- name: Load distribution version variables — fallback chain (no explicit override)
  ansible.builtin.include_vars:
    file: "{{ item }}"
    name: vars_for_distribution_version
  with_first_found:
    - files:
        - "distributions/{{ ansible_distribution }}/{{ ansible_distribution_version }}/main.yaml"
        - "distributions/{{ ansible_distribution }}/{{ ansible_distribution_major_version }}/main.yaml"
        - "distributions/{{ ansible_distribution }}/main.yaml"
      paths: "{{ role_path }}/vars"
      skip: true
  when: vars_for_distribution_version_file is not defined

так мы сохраним возможность выбрать файл из уже существующих и добавим 2 уровня поиска ( чтобы не ломаться на минорных версиях, в них редко переименовываются пакеты) и в крайнем случае использовать дефолтные для дистрибутива значения

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions