新規のサーバにAnsibleを流してみたところ、以下のようなエラーが出てきた。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
$ ansible-playbook -i hosts sites.yml -l web --tags make-directory --ask-become-pass --check SUDO password: PLAY [web] ***************************************************************** TASK: [file path=/public/{{ item.name }} state=directory owner=root group=wheel mode=0755] *** failed: [web01] > (item={'name': 'adachin'}) > {"failed": true, "item": {"name": "adachin"}, "parsed": false} BECOME-SUCCESS-esjurpsqnvgxooxepgehkjwapwhlxosq Error: ansible requires a json module, none found!debug1: mux_client_request_session: master session id: 2 Shared connection to 10.xxxxxx closed. failed: [web02] > (item={'name': 'adachin'}) > {"failed": true, "item": {"name": "adachin"}, "parsed": false} BECOME-SUCCESS-bahiuqgzplvbzonuizythymqdtvysljp Error: ansible requires a json module, none found!debug1: mux_client_request_session: master session id: 2 Shared connection to 10.xxxxxxxxx closed. FATAL: all hosts have already failed -- aborting PLAY RECAP ******************************************************************** web01 : ok=0 changed=0 unreachable=0 failed=1 web02 : ok=0 changed=0 unreachable=0 failed=1 |
play-bookの中身はただ特定のディレクトリを作るだけである。他のplaybookは問題なく、なんでディレクトリ作成くらいできないのって感じでしたが、まずはエラーをググってみた。
■エラー内容
ansible requires a json module, none found!debug1: mux_client_request_session: master session id: 2
jsonモジュールがない。ちなみにリモート先はCentOS5系なのだが、Ansibleはpythonで出来ているので当然pythonがインストールしていないとダメなのである。python-simplejsonパッケージを入れれば解決となる。
■python-simplejsonインストール(リモート先)
1 |
$ sudo yum install python-simplejson |
解決。
■まとめ
ちなみに上記のansible実行時に–ask-become-passと書いてあるが、毎回sudoパスを入力して実行している。
セキュア!!!python-simplejsonでデフォルトで入っていないもんだっけ?….
参考:http://docs.ansible.com/ansible/intro_installation.html
0件のコメント