Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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 files for steampunk-spotter 6.6.0a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for steampunk-spotter 6.6.0a1
File
steampunk_spotter-6.6.0a1-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
steampunk_spotter-6.6.0a1-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
steampunk_spotter-6.6.0a1-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
steampunk_spotter-6.6.0a1-py3-none-manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
steampunk_spotter-6.6.0a1-py3-none-manylinux_2_17_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
steampunk_spotter-6.6.0a1-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
steampunk_spotter-6.6.0a1-py3-none-macosx_10_9_x86_64.whl Python 3 none macOS 10.9+ x86-64 Details

Total release size: 37.6 MB

Release files / steampunk_spotter-6.6.0a1-py3-none-win_amd64.whl

Download URL steampunk_spotter-6.6.0a1-py3-none-win_amd64.whl
Size 5.7 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
d14151404c6a57adfa9afccdf5a719f465d2f87a96fa291565bd715a99056f61
BLAKE2b-256 checksum
How to use checksums
491bee07ad85fc07d484c943d1251e0e19ce1cd592ea6262873a10661a7e66ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.14

Release files / steampunk_spotter-6.6.0a1-py3-none-musllinux_1_2_x86_64.whl

Download URL steampunk_spotter-6.6.0a1-py3-none-musllinux_1_2_x86_64.whl
Size 5.5 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
0eaad36a7d98a1f3562d9a13a5b8d0fda9a0a24f089a27db0bc07d7a1fb7fd11
BLAKE2b-256 checksum
How to use checksums
08c399a47d910db271a7ad48d091a784bcb5dc53bf6f4a6bd6b4e20bde721bc0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.14

Release files / steampunk_spotter-6.6.0a1-py3-none-musllinux_1_2_aarch64.whl

Download URL steampunk_spotter-6.6.0a1-py3-none-musllinux_1_2_aarch64.whl
Size 5.0 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
24e50be988dbf01ea64488cf6239df20002a5b413c5d3a33dfed18c185a6ccbb
BLAKE2b-256 checksum
How to use checksums
b6adf2057626818db27f19f929599b1761f0142020284c8ed7ff2c7f5cd7ac2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.14

Release files / steampunk_spotter-6.6.0a1-py3-none-manylinux_2_17_x86_64.whl

Download URL steampunk_spotter-6.6.0a1-py3-none-manylinux_2_17_x86_64.whl
Size 5.5 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
d935898d95cafdc2d8db96d52cad87b6087dfd49d627a2855969fad08d324130
BLAKE2b-256 checksum
How to use checksums
68a1c93d8ea92df3088914ec8921022a568f1cd283a242e65c5abfea604b830c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.14

Release files / steampunk_spotter-6.6.0a1-py3-none-manylinux_2_17_aarch64.whl

Download URL steampunk_spotter-6.6.0a1-py3-none-manylinux_2_17_aarch64.whl
Size 5.0 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
e990bd13d227643c59f7035d3a2760d3c3579eb827a507f6aaae19c4bb39ca73
BLAKE2b-256 checksum
How to use checksums
7546b3fdc5c7443ddd0ff25e6cfe5474acc120082c140d931e72231ce411325f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.14

Release files / steampunk_spotter-6.6.0a1-py3-none-macosx_11_0_arm64.whl

Download URL steampunk_spotter-6.6.0a1-py3-none-macosx_11_0_arm64.whl
Size 5.2 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1ca33cac4b82829d6e3909384b18e5b7201fb86bed0ddd6d3c5195dc9a583e69
BLAKE2b-256 checksum
How to use checksums
ec01fad7b226e1383cf33d247690eaf8b17c6ed1e1048bb2bc8fa62cbd20c130
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.14

Release files / steampunk_spotter-6.6.0a1-py3-none-macosx_10_9_x86_64.whl

Download URL steampunk_spotter-6.6.0a1-py3-none-macosx_10_9_x86_64.whl
Size 5.6 MB
Tags Python 3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
999bb05bbad292f7008c5806333c0787a7054ad3513438090dcdbbe5acadaa02
BLAKE2b-256 checksum
How to use checksums
84c6325b8341e04c360d0b91e0baffc88e1799b2ee2103d5d355163f3e32d13b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.14

Release history Release notifications | RSS feed

6.6.0

7 release files

This release

6.6.0a1 This release

7 release files

6.5.0

7 release files

6.4.1

7 release files

6.4.0

7 release files

6.3.0

7 release files

6.1.0

7 release files

6.0.0

7 release files

5.12.0

7 release files

5.11.0

1 release file

5.10.0

1 release file

5.9.0

1 release file

5.8.0

1 release file

5.7.0

1 release file

5.6.0

1 release file

5.5.1

1 release file

5.5.0

1 release file

5.4.0

1 release file

5.3.0

1 release file

5.2.1

1 release file

5.2.0

1 release file

5.1.1

1 release file

5.1.0

1 release file

5.0.0

1 release file

4.4.1

1 release file

4.4.0

1 release file

4.3.0

1 release file

4.2.0

1 release file

4.1.0

1 release file

4.0.0

1 release file

3.3.0

1 release file

3.2.0

1 release file

3.1.1

1 release file

3.1.0

1 release file

3.0.0

1 release file

2.6.0

1 release file

2.5.0

1 release file

2.4.0

1 release file

2.3.0

1 release file

2.2.0

1 release file

2.1.0

1 release file

2.0.3

1 release file

2.0.2

1 release file

2.0.1

1 release file

2.0.0

1 release file

1.2.8

1 release file

1.2.7

1 release file

1.2.6

1 release file

1.2.5

1 release file

1.2.4

1 release file

1.2.3

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.10

1 release file

1.1.9

1 release file

1.1.8

1 release file

1.1.7

1 release file

1.1.6

1 release file

1.1.5

1 release file

1.1.4

1 release file

1.1.3

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.8.3

1 release file

0.8.2

1 release file

0.8.1

1 release file

0.8

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page