rev_it_up
rev_it_up

Reputation: 75

Using ping on localhost in a playbook

I am unable to run ping commands from a ansible host (using localhost, see below).

I built a simple playbook to run ping using the command module:

---
#
- name: GET INFO
  hosts: localhost

  tasks:
    - name: return motd to registered var
      command: "/usr/bin/ping 10.39.120.129"
      register: mymotd

    - name: debug output
      debug: var=mymotd

However, I this error: "ping: socket: Operation not permitted"

Seems like there is a permissions issue. However, looking at the /usr/bin directory, it looks like ping would be executable to me:

    "-rwxr-xr-x.   1 root root      66176 Aug  4  2017 ping", 

I cannot become or use sudo, it seems like tower is locked down for that and I don't have the authority to change it either.

Anyone have any suggestions? What brought me to this, is that I am trying to run ping in a custom module and getting a similar issue.

Thanks

Upvotes: 1

Views: 2797

Answers (1)

Zeitounator
Zeitounator

Reputation: 44615

ping binary needs to have the SETUID bit set to be fully runable as a normal user, which is not the case on your server.

You need to run as root:

chmod u+s $(which ping)

If you don't have root access and cannot have this done by an admin, I'm affraid you're stuck... unless the server you are trying to ping is a machine you can manage with ansible.

In this later case, there is a ping module you can use. It is not ICMP ping as said in the doc. See if this can be used in your situation.


One of the numerous ref I could find about ping permissions: https://ubuntuforums.org/showthread.php?t=927709

Upvotes: 2

Related Questions