こちらの記事は Ansible lint Advent Calendar 2022 カレンダー2 5日目の記事になります。
今回はルール deprecated-module について説明します。
deprecated-module
deprecated-module は非推奨のモジュールが利用されていないか検証をします。このルールを有効にする場合は基本的には Ansible Community Package がインストールされている必要があります。
非推奨モジュールは Ansible lint のバージョンではなく Ansible Community Package のバージョン、もしくはモジュールが該当する collection に依存します。例えば同じバージョンの Ansible lint を採用していても Ansible Community Package 6.1.0 と 7.1.0 では同じ検証結果になりません。
また非推奨モジュールが利用さている場合 Ansible では警告になりますが Ansible lint の検証ではエラーになります。また Ansible Community Package や該当する collection がインストールされていないと deprecated-module の検証が有効にならないため注意が必要です。
Ansible Community Package に含まれる Collection のバージョン
それぞれのバージョンの Ansible Community Package に含まれる collection のバージョンはこちらのリポジトリで確認できます。
問題のあるコード
---
- name: Example playbook
hosts: localhost
tasks:
- name: Configure VLAN ID
ansible.netcommon.net_vlan: # <- 非推奨モジュールが採用さている
vlan_id: 20
修正されたコード
---
- name: Example playbook
hosts: localhost
tasks:
- name: Configure VLAN ID
dellemc.enterprise_sonic.sonic_vlans: # <- 推奨モジュールへ変更する
config:
- vlan_id: 20