てくなべ (tekunabe)

ansible / network automation / 学習メモ

[Ansible] ansible-core 2.17 で yum モジュールがなくなった

はじめに

ansible-core 2.17.0 (Ansible Community Package だと 10)では、ansible.builtin.yum モジュールがなくなりました。

With the removal of Python 2 support, the yum module and yum action plugin are removed and redirected to dnf.

https://github.com/ansible/ansible/blob/stable-2.17/changelogs/CHANGELOG-v2.17.rst#v2-17-0

マネージドノード(自動化対象ノード)での Python 2系のサポートをしなくなったことによるものです。

影響

表に見える影響として分かりやすいのは、ドキュメントです。ansible.builtin 内の一覧から yum モジュールが消えています。

yum がない

以前は閲覧できた yum モジュールのページも Not Found です。

ansible-doc でも見れません。

# ansible-core 2.17.0 で検証
% ansible-doc yum                
[WARNING]: yum was not found
% ansible-doc ansible.builtin.yum  
[WARNING]: ansible.builtin.yum was not found

ドキュメントでは、以前のバージョンに切り替えれば見れます。

実装としては、ansible.built.dnf モジュールへのリダイレクトとして残っています。

ansible/lib/ansible/config/ansible_builtin_runtime.yml at v2.17.0 · ansible/ansible · GitHub

ansible.builtin.yum モジュールを使った(用に見える)Playbook を実行する際、-vv をつけると、ansible.builtin.dnf にリダイレクトする様子が確認できます。

Playbook:

    - name: Install git
      ansible.builtin.yum:
        name: git
      become: true

実行ログ:

PLAYBOOK: yum.yml **************************************************************
1 plays in yum.yml

PLAY [Yum] *********************************************************************
redirecting (type: action) ansible.builtin.yum to ansible.builtin.dnf

TASK [Install git] *************************************************************
task path: /Users/sakana/ansible/yum.yml:7
redirecting (type: action) ansible.builtin.yum to ansible.builtin.dnf
redirecting (type: action) ansible.builtin.yum to ansible.builtin.dnf

おわりに

脱 Python2 がだいぶ進みましたね。

参考