Configuration, Provisioning and Deployment Software (Infrastructure as code)
Table of Contents
1 - About
This software are use in DevOps pipeling for Code Shipping - Continuous (development|Deployment)
- automates software provisioning, See provisioning.
- configuration management,
2 - Articles Related
3 - Type
3.1 - Configuration management
A configuration management tool means they are designed to install and manage software on existing servers.
Configuration management tools install and manage software on a machine that already exists.
Example: Chef, Puppet, Ansible, and SaltStack
3.2 - orchestration tools
A orchestration tool means it will provision the servers themselves, leaving the job of configuring those servers to other tools.
4 - Architecture
- client-only architecture for CloudFormation, Ansible, and Terraform
- client/server architecture by default for Chef, Puppet, and SaltStack
5 - State
- a procedural style where you need to check the state before making any changes. Chef and Ansible
- a declarative style where you defined the wanted state. Terraform, CloudFormation, SaltStack, and Puppet
6 - List
|Ansible, Red Hat||Declarative||ansible-semaphore/semaphore Opensource alternative at Tower written in (Go)|
|Salt (Python)||Command line and declarative|
|Sup||Leverage bash script|
|chef - Chef Ruby|
|Jenkins||Ssh||Publish Over SSH plugin with a parametrized job|
|Azure||Windows PowerShell Desired State Configuration (dsc)|