February 22, 2024 - Words by The Spotter team - 5 min read
This post was originally published on December 6th, 2022. The content has been updated to reflect the latest trends.
Are you tired of dealing with unreliable Ansible Playboks that expose your infrastructure to security vulnerabilities and automation failures? Keeping your playbooks up-to-date and secure amid constant changes and upgrades can be a daunting challenge. But luckily for you, it doesn’t need to be.
There’s a variety of tools to help you write Ansible Playbooks, scan them for improvements and support your journey toward reliable automation. In this blog post, we’ll explore the top 5 scanning solutions for 2024:
- Steampunk Spotter
- Ansible Lint
- Ansible Later
But, before we dive deeper into these tools…
What are the different types of Infrastructure as Code (IaC) scanners?
IaC scanning tools come in all shapes and sizes. Some only focus on one type of IaC, such as AWS CloudFormation or Hashicorp Terraform, while others can scan multiple IaC types.
The latter is clearly more versatile and can save you the trouble of dealing with multiple tools. But, in general, IaC scanners can be split into the following categories:
- SAST (Static Application Security Testing) tools can scan source code at their design phase before the deployment (usually referred to as linters);
- DAST (Dynamic Application Security Testing) tools are used to analyze the code (and its responsiveness) that is already running;
- SCA (Software Composition Analysis) tools specialize in analyzing all IaC dependencies;
- IAST (Interactive Application Security Testing) tools combine SAST and DAST;
- ASTaaS (Application Security Testing as a Service) tools are services that perform testing for clients (e.g., enterprises).
Now that we understand the general IaC scanner categories, let’s see how the 5 aforementioned tools support your Ansible Playbook writing and updating journey.
1. Steampunk Spotter
Steampunk Spotter is an advanced Ansible Playbook Platform that offers a suite of tools to optimize and secure your automation workflows. Spotter goes beyond syntax checking and performs in-depth playbook analysis, identifies hard-to-catch errors, and improves the quality, reliability, and security of playbooks.
Spotter significantly reduces development and testing time by following automation best practices and helps in easily upgrading to the latest Ansible versions. It checks playbook compatibility, identifies issues, and provides advice for smooth migrations, thus preventing downtime and simplifying version transitions. Additionally, Spotter ensures compliance with security standards, preventing misconfigurations and security vulnerabilities, and allows for the inclusion of custom policies to meet specific security requirements.
You can either use Spotter in the web interface (App), CLI or API, or seamlessly integrate it into your CI/CD pipelines.
Spotter app provides intuitive dashboard and reports, enabling you to analyze scan data, spot trends, monitor progress and create custom reports to provide insights into potential improvements and highlight critical issues that need attention.
“The Spotter is like a very good addition to existing tools like ansible-lint and ansible-test. Especially the tips and hints to migrate from older Ansible versions to current versions as well as the function to fix found errors are great!’’ — Sebastian, System Engineer
Interested in Spotter, but don’t know how to start? Explore our Getting started guide.
2. Ansible Lint
Ansible Lint is another tool to check your Ansible Playbooks, roles and collections for practices and behavior that could potentially be improved.
The platform doesn’t offer a dedicated app. Instead, it brings a command-line tool (CLI) for linting Ansible Playbooks, roles and collections.
To evaluate Ansible content, Lint uses a set of rules. Users can define custom rules (and then use them along with default rules) by extending AnsibleLintRule Python class.
Here are some of the default rules:
- Indicate the use of features that are removed from Ansible
- By default, newly introduced rules trigger only warnings
- Possible indications that consequent runs would produce different results
- Anti-pattern detected, likely to cause undesired behavior
- Invalid metadata, likely related to galaxy, collections or roles
- Rules related to potential security issues, like exposing credentials
- Warnings about code that might not work in a predictable way
- Fatal errors indications that cannot be ignored or disabled
When scanning, CLI suggests having a collection structure. When no arguments are passed, the tool will use its internal heuristics to determine file types (i. e., to find Ansible Playbooks, roles and collections).
Users can add multiple Ansible Playbooks for scanning.
While Ansible Lint ensures the syntax correctness of playbooks, Spotter goes beyond. See how they complement each other.
Keeping Infrastructure as Code Secure (KICS) is an open-source solution for static code analysis of Infrastructure as Code. The tool was created by Checkmarx, a global leader in application security testing.
KICS finds security vulnerabilities, compliance issues and infrastructure misconfigurations in the following Infrastructure as Code solutions: Terraform, Kubernetes, Docker, AWS CloudFormation, Ansible, Helm, Google Deployment Manager, AWS SAM, Microsoft ARM and OpenAPI 3.0 specifications.
The solution includes over 2000 fully customizable and adjustable heuristics rules, called queries, that users can edit or extend. Queries cover a wide range of vulnerability checks for AWS, GCP, Azure and other cloud providers.
ansible-later helps make Ansible roles more readable for all maintainers and can reduce troubleshooting time. It is a best practice scanner and linting tool and it helps to have a coding or best practice guideline in place. It also makes Ansible roles more readable. The tool is fast and easy to use. However, Ansible recommends that users use Ansible Lint for a more in-depth analysis.
ansible-later comes with a set of built-in checks, which focus more on Ansible syntax and doesn’t cover in-depth analysis.
5. Ansible Molecule
Ansible Molecule was designed to aid in the development and testing of Ansible roles. Molecule will simply run the converge action twice and check against Ansible’s standard output. It provides support for testing with multiple instances, operating systems and distributions, virtualization providers, test frameworks and testing scenarios.
Which one should you choose?
Honestly, there’s no one-size-fits-all approach to these scanners. They all complement each other in different ways, ensuring that you get the best possible results.
But, if you have to start somewhere, choose a tool that can help you not only scan your playbook but also automatically update errors. Start your free trial today.