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