Quantcast
Channel: Cloud Training Program
Viewing all articles
Browse latest Browse all 1902

What is Ansible? | Ansible Architecture | Ansible tower | Ansible Ad Hoc commands

$
0
0

This Blog covers all the aspects of Ansible, a tool used in DevOps for the Management, Deployment, and Orchestration of IT Infrastructure including the following:

This blog talks about technologies that are part of the Azure DevOps environment. If it’s something in which you have an interest or you want to learn it then you can visit our previous blog to know more about the [AZ-400] Microsoft Azure DevOps certification.

What Is Ansible?

  • Ansible is an open-source IT Configuration Management, Deployment & Orchestration tool.
  • It aims to provide large productivity gains to a wide variety of automation challenges.
  • This tool is very simple to use yet powerful enough to automate complex multi-tier IT application environments.
  • Simple, powerful, and agentless IT automation that anyone can use.
  • It uses SSH to connect to servers and run the configured Tasks.
  • Ansible lets you control and configure nodes from a single machine.
  • The project was funded in 2013 and bought by Red Hat in 2015.

Why Use Ansible?

  • No Agent: As long as the box can be ssh’d into and it has python, it can be configured with Ansible.
  • Idempotent: Ansible’s whole architecture is structured around the concept of idempotency. The core idea here is that you only do things if they are needed and that things are repeatable without side effects.
  • Declarative Not Procedural: Other configuration tools tend to be procedural do this and then do that and so on. Ansible works by you writing a description of the state of the machine that you want and then it takes steps to fulfill that description.
  • Tiny Learning Curve: Ansible is quite easy to learn. It doesn’t require any extra knowledge.

Ansible Use Cases

  • Provisioning
  • Configuration Management
  • App Deployment
  • Continuous Delivery
  • Security & Compliance
  • Orchestration

Ansible Architecture Diagram

Ansible Automation Engine

Users

Ansible Playbook

  • Plain-text YAML files that describe the desired state of something
  • Human and Machine-readable
  • Can be used to build the entire application environment
web upgrade playbook

What Are Inventories In Ansible?

  • Static lines of servers
  • Dynamic list of servers: AWS, Azure, GCP, etc.
  • Ranges
  • Other custom things
web and DB command

Ansible Hosts File for lab

Ansible Modules

  • Over 1000 modules provided by Ansible to automate
  • Modules are like plugins that do the actual work in Ansible, they are what gets executed in each playbook task.
  • Each module is mostly standalone and can be written in a standard scripting language (such as Python, Perl, Ruby, Bash, etc.)

Module Index

Ansible Tower

Ansible Tower is a GUI and REST interface for Ansible that supercharges it by adding RBAC, centralized logging, auto-scaling/provisioning call-backs, graphical inventory editing, and more.

Capabilities:

This command-line tool sends commands to the Tower API. It is capable of retrieving, creating, modifying, and deleting most resources within the Tower.

  • A few potential uses include:
  • Launching playbook runs (for instance, from Jenkins, TeamCity, Bamboo, etc.)
  • Checking on job statuses
  • Rapidly creating objects like organizations, users, teams, and more.

    Red Hat

Ansible Roles

  1. Roles are a way to group tasks together into one container. We could have a role for setting up MySQL, another one for configuring ip tables.
  2. Roles make it easy to configure hosts. Any role can be performed on any host or group of hosts such as:
    • – hosts: all
    • – roles:
    • – role_1
    • – role_2

Ansible Variables

There are many different ways to source variables:

  • Playbooks
  • Files
  • Inventories (group vars, host vars)
  • Command-line Discovered Variables
  • Ansible Tower

How To Run The Ansible Commands?

Ad-Hoc: Ansible <inventory> -m

Playbooks: Ansible-playbook

Direct command run

playbook via CLi

AD-HOC Commands Examples

Transferring file to many servers/machines

$ Ansible Abc -m copy -a “src = /etc/yum.conf dest = /tmp/yum.conf“

Creating a new directory

$ Ansible ABC -m file -a “dest = /path/user1/new mode = 777 owner = user1 group = user1 state = directory“

Deleting whole directory and files

$ Ansible ABC -m file -a “dest = /path/user1/new state = absent”

The post What is Ansible? | Ansible Architecture | Ansible tower | Ansible Ad Hoc commands appeared first on Cloud Training Program.


Viewing all articles
Browse latest Browse all 1902

Trending Articles