こちらの記事はAnsible lint Advent Calendar 2022 21日目の記事になります。
今回はルール meta-incorrect について説明します。
meta-incorrect
meta-incorrect は metadata が初期の値ではないか、もしくは値が設定されているかを検証します。metadata に関しては 12日目の記事 に概要を載せてあります。
meta-incorrect は現在のところは Ansible galaxy role の metadata のみを検証するようです。
Roleの作成
以下のコマンドでRoleを作成します。
ansible-galaxy init <role-name>
初期化に成功すると以下のようなファイル群が生成されます。
├── README.md
├── defaults
│ └── main.yml
├── files
├── handlers
│ └── main.yml
├── meta
│ └── main.yml
├── tasks
│ └── main.yml
├── templates
├── tests
│ ├── inventory
│ └── test.yml
└── vars
└── main.yml
meta-incorrect はこのファイルのうちmeta/main.yml
の検証を行います。
以下は初期状態のmeta/main.yml
です。
meta/main.yml
galaxy_info:
author: your name
description: your role description
company: your company (optional)
# If the issue tracker for your role is not on github, uncomment the
# next line and provide a value
# issue_tracker_url: http://example.com/issue/tracker
# Choose a valid license ID from https://spdx.org - some suggested licenses:
# - BSD-3-Clause (default)
# - MIT
# - GPL-2.0-or-later
# - GPL-3.0-only
# - Apache-2.0
# - CC-BY-4.0
license: license (GPL-2.0-or-later, MIT, etc)
min_ansible_version: 2.1
# If this a Container Enabled role, provide the minimum Ansible Container version.
# min_ansible_container_version:
#
# Provide a list of supported platforms, and for each platform a list of versions.
# If you don't wish to enumerate all versions for a particular platform, use 'all'.
# To view available platforms and versions (or releases), visit:
# https://galaxy.ansible.com/api/v1/platforms/
#
# platforms:
# - name: Fedora
# versions:
# - all
# - 25
# - name: SomePlatform
# versions:
# - all
# - 1.0
# - 7
# - 99.99
galaxy_tags: []
# List tags for your role here, one per line. A tag is a keyword that describes
# and categorizes the role. Users find roles by searching for tags. Be sure to
# remove the '[]' above, if you add tags to this list.
#
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
# Maximum 20 tags per role.
dependencies: []
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
問題のあるコード
meta/main.yml
---
# 値が初期値のまま
galaxy_info:
author: your name
description: your role description
company: your company (optional)
license: license (GPL-2.0-or-later, MIT, etc)
修正されたコード
meta/main.yml
---
galaxy_info:
author: Leroy Jenkins
description: This role will set you free.
company: Red Hat
license: Apache