• 沒有找到結果。

关于 Windows 弹性云服务器的实例自定义数据脚本

示例一:脚本类型为User-Data Script

创建弹性云服务器时,选择“文本”形式并输入实例自定义数据脚本,脚本如 下:

#!/bin/bash

echo "Hello, the time is now $(date -R)" | tee /root/output.txt

创建成功后,连接并启动弹性云服务器,执行命令cat [file],查看脚本的运行结 果。

[root@XXXXXXXX ~]# cat /root/output.txt

Hello, the time is now Mon, 16 Jul 2016 16:03:18+0800

示例二:脚本类型为Cloud-Config Data

创建弹性云服务器时,选择“文本”形式并输入实例自定义数据脚本,脚本如 下:

#cloud-config bootcmd:

- echo 192.168.1.130 us.archive.ubuntu.com >> /etc/hosts

创建成功后,连接并启动弹性云服务器,执行命令cat /etc/hosts查看脚本的运行 结果。

1-93 查看运行结果

关于 Windows 弹性云服务器的实例自定义数据脚本

Windows弹性云服务器的实例自定义数据脚本(简称“脚本”)采用开源的

cloudbase-init架构实现,该架构以弹性云服务器的元数据为数据来源,对弹性云服务 器进行各项自动化配置,为Windows弹性云服务器提供执行初始化脚本的能力。自定 义脚本类型兼容开源Cloudbase-init,详情请参考Cloudbase-init开源说明:https://

cloudbase-init.readthedocs.io/en/latest/userdata.html。

● 脚本类型:包括“Batch批处理程序”和“PowerShell脚本”。

1-28 Windows 云服务器脚本类型介绍

- Batch批处理程序 PowerShell脚本

格式 以“rem cmd”开头且作为首

行,且前面不能有空格。 以“#ps1”开头且作为首行,且前 面不能有空格。

限制 在采用Base64编码前,脚本内容

(包括首行在内)不能超过 32KB。

在采用Base64编码前,脚本内容

(包括首行在内)不能超过32KB。

● 如何查看注入Windows弹性云服务器的实例自定义数据?

a. 登录弹性云服务器。

b. 在浏览器栏访问如下地址,查看注入的实例自定义数据。

http://169.254.169.254/openstack/latest/user_data

● 脚本使用示例

该示例介绍如何以不同格式输入Windows弹性云服务器的脚本,并查看脚本的运 行结果。

示例一:Batch批处理程序

创建弹性云服务器时,选择“文本”形式并输入实例自定义数据,脚本如下:

rem cmd

echo "Hello, BAT Test" > C:\1111.txt

创建成功后,连接并启动弹性云服务器,查看脚本的运行结果:在C:\盘添加了一 个名称为 “1111” 的文本文档,如图1-94所示。

1-94 新建文本文档_Batch

如需查看注入Windows弹性云服务器的实例自定义数据,可以在浏览器访问:

http://169.254.169.254/openstack/latest/user_data,如图1-95所示。

1-95 查看实例自定义数据_Batch

示例二:PowerShell脚本

创建弹性云服务器时,选择“文本”形式并输入实例自定义数据,脚本如下:

#ps1echo "Hello, Powershell Test" > C:\aaaa.txt

创建成功后,连接并启动弹性云服务器,查看脚本的运行结果:在C:\盘添加了一 个名称为 “aaaa” 的文本文档。

1-96 新建文本文档_PowerShell

如需查看注入Windows弹性云服务器的实例自定义数据,可以在浏览器访问:

http://169.254.169.254/openstack/latest/user_data,如图1-97所示。

1-97 查看实例自定义数据_PowerShell

案例 1

该样例介绍如何通过实例自定义数据注入,为Linux弹性云服务器简化云服务器配置。

当您需要设置vim的“语法高亮显示”、“制表符占用4个空格”和“显示行数”属性 时,就可以写一个脚本.vimrc,并将其注入到“/root/.vimrc”。在您创建完云服务器 时,您的vim配置便完成了。这样做可以大幅提高系统配置的效率,特别是在您一次性 创建多台弹性云服务器时。

实例自定义数据注入示例:

#cloud-config write_files:

- path: /root/.vimrc content: | syntax on set tabstop=4 set number

案例 2

该样例介绍如何通过实例自定义数据注入,设置Linux弹性云服务器密码。

说明

新密码必须符合密码复杂度要求,密码规则如表1-29所示。

1-29 密码设置规则

– Windows操作系统云服务器特殊字符:包 括“$”、“!”、“@”、“%”、

● Windows操作系统的云服务器,不能包含用 户名中超过两个连续字符的部分。

YNbUwp!

dUc9MClnv 说明

#!/bin/bash

echo 'root:$6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig' | chpasswd -e;

其中,$6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig为密文密 码,生成方法如下:

a. 执行以下命令,生成加密盐值

python -c "import crypt, getpass, pwd;print crypt.mksalt()"

回显信息如下:

$6$V6azyeLwcD3CHlpY

b. 执行以下命令,根据盐值生成密文密码

python -c "import crypt, getpass, pwd;print crypt.crypt('Cloud.1234','\

$6\$V6azyeLwcD3CHlpY')"

回显信息如下:

$6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig

弹性云服务器创建成功后,您可以使用该密码登录。

案例 3

该样例介绍如何通过实例自定义数据注入,重置Linux弹性云服务器密码。

假设您需要将root用户密码重置为”******“。

说明

新密码必须符合密码复杂度要求,密码规则如表1-30所示。

1-30 密码设置规则

– Windows操作系统云服务器特殊字符:包 括“$”、“!”、“@”、“%”、

● Windows操作系统的云服务器,不能包含用 户名中超过两个连续字符的部分。

YNbUwp!

dUc9MClnv 说明

样例密码随机生 成,请勿复制使 用样例。

实例自定义数据注入示例(请严格遵守下面示例中的缩进标准):

#cloud-config chpasswd:

list: | root:******

expire: False

弹性云服务器创建成功后,您可以使用重置的密码登录弹性云服务器。为了保证密码 安全,建议您在第一次登录弹性云服务器后,修改root用户密码。

案例 4

该样例介绍如何通过实例自定义数据注入,为Windows弹性云服务器新增用户并设置 密码。

假设您要创建的用户名为abc、密码为“******”的普通用户,并将其添加至 administrators用户组。

说明

新密码必须符合密码复杂度要求,密码规则如表1-30所示。

实例自定义数据注入示例:

rem cmd

net user abc ****** /add

net localgroup administrators abc /add

弹性云服务器创建成功后,您可以使用新创建的用户名和密码登录弹性云服务器。

案例 5

该样例介绍如何通过实例自定义数据注入,为Linux弹性云服务器更新系统软件包,并 且开启httpd相关服务。注入成功后,您的弹性云服务器就可以使用httpd服务了。

实例自定义数据注入示例:

#!/bin/bash yum update -y service httpd start chkconfig httpd on

案例 6

该样例介绍如何通过实例自定义数据注入,激活Linux弹性云服务器的root用户远程登 录权限。注入成功后,您可以使用SSH密钥方式,以root帐户登录弹性云服务器。

实例自定义数据注入示例:

#cloud-config disable_root: false runcmd:

- sed -i 's/^PermitRootLogin.*$/PermitRootLogin without-password/' /etc/ssh/sshd_config - sed -i '/^KexAlgorithms.*$/d' /etc/ssh/sshd_config

- service sshd restart

相关链接

更多关于实例自定义数据注入案例的介绍,请参见Cloud-init/Cloudbase-init官网:

https://cloudinit.readthedocs.io/en/latest/

https://cloudbase-init.readthedocs.io/en/latest/

1.10 配置主机名与 IP 地址的映射(可选)

对于同一VPC内的弹性云服务器,可以通过主机名称进行通信。此时,您需要配置主 机名与IP地址之间的映射关系。较之通过IP地址进行通信,主机名方式进行通信更为方 便。

相關文件