文档平台 云服务器 运维指南 Windows 运维 首次启动实例时运行命令

首次启动实例时运行命令

最近更新时间:2018-08-06 15:45:48

查看pdf

云服务器支持在首次启动实例时,通过传递文本的方式将用户数据传递到云服务器中,并执行该文本。
本文以 Windows 云服务器为例,通过传递 PowerShell 格式的脚本,在云服务器首次启动时,实现输出"Hello Tencent Cloud"。

注意事项

  • 通过传递文本执行命令的操作,仅限首次启动云服务器时进行。
  • 传递的文本必须经过 Base64 编码。
  • 在启动时添加这些任务会增加启动服务器所需的时间。建议您多等待几分钟让这些任务完成,然后测试是否已成功执行。
  • 本示例中,请使用 PowerShell 标签指定 Windows PowerShell 脚本,例如:
    <powershell>
    "Hello Tencent Cloud." | Out-File .\tencentcloud.txt
    </powershell>
    

步骤 1:编写 PowerShell 脚本

<powershell>
"Hello Tencent Cloud." | Out-File .\tencentcloud.txt
</powershell>

步骤 2:使用 Base64 编码脚本文件

$Bytes = [System.Text.Encoding]::Unicode.GetBytes($Script)
$EncodedText =[Convert]::ToBase64String($Bytes)

# 编码之后的结果:
PABwAG8AdwBlAHIAcwBoAGUAbABsAD4AIAAiAEgAZQBsAGwAbwAgAFQAZQBuAGMAZQBuAHQAIABDAGwAbwB1AGQALgAiACAAfAAgAE8AdQB0AC0ARgBpAGwAZQAgAC4AXAB0AGUAbgBjAGUAbgB0AGMAbABvAHUAZAAuAHQAeAB0ACAAPAAvAHAAbwB3AGUAcgBzAGgAZQBsAGwAPgA=

步骤 3:传递文本

通过官网或控制台传递

当您通过腾讯云官网或控制台创建云服务器时,在 4.设置安全组和主机 这一步,请选择 高级设置,在自定义数据项中填写您在步骤二中,编码之后的结果。完成创建并启动云服务器即可。
例如,本示例中编码之后的结果如下:

PABwAG8AdwBlAHIAcwBoAGUAbABsAD4AIAAiAEgAZQBsAGwAbwAgAFQAZQBuAGMAZQBuAHQAIABDAGwAbwB1AGQALgAiACAAfAAgAE8AdQB0AC0ARgBpAGwAZQAgAC4AXAB0AGUAbgBjAGUAbgB0AGMAbABvAHUAZAAuAHQAeAB0ACAAPAAvAHAAbwB3AGUAcgBzAGgAZQBsAGwAPgA=

通过 API 传递

当您通过 API 创建云服务器时,可以把步骤二中编码之后的结果赋值给 RunInstances 接口的 UserData 参数,以此来传递文本。以下是一个带 UserData 参数的服务器创建请求参数示例:

https://cvm.tencentcloudapi.com/?Action=RunInstances
  &Version=2017-03-12
  &Placement.Zone=ap-guangzhou-2
  &ImageId=img-pmqg1cw7
  &UserData=PABwAG8AdwBlAHIAcwBoAGUAbABsAD4AIAAiAEgAZQBsAGwAbwAgAFQAZQBuAGMAZQBuAHQAIABDAGwAbwB1AGQALgAiACAAfAAgAE8AdQB0AC0ARgBpAGwAZQAgAC4AXAB0AGUAbgBjAGUAbgB0AGMAbABvAHUAZAAuAHQAeAB0ACAAPAAvAHAAbwB3AGUAcgBzAGgAZQBsAGwAPgA=
  &<公共请求参数>