LoginSignup
0
0

More than 1 year has passed since last update.

Dependabotを採用してAnsible lintを自動的にアップデートしていく

Last updated at Posted at 2022-12-08

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

今回は作成したAnsibleコンテンツに対してAnsible lintをどのようにバージョンアップをしていくかを考察します。

Ansible lintをバージョンアップさせる方法はいくつかあるかと思います。今回はDependabotによるバージョンアップについて解説します。

Dependabotによるバージョンアップ

リポジトリサービスにGitHubを利用している事が前提になりますがDependabotと言う依存関係を解決するためのサービスが提供されています。このサービスを利用する事によりAnsible lintをはじめとするライブラリを自動でアップデートすることができます。

良い点

  • 手軽に導入できる
  • テストに利用したライブラリのバージョンをコードで明示できる
  • ほぼ自動で依存関係がバージョンアップされる(競合が発生してもDependabotにより多くは解決される)

悪い点

  • GitHubを利用している事が前提
  • 常に最新版のAnsible lint、Ansibleで動作確認を行うためAnsibleのバージョンの固定が煩雑になる

Dependabotによるアップデートを行う例の解説

Dependabotを利用してAnsible lintを継続的にアップデートしていくサンプルです。

.github/dependabot.ymlで継続的にアップデートを行うライブラリの種類を設定します。今回はActionライブラリとpipを指定します。

.github/dependabot.yml
---
version: 2
updates:
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "daily"
  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "daily"

今回のサンプルではテストフレームワークにMoleculeを採用しています。molecule/requirements.txtへテスト実行時に利用するライブラリのバージョンを記載します。Dependabotはpipライブラリとmolecule/requirements.txtを監視しpipライブラリの方でバージョンアップがあったらmolecule/requirements.txtを更新するようにpull requestを作成します。

molecule/requirements.txt
ansible==7.1.0
ansible-lint==6.9.1
molecule==4.0.4
molecule-docker==2.1.0

molecule/requirements.txtを参照する事により対象のプロジェクトがどのバージョンのAnsible / Ansible lintで動作確認がされているのか確認できます。

そもそもAnsible lintのバージョンは上げるべきなのか?

判断が難しい部分かと思います。Ansible lintの性質上、Ansible Community Packageへ依存しておりAnsible lintのバージョンだけ上がってもAnsible Community Packageのバージョンが同時に上がらないと解決が難しい不具合が起きる可能性があります。

一番良いのはリリース・デプロイ環境等で実行するAnsible Community Packageのバージョンに合わせて採用するAnsible lintのバージョンも同時期にリリースされたバージョンに合わせることかと思います。

参考サイト

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