All Projects → ssbostan → maasta

ssbostan / maasta

Licence: Apache-2.0 license
MAAS Terraform Ansible

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to maasta

vboxpower
VirtualBox Power Driver for MAAS
Stars: ✭ 107 (-18.94%)
Mutual labels:  provisioning, maas
Foreman
an application that automates the lifecycle of servers
Stars: ✭ 2,102 (+1492.42%)
Mutual labels:  provisioning, maas
mdmlang
🔄 Natural Transformation Language for Java
Stars: ✭ 14 (-89.39%)
Mutual labels:  integration
FOODIE
Fortran Object-Oriented Differential-equations Integration Environment, FOODIE
Stars: ✭ 109 (-17.42%)
Mutual labels:  integration
visonic
Visonic Custom Component for integration with Home Assistant
Stars: ✭ 57 (-56.82%)
Mutual labels:  integration
maas-ui
The UI for MAAS (metal-as-a-service)
Stars: ✭ 20 (-84.85%)
Mutual labels:  maas
inspr
Inspr is an agnostic application mesh for simpler, faster, and securer development of distributed applications (dApps).
Stars: ✭ 49 (-62.88%)
Mutual labels:  integration
hilo
Hilo integration for Home Assistant
Stars: ✭ 26 (-80.3%)
Mutual labels:  integration
logzio-k8s
No description or website provided.
Stars: ✭ 24 (-81.82%)
Mutual labels:  integration
linker
Dependency Injection and Inversion of Control package
Stars: ✭ 33 (-75%)
Mutual labels:  lifecycle
tesla
Tesla custom integration for Home Assistant. This requires a refresh token be generated by third-party apps to login.
Stars: ✭ 145 (+9.85%)
Mutual labels:  integration
RcppNumerical
Rcpp Integration for Numerical Computing Libraries
Stars: ✭ 52 (-60.61%)
Mutual labels:  integration
mbapipy
MercedesME platform as a Custom Component for Home Assistant.
Stars: ✭ 25 (-81.06%)
Mutual labels:  integration
warewulf
Warewulf is a stateless and diskless container operating system provisioning system for large clusters of bare metal and/or virtual systems.
Stars: ✭ 90 (-31.82%)
Mutual labels:  provisioning
deploykit
A toolkit for creating and managing declarative, self-healing infrastructure.
Stars: ✭ 2,246 (+1601.52%)
Mutual labels:  provisioning
walkman
Isolate tests from the real world, inspired by Ruby's VCR.
Stars: ✭ 51 (-61.36%)
Mutual labels:  integration
ballerina-integrator
A powerful, simple-to-learn, code-driven approach to programming integrations
Stars: ✭ 36 (-72.73%)
Mutual labels:  integration
kickoff
Project Bootstrapping Tool
Stars: ✭ 22 (-83.33%)
Mutual labels:  provisioning
pivot-vue
Integration example of WebDataRocks web reporting tool with the Vue framework
Stars: ✭ 17 (-87.12%)
Mutual labels:  integration
AndriodDevelopLibrary
Lifecycle->ViewModel+LiveData+Repository
Stars: ✭ 16 (-87.88%)
Mutual labels:  lifecycle

MAASTA (MAAS Terraform Ansible)

Visits Badge GitHub last commit GitHub license GitHub stars GitHub forks GitHub issues

Twitter LinkedIn

Stargaze GitHub Repo stars if you find it useful.

MAASTA is a wrapper to create an Ansible inventory for MAAS instances that are provisioned by Terraform.

This script is used to build an end to end automation DevOps lifecycle.

What is MAAS?

MAAS (Metal as a Service) is a tool to turns real servers into bare-metal cloud. With MAAS, you can automate server provisioning and installing OS remotely on both physical and virtual servers. MAAS.io for more information.

What is Terraform?

Terraform is an infrastructure as code tool which is used originally for provisioning cloud instances on various cloud providers. With Terraform and the aid of the IaC, we can provision machines and cloud instances with codes and without direct human interactions. Terraform is responsible for provisioning systems, usually Immutable ones. Terraform.io for more information.

What is Ansible?

Ansible is another IaC tool but for configuration management. With the aid of Ansible, we can configure a multitude of systems without direct human interactions. Ansible is responsible for configuring existing systems, usually mutable ones. Ansible.com for more information.

Why do we need MAASTA?

Imagine you want to create the DevOps lifecycle for your on-premises infrastructure. In such a scenario, You need the MAAS to interact with your real infrastructure and bring your bare-metal or virtual machines into cloud-like infrastructure. After that, to achieve automation, you need the Terraform tool to interact with the MAAS to provisioning instances and managing them without direct human interactions. When the instances, machines, were provisioned by the Terraform, the time to configuring them comes. For configuring instances, you need the Ansible tool, but how Ansible can discover targets that are provisioned by the Terraform. The answer is MAASTA! MAASTA is used to discover Terraform provisioned MAAS instances and create an Ansible inventory file for them. With the aid of the MAASTA, you can create an end to end automation and integrate MAAS, Terraform, and Ansible together.

See /examples/README.md to get started with brief examples.

Get started guide:

MAASTA accepts two environment variables, MAAS_API_URL and MAAS_API_KEY, and reads the output of the terraform show -json command from stdin. The output of the Terraform is used to find the MAAS machines that are provisioned by the Terraform. MAASTA connects to the MAAS server and reads information (fqdn, hostname, ipaddr) of machines and creates an Ansible inventory for them. The inventory will write into inventory.yaml file.

Installation:

pip install git+https://github.com/ssbostan/maasta.git

Usage:

terraform show -json | python -m maasta

How to contribute:

Currently, MAASTA can create inventory for machines that are provisioned with Ubuntu distribution. The script is tested with minimum viable tests and may break in some situations.

Don't hesitate to contribute. In the case of a bug, please file an issue.

Copyright 2021 Saeid Bostandoust [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].