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

Uploaded Python 3Windows x86-64

steampunk_spotter-6.0.0a2-py3-none-musllinux_1_2_x86_64.whl (5.5 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

steampunk_spotter-6.0.0a2-py3-none-musllinux_1_2_aarch64.whl (5.0 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

steampunk_spotter-6.0.0a2-py3-none-manylinux_2_17_x86_64.whl (5.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

steampunk_spotter-6.0.0a2-py3-none-manylinux_2_17_aarch64.whl (5.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

steampunk_spotter-6.0.0a2-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.0.0a2-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0a2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 b144c65c9debc63cac20d52651165c0797ba943c4adcffa701bcc78d906a2b17
MD5 aaf629963f7a170dfff71d8a7881435a
BLAKE2b-256 6c9e9fda0aaf450eb282931d95e5ad6c062647158f7b32ef980557f23a5f1ed2

See more details on using hashes here.

File details

Details for the file steampunk_spotter-6.0.0a2-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0a2-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0c593f023e2c39c0140da034c9395e36559c8be4eaa62b4d95fbed56f38cc5d7
MD5 fae80d22e7f700364f0b6dbd3000b82c
BLAKE2b-256 35448c7412803714fbc0089053216d4c4e29ac36c1f96d1073701b47b46ff8e7

See more details on using hashes here.

File details

Details for the file steampunk_spotter-6.0.0a2-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0a2-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b43b5c724ab79768c6730094d1c0addff865414f8b24b7eca6739ad78a7e570a
MD5 468ee0b00fe03637d05cc5018b9d4783
BLAKE2b-256 b36f061ef6b1226326ef86aa963601c6f95af4f888e29d4db37c3ec8a5e2ae4e

See more details on using hashes here.

File details

Details for the file steampunk_spotter-6.0.0a2-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0a2-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 1b87fdce0e5ac667d77a2152f9962f5c66dbf385bf0c2ea9b0224e52f73a1ee1
MD5 2e0d03af1d8bff6a9c77d609820dcce2
BLAKE2b-256 82c906902599bdcb5548ca8259583d7e8377bf843fdf33012a5b64dee3d93caa

See more details on using hashes here.

File details

Details for the file steampunk_spotter-6.0.0a2-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0a2-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 b3d3522ab04b1383688e97bbb59a1effc998e3ab0f73180234ef092e6da956a0
MD5 e5e459c6878517f94142a0be9e42f698
BLAKE2b-256 162616d74f78bcc696fff911ce741a7a9989875c70481c65e69a166ef51a5fb5

See more details on using hashes here.

File details

Details for the file steampunk_spotter-6.0.0a2-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0a2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7d5f0b8b3c5aa54d6c7a88e958ff32acebdc120167aa6292484b4f0926fa8ee1
MD5 d5e5c27e04e874b23e8b317815a6c5be
BLAKE2b-256 702516010b38973512a17033517308639f8d19d4af106f5b0587980673dca1c1

See more details on using hashes here.

File details

Details for the file steampunk_spotter-6.0.0a2-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0a2-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 88c5a328993a4a08f36b7c5a7584fb7995d6c23ca0c249439900eba1d0c03050
MD5 6cb1f065370457cd4966305de702dd03
BLAKE2b-256 b1893f8404d1634a9d7ae3666a1f8a52f20edfeb4ef8a473f8624f48dffdf527

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