Sunday, January 7, 2018

Ansible overview (configuration management and types of configuration management tool.)

Ansible overview:

We all know that,companies  drive revenue by installing the applications.by giving applications to the customers.let it be the e-commerce site,mobile app,game or security,by all revenue is driven by application deployments.

“There will be a dedicated environment right”.

To install Microsoft office,you need a windows operating system.that is an environment,which office expects.

Similarly for every application,whatever application your organsation is developing.

Definitely,there is a need of certain environment.

“CONFIGURATION MANAGEMENT MAINLY DEALS ABOUT THE CREATION OF THOSE ENVIRONMENTS”.HAPPENED AUTOMATICALLY.



What is meant by automatically?
Will,that happened on its own,will do some sort of scripting or configuration.

“A tool which helps us to prepare such kind of environment,where our application can be deployed directly”.so that is a configuration management.

There are many configuration management tool:

Out of which:

1)    Chef
2)    Puppet
3)    Ansible
4)    Salt

Understand configuration management and understand the basic terminology around it and understand where ANSIBLE stands in it.

Whenever we say configuration management tool,
One definitely be one server component

That is the configuration management server.(This server responsibility is to ensure,whatever environment you created,it will make sure that,that is deployed in to the NODE1,2 And 3.

While applying this,philosophically there are two ways of applying this:
(Whenever you apply the configuration,there are two ways of applying it)

configuration servers sends the configuration to the NODE1,2,3.the configuration server will send the configs whenever the servers/nodes/hosts want to apply that.

First model:

>> server intiates the communication to the client.


the second model
>> client intiates the communication to the server,do I have anything to do.


whenever your going through the pull model,t
the client should be aware of the server.

That means the client should know,who the server is,
For maintaining,these kind of things,incase of chef/puppet,we will have a software component installed is the AGENT.

What is an Agent in configuration management tool?
A software that is installed on your servers,so that,it communicates with your server.

(Basically,the communication can be custom also,they can be on there own ports/they can be on there own defined ports).

Incase of Push model:

You can design,with out the agent.

So,the server needs to,basically send the communication and if required needs to communicate with you production machine.

Basically,for this purposes,Ansible uses nothing but the SSH.
(Incase of Ansible,it uses secure shell itself).

(so it does not require any additional installations on your production machines).

Ansible expects,some SSH port to be opened.


Other things is,

Ansible,will be sending some code to the client.for that to work,there should be some environment,that environment what ANSIBLE expects to work is the python.

Two requirement,if your ansible code need to work on the client/server/host/node.

1)    The ssh port should be opened.
2)    Basic python installation is required.

It depends upon the purpose/requirement,with which tool you want to go.

For example:
If you don’t want to touch the server/host,then the Ansible is the best.
If you want to drop the configuration on the server/host,chef/puppet is the best.

The best part in the push model,
Your client does not required to know,where the server is.

(because the server is intiating the connection,it will do its JOB).

Disadvantage (every model has some of it).
(you will not,always have the updated information).
(for every,updated information,you(client) need to intiate the communication).

Incase of chef/puppet,Agent will take care of all these things.

Usually,using on the deployment models,we choose the tools.

(there is no thing like,best among one),it depends on the situation.

How to choose?
1)    The skill of your existing team
2)    How many nodes/client do we need to communicate?

Ansible calls the

Configuration server   as    controller server.
Node/agent                   as    remote server.

Advantages of the push model:

There are lightweight.

Note:
Going forward the industry is planning to support both the push  and pull model.