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¶
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 | "" |