Подтвердить что ты не робот

Ошибка: ansible требует json-модуль, ни один не найден

Ошибка при выполнении доступного модуля ping

bash ~ ansible webservers  -i inventory -m ping  -k  -u root -vvvv
SSH password: 
<~> ESTABLISH CONNECTION FOR USER: root on PORT 22 TO ~
<my-lnx> ESTABLISH CONNECTION FOR USER: root on PORT 22 TO my-lnx
~ | FAILED => FAILED: [Errno 8] nodename nor servname provided, or not known
<my-lnx> REMOTE_MODULE ping
<my-lnx> EXEC /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1423302966.66-77716810353582 && echo $HOME/.ansible/tmp/ansible-tmp-1423302966.66-77716810353582'
<my-lnx> PUT /var/folders/8n/fftvnbbs51q834y16vfvb1q00000gn/T/tmpP6zwZj TO /root/.ansible/tmp/ansible-tmp-1423302966.66-77716810353582/ping
<my-lnx> EXEC /bin/sh -c 'LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 /usr/bin/python /root/.ansible/tmp/ansible-tmp-1423302966.66-77716810353582/ping; rm -rf /root/.ansible/tmp/ansible-tmp-1423302966.66-77716810353582/ >/dev/null 2>&1'
my-lnx | FAILED >> {
    "failed": true, 
    "msg": "Error: ansible requires a json module, none found!", 
    "parsed": false
}

Это мой файл инвентаря

bash ~ cat inventory 
[webservers]
my-lnx  ansible_ssh_host=my-lnx ansible_ssh_port=22

Я установил модуль simplejosn также как на клиенте, так и на удаленной машине

bash ~ pip list | grep json
simple-json (1.1)
simplejson (3.6.5)
4b9b3361

Ответ 1

Мне кажется, вам нужно установить модуль python-simplejson.

Попробуйте выполнить эту команду сначала, а затем нужные команды:

 ansible webservers -i inventory -m raw -a "sudo yum install -y python-simplejson"  -k  -u root -vvvv

Я предполагаю, что его старая система Red Hat/CentOS.

Ответ 2

Если вы не хотите или не можете установить модуль python-simplejson на удаленных серверах, вы можете просто запросить исходный вывод:

> ansible webservers -i inventory -m ping -m raw

Или, как и я, добавил его в свой файл ~/.bash_profile

alias ansible="ansible -m raw"

# And then simply running:
> ansible webservers -i inventory -m ping

Ответ 3

in centos 5. * версия отсутствует python-simple json, доступная на репо для загрузки и установки. вы можете просто использовать нижеуказанный метод.

убедитесь, что для доступа к источнику и получателю доступ к паролю меньше, а от источника к пункту назначения - пароль меньше.

использовать ssh-keygen -t rsa для генерации ключа ssh-copy-id user @host_ip

"---  - хосты: (незаменимый хост)  стать: да  remote_user: root  gather_facts: false  задания:    - имя: копирование копий temps      shell: ssh (источник) && & rsync -parv/root/temp/* root @(Destination):/root/temp/"