实例自定义脚本是指,在实例创建时用户可以将可执行脚本以指定的数据格式传入实例,实现对实例启动行为的自定义。您可通过该功能,在实例启动后自动完成诸如下载/升级/安装软件、开启服务、修改系统配置、初始化服务环境等操作。
当前仅支持启动脚本。
实例自定义数据需要完成Base64编码后传入,且编码前的数据不能超过16 KB(编码后不大于21848Byte),如果通过控制台创建实例,可以不对数据进行Base64编码,勾选对应提示框后由系统完成编码,如果通过API创建,您必须自行完成编码。
实例自定义数据当前支持多种脚本类型,Linux系统支持bash和python,编码前须分别以 #!/bin/bash
和 #!/usr/bin/env python
作为首行内容;Windows系统支持Bat和PowerShell,编码前须分别以<cmd>
、</cmd>
和<powershell>
、</powershell>
作为内容首、尾行。以下为不同类型脚本的声明示例:
#!/bin/bash
echo 'launch-1a' >> /root/text1.txt
#!/usr/bin/env python
# -*- coding: utf-8-*-
import random
seq = list(range(1,10))
tempstr = random.sample(seq,3)
f1 = open('/root/python2-text1.txt', 'a+')
f1.writelines([str(tempstr)])
f1.close()
<cmd> echo %random%>cmd-text1.txt </cmd>
<powershell> "hello" | Out-File text1.txt -Encoding utf8 </powershell>
请注意:
1、为避免格式不兼容,在使用bash或python格式脚本时,请在Linux环境下完成编码并进行调试后再行输入。
2、python格式下,如脚本中有中文,请务必在首行后添加'# -- coding: utf-8 --',如无中文则此行可省略。
自定义数据功能的实现依赖于官方镜像中默认安装的系统组件JCS-Agent,由于历史原因,官方镜像系统组件经历了多个组件多个版本的衍变,只有安装了指定版本的JCS-Agent才能保证功能的正常使用。
您可以通过下述方法查看实例内JCS-Agent的版本,确认基于当前实例制作的私有镜像是否支持此功能,若当前实例内安装的agent为早期其他组件或JCS-Agent版本过低,请参照 官方镜像系统组件 进行安装。
1.确认当前实例内安装了JCS-Agent,并处于运行状态。 输入指令:
systemctl status jcs-agent-core.service
2.确认JCS-Agent版本是 非“1.0.675.56819b0”的版本,即表明支持自定义数据功能。输入如下指令如图查看版本号:
ps -ef|grep MonitorPlugin
services.msc
,查看windows运行服务,如下图显示JCSAgentCore正在运行,且启动类型为自动,则说明当前实例已安装并使用JCS-Agent。wmic process where caption="MonitorPlugin.exe" get caption,commandline /value
 > 如您当前实例内未安装JCS-Agent或当前版本不支持自定义数据,请提交工单由技服人员协助安装。