11.2 Create an Article, blog on how industries are solving challenges using Ansible.
*What is Ansible?*
Ansible loves the repetitive work
your people hate!!
No one likes repetitive tasks. With Ansible, IT admins can begin automating away the drudgery from their daily tasks. Automation frees admins up to focus on efforts that help deliver more value to the business by speeding time to application delivery and building on a culture of success. Ultimately, Ansible gives teams the one thing they can never get enough of: time. Allowing smart people to focus on smart things.
1.Ansible is an open-source software provisioning, configuration management, and application-deployment tool enabling infrastructure as code.
2.It runs on many Unix-like systems and can configure both Unix-like systems as well as Microsoft Windows.
3.In other words, it frees up time and increases efficiency. And Ansible, as noted above, is rapidly rising to the top in the world of automation tools. Let’s look at some of the reasons for Ansible’s popularity
Do we need Ansible? Why
Ansible is very useful and you would appreciate it with the example when there are 4 or 5 web servers to be configured and deployed, and when there are more than 4 database servers to be configured and deployed. There are applications in the web servers and it connects the database servers at the backend. Now the traditional situation demands that you separately configure these servers and manage them.
However, these servers will have various application updates. Even a system admin cannot handle if there are more servers and their configurations will not be identical. These tasks are complex to do and to manage the number of servers without putting a lot of effort into system admin as well as by developers who are developing the applications. Just imagine other servers which the organization has such as DNS, NTP, AD, Email, etc
This is where Ansible comes into the picture. Infrastructure automation and orchestrations can be done by Ansible. All the similar servers can be handled and managed in one go by Ansible.
Benefits of using Ansible
- Agentless –There are no agents or software deployed on the clients/servers to work with Ansible. The connection can be done through the SSH or using the Python.
- English Like Language — To use the Ansible, configure, and deploy the infrastructure is very simple and it is English like the language used called YAML.
- Modular — The Ansible uses modules to automate, configure, deploy, and orchestrate the IT Infrastructure. There are around 750 + modules built-in Ansible.
- Efficient — There are no servers, daemons, or databases required for Ansible to work.
- Features — Ansible comes with a whole lot of features and can be used to manage the Operating systems, IT Infrastructure, the networks, the servers, and services in very less time.
- Secure and consistent — Since the Ansible uses SSH and Python it is very secure and the operations are flawless.
- Reliable — The Ansible Playbook can be used to write programs or the modules and can be used to manage the IT without any downside.
- Performance- The Ansible’s performance is excellent and has very little latency.
What is Ansible Tower??
Ansible Tower is Red Hat’s commercial web-based solution for managing Ansible. Its best-known feature is an easy-to-use UI (user interface) for managing configurations and deployments, which is a significant improvement over the original UI. Ansible Tower contains the essential features of Ansible, especially those that are easier to see in a graphical format rather than a text-based format. It is free for up to 10 nodes.
**Use Case of Ansible**
1.Ansible in AWS
Ansible is an open-source tool that you can use to automate your AWS deployments. You can use it to define, deploy, and manage applications and services using automation playbooks. These playbooks enable you to define configurations once and deploy those configurations consistently across environments.
Another benefit of using Ansible is ensuring safe automation. Misconfigurations are a major vulnerability in cloud environments, but automation can help you ensure that only permitted configurations are deployed. However, you don’t want everyone on your team to be able to automatically deploy anything they want.
To prevent this, Ansible offers the Ansible Tower. Ansible Tower is a web-based UI that you can use to define role-based access controls (RBAC), monitor deployments, and audit events. It enables you to set and authorize user actions on a granular level. Ansible Tower also includes features for encrypting credentials and data.
Ansible modules supporting AWS
When using Ansible, there are dozens of modules you can choose from that support AWS services. These modules include functionality for:
- Autoscaling groups
- CloudFormation, CloudTrail, and CloudWatch
- DynamoDB, ElastiCache, and Relational Database Service (RDS)
- Elastic Cloud Compute (EC2)
- Identity Access Manager (IAM) and Security Groups
- AWS Lambda
- Simple Storage Service (S3)
- Virtual Private Cloud (VPC)
For additional ways to automate AWS infrastructure, see our article about deploying Terraform on AWS.
How to Use Ansible Modules with AWS
There are a few modules, used in most Ansible deployments, that you should know how to use. The most common of these modules are introduced below with some instructions to get you started.
To use authentication with AWS-related modules, you need to specify your access and secret keys as either module arguments or environmental (ENV) variables.
2.Ansible in Azure
Ansible’s library of Azure modules makes it easy to provision instances, networks, and complete Azure infrastructure whenever you need, and in any region you require. For example, the same simple Playbook language you use for application deployment and on-prem automation also provisions your Azure infrastructure, applying the correct configuration.
Once you use Ansible to define your application locally, you can repeatedly deploy and redeploy the application. Re-deploying it to a different infrastructure is as straightforward as defining your Azure environment and then applying your application’s Playbook. No more surprises. Because of its power and flexibility, Ansible ensures your Azure deployments work seamlessly in a hybrid cloud configuration as easily as you build a single system.
3.Ansible in Docker
Docker is a Linux-based open-source platform used to help automate the deployment of applications within software containers. (A container is a unit of software in which code and all of its dependencies are packaged together; setting up software this way helps an application run reliably and consistently in multiple computing environments.)
Managing Docker Containers Using Ansible Modules:-
Ansible has several modules for managing Docker; a few of these are docker_image, docker_container, and docker_service. Docker_image is used for building, loading, or removing images and also for tagging and archiving images. Docker_container lets you create and destroy Docker containers, as well as start, stop, and update them. Docker_service assists in starting, shutting down, and scaling services. As updates are continually being made to both Ansible and Docker, look for the most recent list of modules and their functions, along with system requirements and more, in the Ansible guide to working with Docker.
Have a happy reading!!
— Divya Jain