1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Almalinux10 で `dnf install ansible` が「一致するものが見つかりません」になる原因と対策

1
Posted at

はじめに

この記事は備忘録です。
余談及び茶番が多分に含まれています。
読む必要のある箇所は本題結論詳細だけです。

余談

昨日、知り合いのじじいに WhisperKH Coder の使い方教えたら、対価として、いい寿司屋に連れて行ってもらった。

高っ、と思ったけど、やっぱり値段なりにおいしいなと思った。
 
そうだと断言する意図があるわけではないが、やはり、価格と満足感はそれなりに比例すると思った。
しかし、悲しいかな、こういうことを繰り返していると、だんだん回転ずしとかに行く気がなくなってしまう。
一度引き上げられた認識を戻すことはそれなりに難しい。

別に大したことじゃないように思えるかもしれないが、本来満たすべき要件とは別に一度引き上げられたサービスレベルや、過大な目標値の前提化は、往々にしてコンコルド効果を生みかねない。

今こそ、イオンのフードコートに回帰すべきなのかもしれない。

本題

AlmaLinux 9 までは、ansible を入れる際に、以下のコマンドで導入していた。

dnf install -y ansible

ところが、AlmaLinux 10 を導入し ansible を同じように入れた際にこのようにエラーが返ってきた。

image.png

No match for argument: ansible
Error: Unable to find a match: ansible

??? なんで ???

     ???        .-----------.
  ( ・_・)ゞ    | Not exist! |
    /| |        '-----------'
     / \             |_|
                   

結論

AlmaLinux 10.2 では dnf 経由で全部入りの ansible をインストールすることはできない。
2026年9月時点の標準リポジトリ/EPEL 10には、Collectionを同梱した全部入りの ansible RPM は提供されていない。ちくしょー。

対処方法は、大きく分けて2つある。

全部入りのAnsibleを使いたい場合(推奨)

おとなしく、pipから ansible をインストールする。

dnf install -y python3-pip

# Ansibleを実行するユーザーで実行(rootで使用するならrootでよい)
python3 -m pip install --user ansible

DNFで管理したい場合

ansible-core と、Playbookが使用するCollectionを個別にインストールする。

dnf install -y epel-release

# CRBを確認。今回の環境ではすでに有効だった
dnf repolist --enabled | grep -i crb

# 何も表示されず、CRBが無効だった場合のみ実行
/usr/bin/crb enable

dnf makecache --refresh
dnf install -y ansible-core

# 僕の場合は以下が追加で必要だった
dnf install -y python3-libselinux
dnf install -y ansible-collection-ansible-posix

僕の場合、ほかのOSパッケージと管理方法をそろえるため、後者のDNF構成を採用した。

詳細

前提として、我々が ansible と呼んでいるものには、細かく分けると2つが存在している。

  • ansible-core:実行エンジンと基本モジュール
  • ansibleansible-core に多数のCollectionを追加した全部入り版

ややこしいのだが、この2つは単なる別名ではなく、別パッケージになる。

Ansible公式ドキュメント

EL9ではEPELに全部入りの ansible RPMがあったが、EPEL 10では提供されていない。

Fedoraパッケージ情報

現在(2026年9月時点)もEPEL 10向けパッケージ作成要求は未解決で、メンテナーからも「実行エンジンが必要なら ansible-core をインストールする」と案内されている。

EPEL 10の関連Issue

実際のパッケージ提供状況

AppStream、CRB、EPELをすべて有効にした状態で検索したが、表示されたのは ansible-core だけだった。

[root@linux ~]# dnf repolist --enabled | grep -E 'appstream|crb|epel'
appstream   AlmaLinux 10 - AppStream
crb         AlmaLinux 10 - CRB
epel        Extra Packages for Enterprise Linux 10 from AlmaLinux - x86_64_v2

[root@linux ~]# dnf repoquery --available ansible ansible-core
ansible-core-1:2.16.16-2.el10.noarch
ansible-core-1:2.16.16-2.el10_2.1.noarch

そのため、dnf install ansible は次のエラーになる。

[root@linux ~]# dnf install -y ansible
No match for argument: ansible
Error: Unable to find a match: ansible

一方、ansible-core はAppStreamから正常にインストールできた。

[root@linux ~]# rpm -q ansible-core ansible
ansible-core-2.16.16-2.el10_2.1.noarch
package ansible is not installed

[root@linux ~]# type -a ansible ansible-playbook
ansible is /usr/bin/ansible
ansible-playbook is /usr/bin/ansible-playbook

パッケージ名は ansible-core だが、実行するコマンド名は従来どおり ansibleansible-playbook になる。

最初からpip版だけを使えばよいのでは?

その通り。

最初からpip版だけを使用するのであれば、DNF版との競合は発生しない。今回の検証でも、pipから ansible 14.3.1 を正常にインストールできた。

Successfully installed ansible-14.3.1 ansible-core-2.21.4

単純にAnsibleを動かしたい場合や、Collectionを含む全部入り版を使いたい場合は、pip版へ統一する方法も有効な選択肢になる。

僕の場合、インストール、更新、削除をほかのOSパッケージと同じRPM/DNFで管理したかったため、DNF版を選択した。

重要なのは、pipとDNFのどちらを選ぶかではなく、両方を意図せず混在させないことである。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?