Как исправить ошибку устаревания DEFAULT_GATHER_SUBSET в недоступном?

ansible [core 2.14.2]
python version = 3.11.2
jinja version = 3.1.2

У меня есть это в ansible.cfg

[defaults]

roles_path = roles

callback_plugins = plugins/callback
filter_plugins = plugins/filter

interpreter_python = /usr/bin/python3

ansible_managed = Ansible managed. All changes will be lost. Please edit in ansible playbook only.

callbacks_enabled = profile_tasks,profile_roles,timer

timeout = 240
gathering = explicit
gather_subset = min

Я получаю это раздражающее предупреждение

[ПРЕДУПРЕЖДЕНИЕ ОБ УСТАРЕНИИ]: параметр DEFAULT_GATHER_SUBSET, ключевое слово module_defaults является более общей версией и может применяться ко всем вызовам действий M(ansible.builtin.gather_facts) или M(ansible.builtin.setup), используйте вместо этого module_defaults. Эта функция будет удалена из ansible-core в версии 2.18. Предупреждения об устаревании можно отключить, установив deprecation_warnings=False в файле ansible.cfg.

Я не хочу отключать звук устаревания (используя deprecation_warnings=False), но я хочу правильно исправить это предупреждение.

Как мне это сделать?

P.S. Мне нужно использовать этот параметр в ansible.cfg, а не напрямую в плейбуках.

В соответствии с вашими требованиями «Я не хочу отключать устаревание», «Мне нужно использовать этот параметр в ansible.cfg» и «Я хочу правильно исправить это предупреждение», это, вероятно, оставит вас с изменением кода Ansible напрямую. Возможно в display.py. Обратите внимание, что это только подавит конкретное предупреждающее сообщение об устаревании, основная причина и причина не будут устранены, и проблема станет больше, но только позже. Поэтому рекомендуется обратиться к ней как можно раньше.

U880D 13.02.2023 13:43
Руководство для начинающих по веб-разработке на React.js
Руководство для начинающих по веб-разработке на React.js
Веб-разработка - это захватывающая и постоянно меняющаяся область, которая постоянно развивается благодаря новым технологиям и тенденциям. Одним из...
Разница между Angular и React
Разница между Angular и React
React и AngularJS - это два самых популярных фреймворка для веб-разработки. Оба фреймворка имеют свои уникальные особенности и преимущества, которые...
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Веб-скрейпинг, как мы все знаем, это дисциплина, которая развивается с течением времени. Появляются все более сложные средства борьбы с ботами, а...
Калькулятор CGPA 12 для семестра
Калькулятор CGPA 12 для семестра
Чтобы запустить этот код и рассчитать CGPA, необходимо сохранить код как HTML-файл, а затем открыть его в веб-браузере. Для этого выполните следующие...
ONLBest Online HTML CSS JAVASCRIPT Training In INDIA 2023
ONLBest Online HTML CSS JAVASCRIPT Training In INDIA 2023
О тренинге HTML JavaScript :HTML (язык гипертекстовой разметки) и CSS (каскадные таблицы стилей) - две основные технологии для создания веб-страниц....
Как собрать/развернуть часть вашего приложения Angular
Как собрать/развернуть часть вашего приложения Angular
Вам когда-нибудь требовалось собрать/развернуть только часть вашего приложения Angular или, возможно, скрыть некоторые маршруты в определенных средах?
2
1
63
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В версии 2.18 и более поздних вы не сможете настроить DEFAULT_GATHER_SUBSET . Начиная с версии 2.18 вам придется использовать ключевое слово module_defaults для настройки значения по умолчанию collect_subset модуля setup.

Вместо настройки DEFAULT_GATHER_SUBSET в ansible.cfg

gather_subset = min

Вам нужно будет объявить ключевое слово module_defaults, например, на уровне игры

- hosts: localhost
  module_defaults:
    ansible.builtin.setup:
      gather_subset: min

Спасибо за ваш ответ! Могу ли я использовать этот конфиг в ansible.cfg? Я не хочу менять свои плейбуки ( Только в одном месте

a1dude 13.02.2023 14:29

Нет, вы не можете использовать ключевые слова в конфигурации, и это становится еще хуже. Ключи (названия модулей) должны быть статическими!. Это означает, что вы не можете создать словарь, например, в group_vars/all и использовать его. Вы должны явно объявлять module_defaults при каждом воспроизведении! (Если вы хотите использовать его). Единственным обходным путем, кажется, является какая-то динамическая пьеса из шаблона.

Vladimir Botka 13.02.2023 14:37

См. Централизованное определение избыточных параметров задач и их повторное использование в разных задачах.

Vladimir Botka 13.02.2023 19:18

Другие вопросы по теме