This plugin is designed for using ansible-playbook and ansible-lint in a Vela pipeline.
Source Code: https://github.com/go-vela/vela-ansible
Registry: https://hub.docker.com/r/target/vela-ansible
NOTE:
Users should refrain from using latest as the tag for the Docker image.
It is recommended to use a semantically versioned tag instead.
More information for ansible-lint can be found at: ansible-lint docs.
More information for ansible-playbook can be found at: ansible-playbook docs.
steps:
- name: ansible-lint
image: target/vela-ansible:latest
parameters:
action: lint
playbook: "abox/main.yml"
lint_skip:
- no-changed-when
- key-order
- name: ansible-playbook
image: target/vela-ansible:latest
parameters:
action: playbook
playbook: "abox/main.yml"
options_inventory: "abox/inventory/hosts.yml"
connection_user: root
The following parameters are used to configure the image:
Parameter | Description | Required | Default |
---|---|---|---|
log_level |
set the log level for the plugin (valid options: info , debug , trace ) |
true | info |
action |
set plugin action (valid options: lint , playbook |
true | lint |
Note:
action
parameter will determine whether to run ansible-lint or ansible-playbook. The default is set to ansible-lint.
Parameter | Description | Required | Default |
---|---|---|---|
playbook |
playbook to be ran by ansible-lint | true | false |
lint_version |
returns ansible-lint version and exits the program. | false | false |
lint_list |
lists all the rules. | false | false |
lint_format |
format used rules output {rich,plain,rst,codeclimate,quiet,pep8} |
false | rich |
lint_quieter |
quieter, although not silent output. | false | false |
lint_parseable |
parseable output in the format of pep8. | false | false |
lint_parseableseverity |
parseable output including severity of rule. | false | false |
lint_progressive |
return success if it detects a reduction in number of violations compared with previous git commit. This feature works only in git repositories. | false | false |
lint_projectdir |
location of project/repository, autodetected based on location of configuration file. | false | N/A |
lint_rule |
specify one or more rules directories. -r flag (lint_rule) overrides the default rules in /path/to/ansible-lint/lib/ansiblelint/rules, unless -R (lint_rulesdefault) is also used. | false | N/A |
lint_rulesdefault |
use default rules in /path/to/ansible-lint/lib/ansiblelint/rules in addition to any extra rules directories specified with -r (lint_rule). There is no need to specify this if no -r (lint_rule) flag/s is/are used. | false | false |
lint_showrelativepath |
display path relative to CWD. | false | false |
lint_tags |
only check rules whose id/tags match these values. | false | N/A |
lint_tagslist |
list all the tags. | false | false |
lint_verbose |
increase verbosity level. | false | false |
lint_skip |
only check rules whose id/tags does not match these values. | false | N/A |
lint_warn |
only warn about these rules, unless overridden in config file defaults to 'experimental' | false | experimental |
lint_enable |
activate optional rules by their tag name | false | N/A |
lint_nocolor |
disable colored output. | false | false |
lint_forcecolor |
try force colored output. | false | false |
lint_exclude |
path to directories or files to skip. | false | N/A |
lint_config |
specify a configuration file to use. | false | .ansible-lint |
lint_offline |
disable installation of requirements.yml | false | false |
Parameter | Description | Required | Default |
---|---|---|---|
playbook |
playbook to be ran by ansible-playbook. | true | N/A |
Parameter | Description | Required | Default |
---|---|---|---|
options_askvaultpass |
ask for vault password. | false | false |
options_flushcache |
clear the fact cache for every host in inventory. | false | false |
options_forcehandlers |
run handlers even if a task fails. | false | false |
options_listhosts |
outputs a list of matching hosts and exits program. | false | false |
options_listtags |
list all available tags | false | false |
options_listtasks |
list all tasks to be executed. | false | false |
options_skiptags |
only run plays and tasks whose tags does not match these values. | false | N/A |
options_startattask |
start the playbook at the task matching this name. | false | N/A |
options_step |
one-set-at-a-time: confirm each task before running. | false | false |
options_syntaxcheck |
perform a syntax check on the playbook and exits program. | false | false |
options_vaultid |
the vault identity to use. | false | N/A |
options_vaultpasswordfile |
vault password file. | false | N/A |
options_version |
returns ansible-playbook version number, configuration file location, configured module search path, module location, executable location and exits program. | false | false |
options_check |
dry-run, does not make any changes; instead, tries to predict some of the changes that may occur. | false | false |
options_difference |
when changing (small) files and template, shows the difference in those files. | false | false |
options_modulepath |
prepend colon-separated path(s) to module library | false | ~/.ansible/plugins/modules:/usr/share/ansible/plugins/modules |
options_extravars |
set additional variables as key=value or YAML/JSON, if filename is prepend with @ | false | N/A |
options_forks |
specify number of parallel processes to use. | false | 5 |
options_inventory |
specify inventory host path or comma separated host list. | true | N/A |
options_limit |
further limit selected hosts to additional pattern. | false | false |
options_tags |
only run plays and task whose tags matches these values. | false | N/A |
options_verbose |
verbose mode. | false | false |
options_verbosemore |
verbose mode: more verbose. | false | false |
options_verbosedebug |
verbose mode: connection debugging | false | false |
Parameter | Description | Required | Default |
---|---|---|---|
connection_privatekey |
use this file to authenticate the connection. | false | N/A |
connection_scpextraargs |
specify extra arguments to pass to scp only. | false | N/A |
connection_sftpextraargs |
specify extra arguments to pass to sftp only. | false | N/A |
connection_sshextraargs |
specify extra arguments to pass to ssh only. | false | N/A |
connection_sshcommonargs |
specify common arguments to pass to scp/sftp/ssh. | false | N/A |
connection_timeout |
override the connection timeout in seconds. | false | 10 |
connection_connection |
connection type to use. | false | smart |
connection_user |
connect as this user. | false | none |
connection_passwordfile |
connection password file | false | N/A |
Parameter | Description | Required | Default |
---|---|---|---|
privilege_becomemethod |
privilege escalation method to use. | false | sudo |
privilege_becomeuser |
run operation as this user. | false | root |
privilege_askbecomepass |
ask for privilege escalation password. | false | false |
privilege_become |
run operations with become (does not imply password prompting) | false | false |
privilege_becomepassfile |
become password file | false | N/A |
COMING SOON!
You can start troubleshooting this plugin by tuning the level of logs being displayed:
steps:
- name: ansible-lint
image: target/vela-ansible:latest
parameters:
+ log_level: trace
action: lint
playbook: "abox/main.yml"
Below are a list of common problems and how to solve them: