EPEL을 활성화하는 Ansible의 올바른 방법: yum_repository 대 yum?

EPEL을 활성화하는 Ansible의 올바른 방법: 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 문서 예제를 맹목적으로 신뢰하지는 않지만 오히려에펠 공식 홈페이지이것은 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

관련 정보