web-dev-qa-db-ja.com

Ansible Centos 8 dnfモジュールの「モジュール」スイッチがありませんか?

Ansibleのdnfモジュールをmoduleスイッチとともに使用して、レミリポジトリからPHP 7.4をインストールしようとしています。

Ansible dnfを使用して動作させることができないため、これをコマンドとして実行しています。

これが私がやりたいことです:dnf module -y install php:remi-7.4

Ansiblednfモジュールのmoduleスイッチを使用できるかどうかはわかりません。それが可能かどうか誰かが知っていますか?

ありがとう、

ダビデ

返信ありがとうございます。 Ansibleでdnfモジュールを使用することに問題はありません。Ansiblemoduleを使用してパラメーター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でWorddnfを使用する方法がわかりません。

1
Deaton

モジュールの名前の前に@をAnsiblenameモジュールのdnfパラメーターに追加することで、モジュール(基本的にはパッケージのグループ)をインストールできます。次のように使用できます。

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

セマンティクス警告:Ansibleは、「モジュール」という用語を使用して、特定のコマンドセットまたは機能を説明します。 DNF/Yum4は、「モジュール」という用語を使用して、パッケージ、機能、およびソフトウェアベンダーのグループを説明します。これらは、この質問で物事を簡単に混乱させる可能性があります。

Ansible 2.9の公式ドキュメントによる 、DNF/Yum4「モジュール」機能の(文書化された)サポートはありません。

特にDNF/Yum4で「modules」スイッチを使用する必要がある場合は、使用方法に応じて、ansible commandまたはShellモジュールを使用して使用できます。いくつかのサンプルコード:

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

このタスクは、postgreqlモジュール9.6ストリームを有効にし、「client」プロファイルの一部としてタグ付けされたパッケージをインストールします。

または、Ansibleのdnfモジュールで次の表記を試すこともできます。私はそれをテストしておらず、それが機能するかどうか、または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の下部にある例)

0
0xSheepdog