Ansible
Ansible Centos 8 dnf 模組“模組”開關失去?
我正在嘗試使用 Ansible 的 dnf 模組和
module
開關從 remi repo 安裝 PHP 7.4。我將其作為命令執行,因為我無法使用 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
in這個詞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“模組”功能的支持。
如果您特別需要在 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 節底部附近的範例)