2015年4月22日水曜日

ansible insall error (ImportError: No module named ansible.runner)

ansibleを触ってみる


chef使っているけれど、やっぱりpush型のほうが便利かもと思うことがあるので、
ansibleを検証してみるテスト。
が、インストールはしたものの以下のエラーが出たので、困ったというお話。
結構ありがちでは?と思うので共有。

こんなエラー

# ansible --help
============================================================
Traceback (most recent call last):
  File "/usr/bin/ansible", line 36, in <module>
    from ansible.runner import Runner
ImportError: No module named ansible.runner
============================================================

インストールしたときの記憶

# yum install --enablerepo=epel ansible
====================================================================================================
 Package                                   Arch       Version                Repository        Size
====================================================================================================
Installing:
 ansible                                   noarch     1.9.0.1-2.el6          epel             1.7 M
Installing for dependencies:
 python-crypto2.6                          x86_64     2.6.1-2.el6            epel             513 k
 python-keyczar                            noarch     0.71c-1.el6            epel             219 k
 python26                                  x86_64     2.6.9-1.80.amzn1       amzn-updates     5.7 M
 python26-PyYAML                           x86_64     3.10-3.10.amzn1        amzn-main        186 k
 python26-babel                            noarch     0.9.4-5.1.8.amzn1      amzn-main        1.8 M
 python26-backports                        x86_64     1.0-3.14.amzn1         amzn-main        5.2 k
 python26-backports-ssl_match_hostname     noarch     3.4.0.2-1.12.amzn1     amzn-main         12 k
 python26-crypto                           x86_64     2.6.1-1.10.amzn1       amzn-main        697 k
 python26-ecdsa                            noarch     0.11-3.3.amzn1         amzn-main         77 k
 python26-httplib2                         noarch     0.7.7-1.5.amzn1        amzn-main         81 k
 python26-jinja2                           noarch     2.7.2-2.15.amzn1       amzn-main        899 k
 python26-libs                             x86_64     2.6.9-1.80.amzn1       amzn-updates     692 k
 python26-markupsafe                       x86_64     0.11-4.6.amzn1         amzn-main         27 k
 python26-paramiko                         noarch     1.15.1-1.5.amzn1       amzn-main        1.3 M
 python26-pyasn1                           noarch     0.1.7-2.7.amzn1        amzn-main        174 k
 python26-setuptools                       noarch     12.2-1.30.amzn1        amzn-updates     582 k
 python26-simplejson                       x86_64     3.6.5-1.12.amzn1       amzn-main        210 k
 python26-six                              noarch     1.8.0-1.23.amzn1       amzn-main         31 k
Transaction Summary
====================================================================================================
Install  1 Package (+18 Dependent packages)
Total download size: 15 M
Installed size: 50 M
Is this ok [y/d/N]: y

ansibleはpython2.6でないと稼働しません。が、
AmazonLinuxではデフォルトでpython2.7がインストールされています。

確認

# python --version
Python 2.7.9
こんな感じ。

python26にパッケージ切替

インストール時に2.6が入った事を思い出したので、切替をしていく。

# alternatives --config python
======================================================================
There are 2 programs which provide 'python'.
  Selection    Command
-----------------------------------------------
*+ 1           /usr/bin/python2.7        ←"+"が付いているのが今使っているバージョン
   2           /usr/bin/python2.6
Enter to keep the current selection[+], or type selection number: 2
======================================================================
2番を使いたいので、2を入力してENTERで抜ける。

# python --version
======================================================================
Python 2.6.9
======================================================================
このように表示されれば切替完了。

# ansible 127.0.0.1 -m ping
======================================================================
 [WARNING]: The version of gmp you have installed has a known issue regarding
timing vulnerabilities when used with pycrypto. If possible, you should update
it (i.e. yum update gmp).
127.0.0.1 | success >> {
    "changed": false,
    "ping": "pong"
}
======================================================================
というように表示されればOK

エラー解消

以下のエラーに関してはgmpパッケージのバージョンが古いですよ。という警告
現在AWSリポジトリの最新バージョンでも出てしまいます。
特に影響はないので、放置でも問題ありません。
======================================================================
 [WARNING]: The version of gmp you have installed has a known issue regardingtiming vulnerabilities when used with pycrypto. If possible, you should updateit (i.e. yum update gmp).======================================================================

----

おわり

0 件のコメント:

コメントを投稿