# Do the target systems need to have pre-requisites installed for Ansible to work?

**URL:** <https://forum.ansible.com/t/do-the-target-systems-need-to-have-pre-requisites-installed-for-ansible-to-work/29931>\
**Category:** Ansible Project\
**Created:** [March 20, 2019, 9:44pm UTC](https://forum.ansible.com/t/do-the-target-systems-need-to-have-pre-requisites-installed-for-ansible-to-work/29931 "2019-03-20T21:44:59Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![gigit1000](https://avatars.discourse-cdn.com/v4/letter/g/a87d85/32.png) [@gigit1000](https://forum.ansible.com/u/gigit1000)\
**Post date:** [March 20, 2019, 9:44pm UTC](https://forum.ansible.com/t/do-the-target-systems-need-to-have-pre-requisites-installed-for-ansible-to-work/29931/1 "2019-03-20T21:44:59Z")

</div>

Hello,

I’m a little confused about how Ansible works: Since its “clientless” it makes it sound like you don’t need to install software on the target hosts in order to run playbooks to configure them. From the documentation:

“Ansible works by connecting to your nodes and pushing out small programs, called “Ansible modules” to them. Ansible then executes these modules (over SSH by default), and removes them when finished.”

This sounds like the only place you would need to install prerequisite software would be on the “control host” where Ansible is installed, not on the remote hosts you want to configure. However, When looking at the documentation for the modules, I see things like this:

“The below requirements are needed on the host that executes this module.”  
boto  
boto3  
botocore  
python \>= 2.6

What is “the host that executes this module”? Is this the control host where you installed Ansible or the remote host that you want to change with the playbook?

Thank You

---

<div class="post-metadata">

**Author:** ![Gaetano\_Giacalone](https://avatars.discourse-cdn.com/v4/letter/g/e56c9b/32.png) [@Gaetano\_Giacalone](https://forum.ansible.com/u/Gaetano_Giacalone)\
**Post date:** [March 20, 2019, 11:32pm UTC](https://forum.ansible.com/t/do-the-target-systems-need-to-have-pre-requisites-installed-for-ansible-to-work/29931/2 "2019-03-20T23:32:50Z")

</div>

I really hate it when people tell me to read the manual, but if you’re a visual learner like me, there are plenty of cheap courses on [udemy.com](http://udemy.com) or even free on utube. 😊

**Gaetano Giacalone**

[LinkedIn](https://www.linkedin.com/in/gaetano-giacalone-198834106)

[DockerHub](https://hub.docker.com/u/dagman62)

[GitHub](https://github.com/dagman62)

---

<div class="post-metadata">

**Author:** ![cassell](https://avatars.discourse-cdn.com/v4/letter/c/ecae2f/32.png) [@cassell](https://forum.ansible.com/u/cassell)\
**Post date:** [March 21, 2019, 12:00am UTC](https://forum.ansible.com/t/do-the-target-systems-need-to-have-pre-requisites-installed-for-ansible-to-work/29931/3 "2019-03-21T00:00:15Z")

</div>

> Hello,
> 
> I’m a little confused about how Ansible works: Since its “clientless” it  
> makes it sound like you don’t need to install software on the target hosts  
> in order to run playbooks to configure them. From the documentation:
> 
> “Ansible works by connecting to your nodes and pushing out small programs,  
> called "Ansible modules" to them. Ansible then executes these modules (over  
> SSH by default), and removes them when finished.”
> 
> This sounds like the only place you would need to install prerequisite  
> software would be on the “control host” where Ansible is installed, not on  
> the remote hosts you want to configure. However, When looking at the  
> documentation for the modules, I see things like this:
> 
> “The below requirements are needed on the host that executes this module.”  
> boto  
> boto3  
> botocore  
> python \>= 2.6
> 
> What is “the host that executes this module”? Is this the control host  
> where you installed Ansible or the remote host that you want to change with  
> the playbook?

These are required on the host you want to change.

V/r,  
James Cassell

---

<div class="post-metadata">

**Author:** ![erichymowitz](https://avatars.discourse-cdn.com/v4/letter/e/9d8465/32.png) [@erichymowitz](https://forum.ansible.com/u/erichymowitz)\
**Post date:** [March 21, 2019, 12:57pm UTC](https://forum.ansible.com/t/do-the-target-systems-need-to-have-pre-requisites-installed-for-ansible-to-work/29931/4 "2019-03-21T12:57:08Z")

</div>

The answer to your question is “Yes and no.”

The actual Ansible software and Ansible modules and Ansible configuration files only get installed on the control host.

The client hosts still need some basic software for Ansible to connect to them and run, such as Python and certain Python modules, and probably SSH keys.

These are usually part of a “base” system install. They aren’t specific to Ansible, so they’re not typically considered “part of an Ansible installation”. But it’s possible that you still need to install a few things on the clients for Ansible to work properly.

I hope that explains it.

–EbH
