Использование ping на localhost в playbook - PullRequest
0 голосов
/ 23 января 2020

Я не могу запустить команды ping с хоста ansible (используя localhost, см. Ниже).

Я создал простую книгу воспроизведения для запуска ping с помощью командного модуля:

---
#
- 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

Однако, я вижу эту ошибку: «ping: socket: Операция не разрешена»

Похоже, существует проблема с разрешениями. Однако, глядя на каталог / usr / bin, кажется, что ping будет исполняемым для меня:

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

Я не могу стать или использовать sudo, похоже, что tower для этого заблокирован, и я не Он также не может изменить его.

У кого-нибудь есть предложения? Что привело меня к этому, так это то, что я пытаюсь запустить ping в пользовательском модуле и получаю похожую проблему.

Спасибо

1 Ответ

1 голос
/ 24 января 2020
Для

ping двоичного файла должен быть установлен бит SETUID, чтобы он был полностью запущен как обычный пользователь, чего нет на вашем сервере.

Вам необходимо запустить как root:

chmod u+s $(which ping)

Если у вас нет доступа root и администратор не может этого сделать, я боюсь, что вы застряли ... если сервер, на который вы пытаетесь пропинговать, не является машиной, которую вы можно управлять с помощью ansible.

. В этом последнем случае можно использовать модуль ping . Это не ICMP-пинг, как сказано в do c. Посмотрите, может ли это быть использовано в вашей ситуации.


Один из многочисленных ссылок, которые я мог найти о ping разрешениях: https://ubuntuforums.org/showthread.php?t=927709

...