Ansible

Ansible Centos 8 dnf 模組“模組”開關失去?

  • January 24, 2021

我正在嘗試使用 Ansible 的 dnf 模組和module開關從 remi repo 安裝 PHP 7.4。

我將其作為命令執行,因為我無法使用 Ansible dnf 使其工作。

這就是我想要做的:dnf module -y install php:remi-7.4

我無法確定是否可以使用moduleAnsible 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

我不知道怎麼用modulein這個詞dnf

@您可以通過在模組名稱前添加nameAnsible 模組的參數來安裝模組(本質上是一組包)dnf。它可以這樣使用:

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

語義警告: Ansible 使用術語“模組”來描述特定的命令集或功能。DNF/Yum4 使用術語“模組”來描述包、功能和軟體供應商組。這些很容易混淆這個問題。

根據 Ansible 2.9 的官方文件,沒有(記錄)對 DNF/Yum4“模組”功能的支持。

如果您特別需要在 DNF/Yum4 中使用“模組”開關,您可以使用 ansiblecommandshell模組來執行此操作,具體取決於您的使用方式。一些範常式式碼:

- 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 節底部附近的範例)

引用自:https://serverfault.com/questions/991801