Skip to main content

Ansible Playbook Platform that scans, analyzes, enhances, and provides insights for your playbooks.

Project description

Steampunk Spotter Command-Line Interface (CLI)

PyPI

Steampunk Spotter is an Ansible Playbook Platform that scans, analyzes, enhances, and provides insights for your playbooks.

The Steampunk Spotter CLI enables the use from the console with the ability to scan Ansible content such as playbooks, roles, collections, or task files.

The following instructions explain how to get started with the Steampunk Spotter CLI to scan Ansible content and get recommendations.

Installation

Steampunk Spotter CLI requires Python 3 and is available as a steampunk-spotter Python package.

$ pip install steampunk-spotter

We recommend installing the package into a clean Python virtual environment.

Usage

After the CLI is installed, you can explore its commands and options by running spotter --help. The --help/-h option is also available for every command.

Limitations

The current release version of Steampunk Spotter contains the following limitations that also apply to the CLI:

  • with the FREE subscription plan, you can perform up to 100 scans/month,
  • with the INDIVIDUAL, TEAM, or ENTERPRISE subscription plan you can perform an unlimited number of scans,
  • for the ENTERPRISE subscription plan, contact us at steampunk@xlab.si to discuss your needs.

Authentication

To use CLI, you have to supply your Steampunk Spotter user account credentials. If you don't have an account, use spotter register command that will direct you to the page where you can create one.

Steampunk Spotter supports two kinds of credentials: 1) API token (can be generated in the user settings within the Spotter App), and 2) username and password.

  • Use --token/-t global option to supply your token credential. Alternatively, set the SPOTTER_TOKEN environment variable to contain the API token.
  • Use --username/-u and --password/-p global options to supply your username and password. Alternatively, set the SPOTTER_USERNAME and SPOTTER_PASSWORD environment variables.
  • You can run spotter <options> login to persist your credentials in the Steampunk Spotter CLI's local storage, where <options> stand for one of the approaches described above.

After that, you can start scanning right away.

Scanning

The CLI spotter scan command is used for scanning Ansible content (playbooks, roles, collections, or task files) and returning the scan results.

Ansible content

The scan command will automatically detect the type of your Ansible content and scan it. Here are some examples of running scans:

# scan playbook
$ spotter scan path/to/playbook.yaml

# scan multiple files at once
$ spotter scan path/to/taskfile.yaml \
               path/to/playbook.yaml \
               path/to/role \
               path/to/collection

# scan any folder that contains Ansible content
$ spotter scan path/to/folder

Selecting the target project

This part is only relevant for users with a TEAM plan or higher.

By default, the scan results are stored in the first project of the user's first organization (in the app).

Users that have multiple organizations or projects in the app can use --project-id option to specify the UUID of an existing target project, where the scan result will be stored.

$ spotter scan --project-id <project-id> .

You can learn your project id by logging into the app, selecting the appropriate organization and navigating to the project's dashboard.

Excluding values

By default, CLI parses full Ansible YAML content with all values from playbooks (e.g., parameter values from Ansible modules, variables from Ansible plays, etc.). With values, we can discover additional tips for improvements. CLI will try to detect and omit any secrets (e.g., passwords, SSH keys, cloud credentials, etc.) from being transmitted. If you want to omit parsing and sending the values, you can use --exclude-values option.

$ spotter scan --exclude-values playbook.yaml

Excluding metadata

By default, CLI collects metadata (i.e., file names, line, and column numbers, YAML markers) from Ansible content. This is needed for enriched user experience in the Spotter App and to get additional tips for improvements. If you want to use metadata just for displaying the scan output, which means that no data about your Ansible content structure is sent to the backend server, you can use --exclude-metadata option.

$ spotter scan --exclude-metadata playbook.yaml

Automated application of suggestions to your code

There is also a --rewrite option that rewrites your files with fixes after scanning. This action will modify your files.

$ spotter scan --rewrite playbook.yaml

Next steps

For more comprehensive usage, issue spotter scan --help. Please refer to Steampunk Spotter Documentation for further instructions.

Acknowledgment

This tool was created by XLAB Steampunk, IT automation specialists and leading experts in building Enterprise Ansible Collections.

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

steampunk_spotter-6.1.0rc1-py3-none-win_amd64.whl (5.7 MB view details)

Uploaded Python 3Windows x86-64

steampunk_spotter-6.1.0rc1-py3-none-musllinux_1_2_x86_64.whl (5.5 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

steampunk_spotter-6.1.0rc1-py3-none-musllinux_1_2_aarch64.whl (5.0 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

steampunk_spotter-6.1.0rc1-py3-none-manylinux_2_17_x86_64.whl (5.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

steampunk_spotter-6.1.0rc1-py3-none-manylinux_2_17_aarch64.whl (5.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

steampunk_spotter-6.1.0rc1-py3-none-macosx_11_0_arm64.whl (5.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

steampunk_spotter-6.1.0rc1-py3-none-macosx_10_9_x86_64.whl (5.6 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

Details for the file steampunk_spotter-6.1.0rc1-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for steampunk_spotter-6.1.0rc1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 4aa321a5d630f7a8a644e6f75bddf4fbbf1793ad41ab6b4e74c6b9cc2c741fa7
MD5 423cd99a535f1928c64c946eab644ba3
BLAKE2b-256 79b7f69e57583ba6f750877131ed16089c1cbd62f50027255e57ecd120afd24d

See more details on using hashes here.

File details

Details for the file steampunk_spotter-6.1.0rc1-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for steampunk_spotter-6.1.0rc1-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 badbce8b5f4e4a4a74d326cbe2c56fd12e3d336449f0229cb99369da53ec3397
MD5 cd9aaff7aecb2bb037e4a834dcedb466
BLAKE2b-256 032a5ce2af70e560701b018aadb918c3e537710c2ed3ede34181ed5165b5daec

See more details on using hashes here.

File details

Details for the file steampunk_spotter-6.1.0rc1-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for steampunk_spotter-6.1.0rc1-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5e2efe9a884c42bd10c6d755b0a71efbf905a4642b1262698e8bc926918d5981
MD5 fb7765d055bbe84832e99355c18904a5
BLAKE2b-256 5b040be5861edd03299419168a974c21199e8a300cdf4d7718a4c865a7f037f5

See more details on using hashes here.

File details

Details for the file steampunk_spotter-6.1.0rc1-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for steampunk_spotter-6.1.0rc1-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b586cd536bf2fbfe73a86569aec20163552e3ad7164ae7ee585807e3842fecef
MD5 73d3eb8c2f7f9bbb34b981e763a8c91d
BLAKE2b-256 c60ff457fc0678f78298b4b6eab3c9d336d8a8a0e8619c7afcc79b44599a87cc

See more details on using hashes here.

File details

Details for the file steampunk_spotter-6.1.0rc1-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for steampunk_spotter-6.1.0rc1-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 c40d928308a73c2fb7cb09fdfb75ca542ee66e80fb5d704a6d81a8c1cbbf9410
MD5 141455ed3f723a29c66031f0cc2079eb
BLAKE2b-256 92be126c324e50558c4eda5c9da5912e683c6b10160c894bf48ea114aef7a4fa

See more details on using hashes here.

File details

Details for the file steampunk_spotter-6.1.0rc1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for steampunk_spotter-6.1.0rc1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 714bb09fa2f7e270af0cc7efc83beddc124e64a3b536a72f13729bb01d029f79
MD5 999102a8fd9fb4df472121dd31d1efba
BLAKE2b-256 7f1e5067dc2b3198344de6f2c7417f4528fd3c5fafd3eb83721c236fc607135d

See more details on using hashes here.

File details

Details for the file steampunk_spotter-6.1.0rc1-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for steampunk_spotter-6.1.0rc1-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e8745ac954c4339301127d6e5376adcc55bd8f2289038d218f61bcdbe86226ea
MD5 7fa2d8423ac51e6ef153fd3753f2092f
BLAKE2b-256 3d60c4ffee8903749ae8ba769294c19da1cd718df021971cd07aaef973cbcb79

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page