跳至内容

安装

安装 Ansible-lint 以应用规则并遵循自动化内容的最佳实践。

注意

Ansible-lint 目前不支持在 Windows 系统上安装。

警告

Ansible-lint 不支持本文档中未提及的任何安装方法。在报告任何与安装相关的错误之前,请查看以下所有详细信息

  • 您应该仅使用本文档中概述的安装方法。
  • 您应该将 Python 安装程序(`pip` 或 `pipx`)升级到 pypi.org 上可用的最新版本。如果您使用系统包管理器,则需要将安装程序升级到较新版本。
  • 如果您是从 git zip 存档安装的(不支持,但应该可以工作),请确保您使用主分支和最新版本的 pip 和 setuptools。
  • 如果您在容器或系统包中安装 Ansible-lint,则不应在此处报告问题。请改而联系相关的容器或包提供商。
  • 如果您使用的是 poetry,请阅读此 讨论

欢迎提出改进安装说明的拉取请求。任何与安装相关的新的问题都将被关闭并锁定。

对于容器镜像,我们建议使用 creator-ee,其中包含 `ansible-dev-tools`(它将关键的 Ansible 开发包组合到一个统一的 Python 包中)。如果您有 `creator-ee` 容器无法满足的用例,请通过 讨论 论坛联系团队。

您也可以使用 Ansible-lint GitHub action 在您的源代码上运行 Ansible-lint,而不是直接安装它。

安装最新版本

推荐

安装 `ansible-lint` 的**推荐**方法是使用 `ansible-dev-tools` 包。Ansible 开发工具旨在简化创建 Ansible 内容所需的多个工具的设置和使用。它将关键的 Ansible 开发包组合到一个统一的 Python 包中。

# This also installs ansible-core if it is not already installed
pip3 install ansible-dev-tools

您可以使用 pip3pipx Python 包管理器安装最新版本的 Ansible-lint。使用 pipx 将 Ansible-lint 与您当前的 Python 环境隔离,作为创建虚拟环境的替代方法。

# This also installs ansible-core if it is not already installed
pip3 install ansible-lint

注意

如果您想安装用于测试特定版本的 ansible-lint 的所有依赖项的确切版本,您可以添加 `lock` extra。这仅适用于 Python 3.10 或更高版本。仅在虚拟环境中执行此操作。

pip3 install "ansible-lint[lock]"

在 Fedora 和 RHEL 上安装

您可以使用 `dnf` 包管理器在 Fedora 或 Red Hat Enterprise Linux (RHEL) 上安装 Ansible-lint。

dnf install ansible-lint

注意

在 RHEL 上,`ansible-lint` 包是“Red Hat Ansible Automation Platform”订阅的一部分,需要激活。

从源码安装

注意:从源代码库安装需要 `pip>=22.3.1`。请查阅 PyPA 用户指南,了解有关管理 Pip 版本的更多信息。

pip3 install git+https://github.com/ansible/ansible-lint

将 Ansible Lint 作为 GitHub Action 安装

要使用此 action,只需创建一个文件 `.github/workflows/ansible-lint.yml`,其内容类似于下面的示例

# .github/workflows/ansible-lint.yml
name: ansible-lint
on:
  pull_request:
    branches: ["stable", "release/v*"]
jobs:
  build:
    name: Ansible Lint # Naming the build is important to use it as a status check
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@v4
      - name: Run ansible-lint
        uses: ansible/ansible-lint@main
        # optional (see below):
        with:
          args: ""
          setup_python: "true"
          working_directory: ""
          requirements_file: ""

所有参数都是可选的,大多数用户不需要它们

  • `args`:要传递给 ansible-lint 命令的参数。
  • `setup_python`:是否应安装 python。默认为 `true`。
  • `working_directory`:从中运行 ansible-lint 的目录。默认为 `github.workspace`。如果您只想检查存储库的子集,则可能需要此选项。
  • `requirements_file`:要安装角色和集合依赖项的 requirements.yml 文件的路径。

由于 GitHub Actions 处理参数的方式存在限制,我们不打算提供额外选项。您必须使用 ansible-lint 自身的配置文件 来更改其行为。

要启用 dependabot 自动更新,对于较新版本的 ansible-lint action,您应该创建一个类似于 .github/dependabot.yml 的文件