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

This version

6.0.0

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 6a88fd5911ef5e5b0e24f847f14a597ac03b51515ba94f0bdb6c6656a926f5c2
MD5 0fc636ce34156de79ce45c5ec2034fdb
BLAKE2b-256 6e731a4c1699d596eda120b7a69523863fdca6036d0714ad99ce7a1b8e701d9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9b836fc863a86b1c97776d7b608e45df4229f4ac9a51e0cbe47d95c9424afb5a
MD5 4df5f14aa507e232a52890fdce9bd518
BLAKE2b-256 1b1a0cc091393dbf665faf2cf0f0c8f6cceb758c67d4bf417126cd5b56824073

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 cca982123f951a83dfa8076c0eaac17729663df2023b35cbd54fb3fd3c22476b
MD5 0e4959a3e9922f17ff64c26adfe00683
BLAKE2b-256 8d2636e9baf6cff7cd54e9e457178886da79ded2706121ac12dba446fc02abeb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 da12fccc9a7bad419165ac4b57a80c59da282ac28d3e83c38cbefe97c204868e
MD5 07b58648dec8294a31af9a768f0d193d
BLAKE2b-256 8bb0c70883b99319b17517d30a2a2d0f879119d69a47c7f65da66743d1b102dc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 b70b0085d6e8002c60c7a92ffa3a685f15f954c64d88722f74698415cca04661
MD5 de2b99735fa8c171c5bcb9a438d69f21
BLAKE2b-256 b5648d5e9ea9cfdc5021978659968ce8066c87062bb3207599d7020f3d76fce8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b37cb4972b0ca325e20fe396ac33e606dd77d15a95bd9f3c6b93c37b62271bdc
MD5 917496ed2af78c6e90a596667177dfe1
BLAKE2b-256 5d3dc1b34df077777c99e791f9fff216feaa65bd5ac46dca3b97d7aa2ddcffc0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9d890547907fabee4207d14597fcde249e1f8f2b43e8f07fc5086eea11aac607
MD5 3a650d0632189fdd4d6b2f924c0cc0f8
BLAKE2b-256 7c108051cac6301474a5901beede69cff56f17be41b7256e6a36711fe138b185

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