Назад | Перейти на главную страницу

Отсутствует переключатель модуля dnf модуля Ansible Centos 8?

Я пытаюсь использовать dnf-модуль Ansible с module переключитесь на установку PHP 7.4 из репозитория remi.

Я делаю это как команду, так как не могу заставить ее работать с помощью Ansible dnf.

Вот что я хочу сделать: dnf module -y install php:remi-7.4

Я не могу работать, если могу использовать module включите модуль Ansible dnf. Кто-нибудь знает, возможно ли это?

Спасибо,

Дэвид

Спасибо за ответ. У меня нет проблем с использованием dnf модуль в Ansible, у меня проблема с использованием параметра module используя Ansible dnf.

Я делаю это:

- name: install php from stream {{ php_module_stream }}
  command: dnf module -y install {{ php_module_stream }}

и я хочу сделать что-то вроде этого:

- name: install php from stream {{ php_module_stream }}
  dnf:
    name: {{ php_module_stream }}
    module: true

Я не могу понять, как использовать это слово module в dnf.

Вы можете установить модуль (который по сути представляет собой группу пакетов), добавив @ перед названием модуля в name параметр Ansible dnf модуль. Его можно использовать так:

- name: install the 'Development tools' package group
  dnf:
    name: '@Development tools'
    state: present

Предупреждение о семантике: Ansible использует термин «модуль» для описания определенного набора команд или функциональности. DNF / Yum4 использует термин «модуль» для описания групп пакетов, функций и поставщиков программного обеспечения. Это может легко запутать этот вопрос.

Согласно официальной документации для Ansible 2.9, нет (документированной) поддержки возможностей "модулей" DNF / Yum4.

Если вам конкретно нужно использовать переключатель «modules» с DNF / Yum4, вы можете сделать это с помощью ansible command или shell модулей, в зависимости от того, как вы его используете. Пример кода:

- name: Use dnf command to install postgresql 9.6 client
  command: dnf module install postgresql:9.6/client

Эта задача включит модуль postgreql, поток 9.6 и установит пакеты, помеченные как часть профиля «клиент».

В качестве альтернативы вы можете попробовать следующие обозначения с dnf модуль в Ansible; Я не тестировал его и не могу сказать, будет ли он работать или сможет ли Ansible правильно интерпретировать специальные символы.

- name: Use the ansible dnf_module to install postgresql 9.6 client
  dnf:
    name: "@postgresql:9.6/client"
    state: present

Согласно документации RHEL8, yum4 / dns принимает эту нотацию без явного вызова переключателя «модуль». (Пример внизу раздела 4.6)