Installing¶
Install Ansible-lint to apply rules and follow best practices with your automation content.
Note
Ansible-lint does not currently support installation on Windows systems.
Warning
Ansible-lint does not support any installation methods that are not mentioned in this document. Before raising any bugs related to installation, review all of the following details:
- You should use the installation methods outlined in this document only.
- You should upgrade the Python installer (
pip
orpipx
) to the latest version available from pypi.org. If you use a system package manager, you will need to upgrade the installer to a newer version. - If you are installing from a git zip archive, which is not supported but should work, ensure you use the main branch and the latest version of pip and setuptools.
- If you are installing Ansible-lint within a container or system package, you should not report the issue here. Contact the relevant container or package provider instead.
- If you are using poetry, read this discussion.
Pull requests to improve installation instructions are welcome. Any new issues related to the installation will be closed and locked.
For a container image, we recommend using
creator-ee which includes
ansible-dev-tools
(it combines critical Ansible development packages into a
unified Python package). If you have a use case that the creator-ee
container
doesn't satisfy, please contact the team through the
discussion forum.
You can also run Ansible-lint on your source code with the Ansible-lint GitHub action instead of installing it directly.
Installing the latest version¶
Recommendation
The recommended approach to install ansible-lint
is using the
ansible-dev-tools
package.
Ansible Development Tools (ADT)
aims to streamline the setup and usage of several tools needed in order to
create Ansible content. ADT combines critical Ansible
development packages into a unified Python package.
You can install the most recent version of Ansible-lint with the pip3 or pipx Python package manager. Use pipx to isolate Ansible-lint from your current Python environment as an alternative to creating a virtual environment.
Note
If you want to install the exact versions of all dependencies that were used to
test a specific version of ansible-lint, you can add lock
extra. This will
only work with Python 3.10 or newer. Do this only inside a virtual environment.
Installing on Fedora and RHEL¶
You can install Ansible-lint on Fedora, or Red Hat Enterprise Linux (RHEL) with
the dnf
package manager.
Note
On RHEL, ansible-lint
package is part of "Red Hat Ansible Automation
Platform" subscription, which needs to be activated.
Installing from source code¶
Note: pip>=22.3.1
is required for installation from the source repository.
Please consult the PyPA User Guide to learn more about managing Pip versions.
Installing Ansible Lint as a GitHub Action¶
To use the action simply create a file .github/workflows/ansible-lint.yml
with
content similar to the example below:
# .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-latest
steps:
- uses: actions/checkout@v4
- name: Run ansible-lint
uses: ansible/ansible-lint@v6
Due to limitations on how GitHub Actions are processing arguments, we do not plan to provide extra options. You will have to make use of ansible-lint own configuration file to alter its behavior.
To also enable dependabot automatic updates, the newer versions of ansible-lint action you should create a file similar to .github/dependabot.yml