Skip to content

Ansible GitLab CI Component

A GitLab CI component for Ansible and ansible-lint - providing automation and linting capabilities for Ansible playbooks and roles.

Features

  • Ansible Linting: Validates Ansible playbooks, roles, and tasks using ansible-lint
  • Custom Configuration: Support for local and remote ansible-lint configuration files
  • Flexible Directory Scanning: Specify custom directories to scan for Ansible content
  • Configurable Arguments: Pass additional flags directly to ansible-lint
  • Remote Configuration: Download and use configuration files from remote URLs
  • Configurable Job Settings: Customise job name, stage, and container image

Usage

Basic Usage

include:
  - component: $CI_SERVER_FQDN/niclas-zone/ci/ansible/main@latest

stages:
  - lint

With Custom Configuration

include:
  - component: $CI_SERVER_FQDN/niclas-zone/ci/ansible/main@latest
    inputs:
      ANSIBLE_LINT_CONFIG: ".ansible-lint"
      ANSIBLE_LINT_EXTRA_ARGS: "--strict"
      ANSIBLE_LINT_DIR: "playbooks/"

With Remote Configuration

include:
  - component: $CI_SERVER_FQDN/niclas-zone/ci/ansible/main@latest
    inputs:
      ANSIBLE_LINT_REMOTE_CONFIG: "https://gitlab.com/niclas-zone/ci/ansible/-/raw/main/config/.ansible-lint"

Inputs

Input Description Default
JOB_NAME Name of the CI job "ansible-lint"
JOB_STAGE Pipeline stage "lint"
ANSIBLE_LINT_IMAGE Docker image for ansible-lint "registry.gitlab.com/niclas-zone/ctr/ansible-lint:latest"
ANSIBLE_LINT_EXTRA_ARGS Extra arguments for ansible-lint ""
ANSIBLE_LINT_CONFIG Path to local ansible-lint config file ""
ANSIBLE_LINT_REMOTE_CONFIG URL to download ansible-lint config file ""
ANSIBLE_LINT_DIR Directory to scan for Ansible content ""