#Ansible is a simple automation language that can perfectly describe an IT application infrastructure.
#In real time it is used in industry to configure server irrespective of the operating system installed. The employees needn’t know command for every type operating systems which is installed on system.
# It’s easy-to-learn, self-documenting, and doesn’t require a grad-level computer science degree to read. Automation shouldn’t be more complex than the tasks it’s replacing.
USE CASES OF ANSIBLE ARE:
*Automate, manage and connect all stages of an application lifecycle
- Provisioning with Ansible allows you to seamlessly transition into configuration management, orchestration and application deployment using the same simple, human readable, automation language.
- Config Management
- Keep it simple
- App Deployment
*Deploying apps shouldn’t be so hard
- Continuous Delivery
*Release early & often but keep it simple
- Security & Compliance
*The need to respond to security attacks manually is daunting
*Ansible Automation is the common language between security tools
*orchestrate your complex tasks simply
🤷♂️Now let us see what is configuration management. Let us consider few scenarios a support guy deal with on daily basis.
- Patching the servers from dev through prod.
- Restarting a service on multiple services due to catastrophic failures or patching.
- Setting up a brand new environment from dev through prod.
- Deploying code from dev till prod.
What’s common in all these scenarios? The work is redundant. You will end up repeating same steps what you followed in initial environment. In this case why not automate? This is what configuration management does in simpler terms?
Can’t we achieve this without configuration management? Very much possible. If in case you’re dealing with linux servers, this can be achieved with shell scripting over ssh as well. Then why configuration management? Because shell scripts are more assembly than any language used in the configuration management tools.
>> Now let us see why ansible among other cm tools. Ansible is easy to learn and works without an agent. All you need to do is hookup newly configured server with an ssh key used by ansible server for ssh. Since it is easy to learn, time to market any product is less comparatively if you consider only cm part.
>> But the downside is that, there is not much learning curve with ansible. Once you are comfortable with yaml and key concepts of ansible, it is a smooth ride.
>> Many of the benefits of configuration management for servers come from the ability to define your infrastructure as code. This enables you to:
- Use a version control system to keep track of any changes in your infrastructure
- Reuse provisioning scripts for multiple server environments, such as development, testing, and production
- Share provisioning scripts between coworkers to facilitate collaboration in a standardised development environment
- Streamline the process of replicating servers, which facilitates recovery from critical error
I conclude that, configuration management tools offer you a way to control one to hundreds of servers from a centralized location, which can dramatically improve efficiency and integrity of your server infrastructure.