Integrating Ansible with SignifAI’s Artificial Intelligence and Machine Learning Platform

Guy Fighel
SignifAI
Published in
4 min readAug 31, 2017

Every Site Reliability Engineer (SRE) knows that the more DevOps tools you use to ensure adequate monitoring coverage, the more likely you’ll end up overloaded with alerts and data analysis tasks. Paradoxically, this avalanche of alerts and data might actually cause you to miss precisely the issues you are trying to identify. To help in this situation, SignifAI delivers powerful real-time and predictive insights to DevOps teams by correlating their event, log and metrics data using a combination of AI, machine learning and the team’s own expertise.

SignifAI offers 60+ integrations right out-of-the-box with technologies like AWS, New Relic, AppDynamics, Nagios and Pager Duty. The available integrations cover the most popular DevOps tools used for infrastructure, application, notification, collaboration and deployment tasks. In this week’s post we’ll take a look at how easy it is integrate data from Ansible with SignifAI’s machine intelligence platform to start making powerful correlations with the other tools in your DevOps toolchain.

What is Ansible? Ansible is an open-source automation engine that automates software provisioning, configuration management, and application deployment.

The benefits of Ansible and SignifAI integration

Our mission at SignifAI is to augment a DevOps team’s existing tools with the power of AI and machine learning so they can perform faster and more accurate root cause analysis. We also designed our platform so that it would fit into existing triage workflows vs working in a way that is different to what a team is unaccustomed to.

Integrating Ansible with SignifAI delivers the following benefits:

  • Correlation: Ansible is a data silo of deployment and configuration data. SignifAI uses AI and machine learning to correlate Ansible’s data with additional sources of data including logs, metrics and events from tools like Splunk, Elastic, Datadog, etc. In turn, these powerful correlations will give you much richer context around an alert.
  • Alert Noise: SignifAI doesn’t just correlate the monitoring data from different tools, it correlates the associated alerts as well. So, instead of getting multiple alerts from multiple tools concerning what ultimately is a single issue, SignifAI intelligently groups all the relevant alerts together into an issue card. This makes it easy to see what alerts should be prioritized, which tools are reporting issues and what the underlying data is that can help get you to a remediation faster.
  • Predictive Insights and Anomaly Detection: SignifAI looks at your Ansible data both in real-time and historically to then correlate it with your other log, metric and events data to surface predictive insights and outliers in real-time or in daily, weekly and monthly alerts.
  • Knowledge Capture: SignifAI’s machine intelligence is trained using algorithms based on industry and vendor best practices, SignifAI’s own operational expertise plus most importantly, your expertise. As your team resolves issues, SignifAI uses your documented solutions, hints, annotations, retros and runbooks to deliver a fully customized monitoring solution specifically tailored to your environment.

Integrating Ansible with SignifAI’s Web Collector

SignifAI supports Ansible callback integration so you can get more visibility into your deployments and configuration changes while executing Ansible runs.

By collecting real-time data from your Ansible runs, SignifAI tracks key changes across your infrastructure every time an Ansible script or playbook is running. We correlate between other events and failures in your infrastructure.

  • Ensure the prerequisite python libraries are installed on the server: pyyaml (install with pip install pyyaml)
  • Clone this GitHub repo.
  • Copy the whole directory (exclude test-pb.yml) into the roles/signifai subdirectory starting from the directory of your playbook. Create the directory if it does not exist.
  • Create a signifai_collector.yml file alongside signifai.py, and set its contents. You can also add roles: section before the tasks section and refer to “signifai”.
  • Make sure your yml file contains jwt_token: JWT_TOKEN (from the SignifAI console).

Within your playbook, before the tasks section, put a line like this:

roles:signifai

You can specify ‘application’, ‘service’ and ‘host’ at the same time, but you must specify at least one. The ‘metric’ value is implied by its type as specified in your parameter and/or by our schema.

For additional documentation please refer to: https://docs.signifai.io/docs/sending-deployment-events

Next steps

Originally published at blog.signifai.io on August 31, 2017.

--

--

Guy Fighel
SignifAI

Co-founder and CTO @SignifAI. Thinking machine intelligence, software engineering, scaling infrastructure, systems automation. Previously @TangoMe, @Vonage.