Introduction to AgnosticD - a Cloud Agnostic Ansible Deployer

Getting Started with AgnosticD

This is the first in a series of posts designed to get new users up and running with AgnosticD, an Ansible based Cloud Agnostic Deployment Platform.

What is "AgnosticD"

AgnosticD allows users to deploy various types of infrastructure to major cloud platforms and by design to be extensible in both the cloud platforms it supports and they type of infrastructure it deploys. Extensively used daily within Red Hat example use cases include:

  • Deploying a single, lightly configured, instance to AWS

  • Deploying a bare bones infrastructure of say 5 or 6 machines with OS but no software

  • Deploying a full OpenShift Cluster

  • Deploying 1 or more workloads to an existing OpenShift Cluster

  • Deploying infrastructure and fully configured software payload

    • e.g. A fully running Ansible Tower Cluster pre-configured with users, projects, and job-templates

Blog Series

Over the coming weeks we’ll dive into how AgnosticD works and how it can be extended both in what it deploys (configs and workloads) and what it can deploy to via cloud providers. And don’t be mislead by the term cloud provider, this could also be a Virtualization Platform such as kvm or Hyper-V or a Container platform. In fact AgnosticD has excellent support for OpenShift.

  • Ansible AgnosticD Introduction (this article)

  • Getting Started with AgnosticD

  • How AgnosticD Works - Under the Covers

  • How "Configs" work and how to write one

  • How "Workloads" work and how to write one

  • How "Cloud Providers" work and how to write one

Super Short Introduction

In Part 3 we’ll examine in more depth how AgnosticD works under the covers but just to get started AgnosticD can be considered a 2 phase deployer (infrastructure and software), with each phase being further sub-divided into 3 stages:

  • Infrastructure

    • pre-infrastructure

    • cloud provider

    • post infrastructure

  • Software

    • pre-software

    • software

    • post-software

With each stage being mapped onto either a config specific playbook, or in the case of cloud provider a cloud provider implementation being executed in sequence.

agnosticd flow

The associated playbooks for each configuration are encapsulated in configs which we’ll explore in more depth in Part 4: How "Configs" work and how to write one. A well written config can support both a basic un-configured deployment i.e. just the base instances themselves through to a full blow deployment including software fully configured and ready to run e.g ansible-tower.

It’s worth highlighting that a single config can be deployed in many completely different configurations by varying the var files passed to it. For example the previously mentioned ansible-tower can be deployed with different projects, job-templates, and other resources or indeed be deployed in both test and prod stages just by varying the input vars.

Most users will not have to write code but instead write desired configuration and re-use existing configs.

Now continue to Part 2 Getting Started with AgnosticD

Tony Kay avatar
About Tony Kay
Team lead for Automation and Management in Red Hat's GPTE DevOps and Automation team. Working globally, I focus primarily on Hybrid Cloud Automation with Ansible. About 2/3rds of my time is automating production cloud deployments and developing both code and training content. I also deliver Automation training globally to both Red Hat and Partner Consultants and Architects on cloud infrastructure using Ansible and on OpenShift/Kubernetes.
comments powered by Disqus