Ansible is agentless, but…

Ansible is supposed to be agentless. This is great and this is certainly a killer feature.

However, that doesn’t mean that there is no requirements on the client side, as I have just found out. I wanted to simply ping a client, like so :

$ ansible remotehost -m ping
remotehost | FAILED! => {
    "changed": false, 
    "failed": true, 
    "module_stderr": "", 
    "module_stdout": "sh: /usr/bin/python: not foundrn", 
    "msg": "MODULE FAILURE", 
    "parsed": false
}

Problem: the remotehost machine is a very light Alpine Linux container. Very light. So light that it doesn’t have any interpreter : no perl, no php, no ruby… not even python !

So to manage your clients, you have to be prepared to have a big chunk of some interpreter, being ruby (for puppet, for example), or python.

I am not a huge fan of interpreted languages. But if I have to install one, I guess python is not the worst choice. Moreover, it is installed by default on CentOS, Debian, etc. And also, did I mention that Ansible is agentless? ;—)

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s