私はPythonClouldStackAPIを使用してclouldプロバイダーに接続しています。
cloudstack = CloudStack.Client()
$ HOMEで、APIクレデンシャルを使用して次のファイルを作成する必要があります。
/root/.cloudstack
コマンドラインからrootからpythonスクリプトを実行すると、動作します。しかし、runitを使用してスクリプトを実行すると、以下のエラーが発生します。
Traceback (most recent call last):
File "/home/ubuntu/workspace/rtbopsConfig/rtb_remote_services/remote_chef_dp_redis_monitor.py", line 27, in <module>
import chefUtilities as chefu
File "/home/ubuntu/workspace/rtbopsConfig/classes/chefUtilities.py", line 29, in <module>
import dpClouldStack as dpu
File "/home/ubuntu/workspace/rtbopsConfig/classes/dpClouldStack.py", line 1, in <module>
import CloudStack
File "/usr/local/lib/python2.7/dist-packages/CloudStack-0.1-py2.7.egg/CloudStack/__init__.py", line 1, in <module>
from Client import Client
File "/usr/local/lib/python2.7/dist-packages/CloudStack-0.1-py2.7.egg/CloudStack/Client.py", line 1, in <module>
from BaseClient import BaseClient
File "/usr/local/lib/python2.7/dist-packages/CloudStack-0.1-py2.7.egg/CloudStack/BaseClient.py", line 12, in <module>
config_file = env + '/.cloudstack'
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
これが私のrunit実行ファイルの外観です。
#!/bin/sh
exec 2>&1
exec /usr/bin/python /home/ubuntu/workspace/test.py >> /tmp/remote_chef_elb_monitor.out 2>&1
それで...runitはrootの下で実行されていますか?もしそうなら、それは/root/.cloudstackをファイルしませんか?