使用 Dependabot 来自动更新 Ansible lint

这篇文章是Ansible Lint Advent Calendar 2022第9天的文章。

我們將討論如何對我們創建的Ansible內容進行版本更新的Ansible lint。

有几种方法可以升级 Ansible lint。本次我们将讲解通过 Dependabot 进行版本升级的方法。

Dependabot自动进行版本升级。

在使用GitHub作为存储库服务的前提下,提供了一个名为Dependabot的服务来解决依赖关系。通过使用该服务,可以自动更新诸如Ansible lint等库。

好处一项

    • 手軽に導入できる

 

    • テストに利用したライブラリのバージョンをコードで明示できる

 

    ほぼ自動で依存関係がバージョンアップされる(競合が発生してもDependabotにより多くは解決される)

缺点 (quē

    • GitHubを利用している事が前提

 

    常に最新版のAnsible lint、Ansibleで動作確認を行うためAnsibleのバージョンの固定が煩雑になる

使用 Dependabot 进行更新的示例说明

这是一个使用Dependabot持续更新Ansible Lint的示例。

在.github/dependabot.yml文件中配置要持续更新的库类型。本次我们指定了Action库和pip。

---
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库有版本更新,它会创建一个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版本。

参考网站

    samples-mamono210/cowsay | GitHub
bannerAds