OpenstackSDKを使用してインスタンス作成を自動化し、userdataというコマンドでbashスクリプトを渡しています。しかし、たとえインスタンスが作成されていても、スクリプトは実行されません。これをGUIで手動で行うと、新しく作成されたインスタンスに対してbashスクリプトが正常に実行されます。Openstack API - インスタンスを作成してもユーザーデータは受け入れられません。<bash script>
#Reading bash script
with open('elk.sh', 'r') as f:
init_script = f.read()
server = conn.compute.create_server(
name=name,
image_id=IMAGE_ID,
flavor_id=FLAVOUR_ID,
networks=[{"uuid": NETWORK_ID}],
user_data=init_script, # pass script to the instance
key_name=KEY_PAIR
)
注:Base64でファイルbutstillが に失敗したとしても、シリアライズJSONではありませんエンコードしようとしました。
コードスニペット:この上
with open(USER_DATA,'r') as file:
f = file.read()
bytes_content = bytes(f,encoding='utf-8')
init_script = base64.b64encode(bytes_content)
でき、誰のアドバイスをしてください?
ありがとう
ファイルとして: F = encodeutils.safe_encode(file.read()。 ( 'utf-8')) init_script = base64.b64encode(f).decode( 'utf-8') –