Check! Amazon Linux 2015.09 で yum update してから Ansible を使う時は python2.6 に切り替える


こんにちは、cloudpack@dz_ こと大平かづみです。

Prologue - はじめに

ちょっと Ansible に慣れようと Amazon Linux でトライしてみたところ、以下でハマりました。備忘録にメモを残します。

トラブルシューティング

ansible 実行で ansible.runner がみつからないエラー

# Ansible のテストで自身に ping を打ってみるも… (hosts 設定済み)
ansible localhost -m ping
Traceback (most recent call last):
  File "/usr/bin/ansible", line 36, in <module>
    from ansible.runner import Runner
ImportError: No module named ansible.runner

python のバージョンが 2.7 であることが原因なので、 2.6 に変更することで Ansible が動くようになります。(Amazon Linux 2015.09 で yum update をした後などは python2.7 に更新されるそうです。)

# python を 2.6 に切り替える
sudo alternatives --config python

2 プログラムがあり 'python' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/bin/python2.7
   2           /usr/bin/python2.6

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2

playbook の yum モジュールが使えないエラー

ansible-playbookyum: モジュールを使おうとすると以下のようにエラーになってしまいました。

TASK: [Install Git] *********************************************************** 
failed: [localhost] => {"failed": true, "parsed": false}
Traceback (most recent call last):
  File "/home/user/.ansible/tmp/ansible-tmp-XXX/yum", line 27, in <module>
    import yum
ImportError: No module named yum

どうやら yum-python26 がないとのことで、インストールしましょう。

# yum-python26 をインストールする
sudo yum install yum-python26

Epilogue - おわりに

以上です!