Ansible,启用 EPEL 的正确方法:yum_repository 与 yum?

Ansible,启用 EPEL 的正确方法:yum_repository 与 yum?

Ansible 似乎记录了两种添加 EPEL 的方法一个与yum_repository_module

yum_repository:
  name: epel
  description: EPEL YUM repo
  baseurl: https://download.fedoraproject.org/pub/epel/$releasever/$basearch/

和一个与yum模块

name: install EPEL repo
yum: name=epel-release state=present

其中哪一个更可取?

答案1

这些只是文档中的示例。基本上,它们做的事情完全相同,除了第二个,您安装了 yum 软件包以启用存储库,而在第一个中,您最终只得到相关的 .repo 文件。

我在大多数客户网络上使用第二个选项,因为他们经常使用内部镜像来节省带宽,而我们必须使用自定义 URL。但在这种情况下,您还必须处理 gpg 密钥(在本地下载它们或通过 uri 引用它们)。当使用 rpm 包安装存储库时,您根本不必处理这个问题(如果有任何变化,您可以通过 yum 进行升级)。

所以通过yum安装是最简单的。为了获得最佳实践,我无论如何都不会盲目相信 ansible 文档示例,而是相信EPEL 官方网站这是通过 yum 引用安装。

答案2

对我有用的:

name: Install EPEL repo
yum:
  name: epel-release
  state: present

答案3

在运行 Amazon Linux 2 的 a1.large 实例上,这两种解决方案都不适合我,我所做的是

- name: Ensure epel repo present
  yum:
    name: https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    state: present

  become: true

答案4

作为 Ansible 的新手,我在语法缩进方面遇到了困难。

以下是我在 Rocky Linux 9 和 Ansible 2.13.3 中使用脚本安装到所有目标节点的方法:

- name: Install epel package
  hosts: all
  become: true
  tasks:
  - name: Install package epel-release
    yum:
      name: epel-release
      state: present

相关内容