LoginSignup
1
2

More than 5 years have passed since last update.

virtualenv local_action module not found

Last updated at Posted at 2017-05-24

悩み

タイトル通りに,virtualenvを用いて,ansibleのlocal action利用するときに,
module not foundのようなエラーに遭遇した.

具体的に,ansible2.3のvmware_guestを利用したくて,ansible2.3のvirtualenvを作りました.
それで,問題発見.

vmware_guest.py がpyvmomi.py に依存.
virtualenvに,pyvmomiをいれました.
なのに,pyvmomiがみつからないという理由で,vmware_guest.pyに怒られました.

答え(気が短い方へ)

チューニングして,解決した.

[local]
localhost ansible_python_interpreter=python

チューニング経緯

インベントリファイル無

(ansible2.3)$ ansible-playbook gathervm.yml  --extra-vars "vmname=t1-malts-230"
 [WARNING]: Host file not found: hosts

 [WARNING]: provided hosts list is empty, only localhost is available

PLAY [localhost] ********************************************

TASK [gather VM facts "t1-malts-230"] ************************
ok: [localhost]

TASK [debug] ***********************************************
ok: [localhost] => {
...
}

PLAY RECAP ******************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0

うまくいくけど,[WARNING]がでます.

インベントリファイル有

[WARNING]をクリアするために,hosts追加

(ansible2.3)$ cat hosts
[local]
localhost

(ansible2.3) ~/p/vsphere ansible-playbook gathervm.yml  --extra-vars "vmname=t1-malts-230"

PLAY [localhost] *******************************************

TASK [gather VM facts "t1-malts-230"] *********************************
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "pyvmomi module required"}

PLAY RECAP ***********************************************
localhost                  : ok=0    changed=0    unreachable=0    failed=1

これで,問題発見.

virtualenvにあるのに

(ansible2.3)$ pip list | grep pyvmomi
pyvmomi (6.5.0.2017.5)
(ansible2.3)$
(ansible2.3)$ deactivate

systemにないけど

$ pip list | grep pyvmomi
$

答え


インベントリファイルの書き方によって,利用するpythonインタプリタが違います.

↓ /path/to/system/python (mac の場合,/usr/bin/python)

[local]
localhost

↓ /virtualenv/python

[local]
localhost ansible_python_interpreter=python

↓ /virtualenv/python

(空)

/path/to/system/python と /virtualenv/pythonは,別物だ.
今回のエラーの原因は,それぞれのsys.path違うからだ.

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2