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

Uploaded Python 3Windows x86-64

steampunk_spotter-5.12.0-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.0-py3-none-musllinux_1_2_aarch64.whl (5.0 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

steampunk_spotter-5.12.0-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.0-py3-none-manylinux_2_17_aarch64.whl (5.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for steampunk_spotter-5.12.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 130c8f0137220f4d7a9df67d908a72902bd6ab356dd844780359413cfe6f6cd0
MD5 21e871b6d23e6ae0186eaca92e02c20a
BLAKE2b-256 c0b1a7c4c138af4576957a0ec9c6611a2ce558ecc9baa637a9fd832256ee5f72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-5.12.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f6b388e805179a4efe32fd0a843a5734b292a1c20761dc27ef0aceb3f34c10ec
MD5 65dc7824f1cd7e4582c98d3b17769279
BLAKE2b-256 d5f72c50bbfc971223f3a2ac1ca84cdd7a2f8be028ddb6a8db846e995b1f0024

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-5.12.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7b266392735d884607dc3159b28e38906c20b45cd009b96a013413ee8ae7757c
MD5 ab3a6c4de2ba95c6c28a381b61d005cc
BLAKE2b-256 afffcf7d48977c2bf85dbed561d305bb54e46e9463d98b65e281264f038551d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-5.12.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 20698974ff9e5915aed990a022051480b5eccfafc6ffaaa69dbb771b96d772c9
MD5 d463451ce1502a2b6a4d7aa01a778277
BLAKE2b-256 b61bc69e1da5d85f899e5f4d58d63f9f7c5b218f8bff881dc14a21d7a813d7b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-5.12.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 bf1ce29485d204cfa8e70a581fae6f556312fcd7ce82a07a58e1be01cea737b4
MD5 bcdebe370b5dbcaca84935d0aa645d2d
BLAKE2b-256 ac454720b710f221669b2ef86098f304dc9701581db0e0104d63536f0b86fc45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-5.12.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a679b12eab14bced2f4d94e6125cb4965354ed847649272c6e293442b2a642a5
MD5 4a2020f47e52fbda37d94dbab24e67c0
BLAKE2b-256 fdbc41b98ecd08c795e4420bae6766b5813dca2851143c35c87ade0618df2c74

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-5.12.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a17700a2f16734acfc2fe2b80f16c6c7efd123b6e75136b6959e714b04db612b
MD5 f57a9a53e5828a38b51e98afa14c1f4f
BLAKE2b-256 91f3cb2b63ef6cca717845e9d3357ed59c6baecc075f6a85402a75d89df88818

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