2015-02-07 3 views
10

błąd podczas wykonywania ansibl moduł pingBłąd: ansibl wymaga modułu json, żaden znaleziono

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 
} 

To jest mój plik inwentaryzacji

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

Mam zainstalowany moduł simplejosn także w kliencie, a także zdalna maszyna

bash ~ pip list | grep json 
simple-json (1.1) 
simplejson (3.6.5) 
+0

Możliwy duplikat [ansibl + 10.11.6] (http://stackoverflow.com/questions/3879 9807/ansible-10-11-6) – zabeltech

Odpowiedz

15

Myślę, że musisz zainstalować moduł python-simplejson.

Spróbuj uruchomić to polecenie, a następnie żądane polecenia:

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

jestem zakładając, że jego starego systemu Red Hat/CentOS.

9

Jeśli nie chcą lub nie mogą zainstalować moduł python-simplejson na zdalnych serwerach, można po prostu poprosić o wyjście surowego zamiast:

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

Albo jak ja, dodaje go do mojego ~ /.bash_profile

alias ansible="ansible -m raw" 

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

w CentOS 5. * wersja bez python-json dostępny na proste repo do donwload i zainstalować. możesz skorzystać z poniższej metody.

Upewnij się, że dostęp do źródła i miejsca docelowego ma być ograniczony, a od źródła do miejsca docelowego - również mniej.

użycie ssh-keygen -t rsa wygenerować klucz ssh-copy-id użytkownik @ ip_hosta

„--- - gospodarze (ansibl host) stać: tak REMOTE_USER: root gather_facts: fałszywe zadania: - nazwa: kopiowanie kopiowanie temps powłoki: ssh (źródło) & & rsync -parv/root/temp/* root @ (Destination):/root/temp /”