LoginSignup
1
0

More than 1 year has passed since last update.

【ルール説明・production】fqcn

Last updated at Posted at 2022-12-25

こちらの記事はAnsible lint Advent Calendar 2022 25日目の記事になります。

今回はルール fqcn について説明します。

fqcn

fqcn は Ansibleコンテンツで Action やモジュール等を利用する際 FQCN (fully-qualified collection names) で記述されているか検証します。

現在のところはexperimentalのため fqcn に違反していると警告が出力されエラーにはなりません。

fqcn は以下の3つの分類があります。

  • fqcn[action]
  • fqcn[action-core]
  • fqcn[canonical]

fqcn[action]

Action プラグイン が FQCN で記述されているか検証します。

問題のあるコード

ansible.cfg
[defaults]
    # FQCN で記述されていない
    callbacks_enabled = profile_tasks 

修正されたコード

ansible.cfg
[defaults]
    # FQCN で記述する
    callbacks_enabled =  ansible.posix.profile_tasks

fqcn[action-core]

ansible.legacyコレクションおよびansible.builtinコレクションが利用されている時に FQCN で記述されいるか検証します。

問題のあるコード

---
- name: Example playbook
  hosts: all
  tasks:
    - name: Create an SSH connection
      shell: ssh ssh_user@{{ ansible_ssh_host }} # <- FQCN で記述されていない

修正されたコード

---
- name: Example playbook (2nd solution)
  hosts: all
  tasks:
    - name: Create an SSH connection
      # FQCN で記述する
      ansible.builtin.shell: ssh ssh_user@{{ ansible_ssh_host }}

fqcn[canonical]

Ansible の外部モジュールや外部コレクションで FQCN が正しく表記されているか検証します。

多くの Ansible コレクションではモジュール名やコレクション名が古い FQCN で記述されていても名前解決されます。しかしコレクションのバージョンが上がればそれまで機能していた名前解決の仕組みが削除される可能性もあるためコレクションのバージョンに合わせて FQCN も更新します。

注意点としてfqcn[canonical]を有効にするには該当するコレクションがインストールされているか Ansible Community Package のインストールが必要になります。

問題のあるコード

---
- name: Example playbook
  hosts: all
  tasks:	
    - name: Get bucket keys
      amazon.aws.aws_s3: # <- Ansible 7.0.0 では amazon.aws.aws_s3 は削除されたが名前解決されるため動作する
        bucket: mamono210
        mode: list
      register: aws_s3_bucket_keys

修正されたコード

---
- name: Example playbook (2nd solution)
  hosts: all
  tasks:
    - name: Get bucket keys
      amazon.aws.s3_object: # <- amazon.aws.s3_object へ変更する
        bucket: mamono210
        mode: list
      register: aws_s3_bucket_keys

参考サイト

1
0
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
0