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.
This above information really Good beginners are looking for these type of blogs, Thanks for sharing article on Devops Online Training
ReplyDelete