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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0rc1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 cfb2bd845595ff12021e2be68ba29fa518f5079741c38a8122488934124daa7f
MD5 51222985c70dc40b650d93266c454441
BLAKE2b-256 3900ad61ca3bfc370f45d43f1fa9fb1f0c0eeb14f32d33cc6e1c8ad8b7105d2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0rc1-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 12015f65d8ad8ca6472ba9bf4f68626ed3ecc3393dcf89d1a28de86bf8098556
MD5 f2a8a734de712c3a83223baa4b22e6a9
BLAKE2b-256 bddb6e40ffc330a34b300a2ef6ded663da5ff84f5dec873f6bdf4ed9e62eef61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0rc1-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b77b0a03d8807aec39b77a3e2ada1428a09b6b533d838e13e85e792e99d2cb9a
MD5 ac14fb407828131807f69049690067f1
BLAKE2b-256 a600dc7a7cb4e0ab5f46727dd479b5c5d18c29d6083a20ccfbb411184709f105

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0rc1-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 1b25a486daabfecd4ef487ec9d341934eb23782de963775bf258f042f971d94b
MD5 c41309f65680c9508769aa4fde6b7974
BLAKE2b-256 f01f2ffeb0239382c4a99ab3af656f97ad48051970d594143309f5e39d17ea56

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0rc1-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 ea72b7fcbe83107a30d9aaf73f2cd491e210a78743646510fe077e202db91466
MD5 02f38c59ac115817af469619277a792d
BLAKE2b-256 af907992f2073a2861c04fd643912bd42a0fd0a026c062000b1dba5a6f17a998

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0rc1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0c48676487a19a80c741e133d575e1d0175427f3a3c37b7566ae5068034c4d79
MD5 393b3709e44dffdb6839eba988ef7dab
BLAKE2b-256 b6c154af23382c5c1341587edc832904740bb91da492f6989e07b5b7ade3f1e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for steampunk_spotter-6.0.0rc1-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 448ad83d160ce7fc97d00d0dbdba5e9efc220fbd55be9ea9ce815fd5d2095289
MD5 b8ca2f4a0e24e93f30ce7d468e29812c
BLAKE2b-256 d15c170ac844b6652f44b548c39c52aa347ec1c54fed9882baa5af595862d3a5

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