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
を使用する方法がわかりません。
モジュールの名前の前に@
をAnsiblename
モジュールのdnf
パラメーターに追加することで、モジュール(基本的にはパッケージのグループ)をインストールできます。次のように使用できます。
- name: install the 'Development tools' package group
dnf:
name: '@Development tools'
state: present
セマンティクス警告: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の下部にある例)