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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0rc2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 16777b78b9ff137ed2562436515cd481a33c963c3ef7be384e5d8f8116841310
MD5 1f94a282eb757737851cbddd300c7d0f
BLAKE2b-256 28e4c0fa506335290293eee1d102c06fd2cd9a6fe43ea5c7c1b88403c09d1384

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0rc2-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 91b8411ac090c5bccf797c7c93fcd76f84c8160130e6daf8e369b3daab605efb
MD5 65a41bce9295fdfa2426ec413d21635d
BLAKE2b-256 c24055a35a5e656afd73e38a9aa64fb62a6ed9dc5796d6f2dc90e753a8bd7954

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0rc2-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 602401251b98ba29e50129bc17ab03ecb49414055570ec696260b394043838ce
MD5 a81015fecaa63f6ddf61f68de2e93525
BLAKE2b-256 2ca36d8c75055abb1d1f1c415229dda5399a57d58449b70bfa552475617709f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0rc2-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b11208d0737b3f0f091054fc1128d8a5a5c3e348dc1c7f4aaf24551e30c42614
MD5 2e7bb1e019efd7e924c06cc4184f8419
BLAKE2b-256 686ce1aaad80da91045ef2ba048e0452051f74c4409b6a7f72685f291346dcb9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0rc2-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 842c5b831314f5dc19127c9940638162f09363ba1e1602a1c28a7d3916f84621
MD5 16d06b907543cbfd1b14648f615561df
BLAKE2b-256 15faa7a28b2ec0ee23d1969411d106e0eb9f217dd4d5d580256599f06f0d9c4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0rc2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c947cee8b3e6ac19fe4a34ddd17fe38b5bd9f19b7ca2fffed173c191e09e4f83
MD5 1d7f4beeb5bd5811eb33a18efb9469d8
BLAKE2b-256 ea9f25527b49e22a2def05d00b6e76a766075e737497f0e43e245a43ece1e95e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0rc2-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8375e2795073e7a4032c3f3489275a0915f61b931d6b6b36c4cc5d48c901f87a
MD5 61188012116b25f8de81ed4ef4b03cb6
BLAKE2b-256 3f6a337b1d4cbb25f660a90d20ab32bd304c9d6dfdcef779fb4a188c1078443b

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