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-5.12.0rc1-py3-none-win_amd64.whl (5.7 MB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

steampunk_spotter-5.12.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-5.12.0rc1-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for steampunk_spotter-5.12.0rc1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 01da4d86e9a005b6d1b4f7e6db4cd9aee3568f26cdb615a9b71404ad2596a382
MD5 210ee91ef5bb715b5c398e047da4cfaa
BLAKE2b-256 587f8340d06c84c2f4f802f992acd401d431b209c23a5b97bc12f397c6dadbb7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-5.12.0rc1-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 602fc4f54c1c0dccc26375e26bc6e4fdf5f8d41e69e51f9381a99b78a57f1a9d
MD5 87c8cc8d97d59f1390aa454966387794
BLAKE2b-256 b4b933fe43a57e5f16c6e47e61e23f35f40049edd60a3ab2d30aaa4ea9d29aac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-5.12.0rc1-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 29695ffd11f8454e996d777288d7cf596ae074298f2af3748f5d8cb89b64c48d
MD5 a085ad73695d634581c634388b9b63e0
BLAKE2b-256 cc600f7f0663886faba27dd372ddc720c1ef8d5c3021e327e1bca1ac92b890dc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-5.12.0rc1-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 461fc5ad6d01593d10985cb8d58b34379f0dc31f715a8b5b1b1a2b3ab928e616
MD5 a7e7bb615df51111912fef27a333445e
BLAKE2b-256 d4f539d5d4781305aff03e00d4422499d66d19688b63fd7d102e84f5e58e303e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-5.12.0rc1-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 0ad67eaca72da4211a282ac0ae074f69053ebedbd136742afd1932f5d805b281
MD5 a0e64925c2be1d5bc566606bec4ca77f
BLAKE2b-256 c5f5ce5996ecab96e6213dad4a7086d0757de528c7cc5854d8dee4da212be088

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-5.12.0rc1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 682e84598835717ffb517ba08876110cf36df93d55e3986e56b7f631ae1a3ae3
MD5 104f96486318ae4c34ed4ecefb7a9fa9
BLAKE2b-256 a6715348c6683c8a1f7ea91febbac31b8bd618315063da3025dddcd46c7d3d43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-5.12.0rc1-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b5eb5300fa8d5b2dac5fdc0a2aaa17903c9b4ec323e84309f8fe68b59156971f
MD5 02ba09547a1820da528443decae50d6a
BLAKE2b-256 e502271f719218030e7bc87985aba0ed3211c9e9842eb29882e520eb939dbf91

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