EPELを有効にするAnsibleの正しい方法:yum_repository対yum?

EPELを有効にするAnsibleの正しい方法:yum_repository対yum?

AnsibleはEPELを追加する2つの方法を文書化したようです。一つ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

これは文書の一例にすぎません。デフォルトでは、2番目はリポジトリを有効にするためにyumパッケージをインストールしますが、1番目は関連する.repoファイルで終わる点を除いて、まったく同じことを行います。

ほとんどの顧客ネットワークでは、帯域幅を節約するために内部ミラーリングを使用することが多く、カスタムURLを使用する必要があるため、2番目のオプションを使用します。ただし、この場合は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

関連情報