文档首页 > > 用户指南> 实例> 使用用户数据和元数据> 文件注入

文件注入

分享
更新时间: 2019/10/25 GMT+08:00

使用场景

当您有如下需求时,可以考虑使用文件注入功能将文件注入到弹性云服务器:

  • 需要通过脚本简化弹性云服务器配置
  • 通过脚本初始化系统
  • 已有脚本,在创建弹性云服务器的时候一并上传到服务器
  • 其他可以使用脚本完成的事情

虚拟化类型为KVM的弹性云服务器云主机,不支持文件注入功能,建议使用“用户数据注入”功能,请参见用户数据注入

使用限制

  • Linux:
    • 具有注入文件运行权限的用户:root。
    • 注入文件路径:Linux系统分区下的任意目录,路径只能包含字母、数字、下划线和点。例如/etc/foo.txt。
    • Linux系统盘的文件类型支持:ext3和ext4。
    • 注入脚本的默认权限是:读写。

      修改默认权限的方式:以root用户登录云服务器后,进入注入文件目录后执行如下命令:chmod 755 注入文件名。

    • 注入文件执行方式:手工执行+自动执行
    • 自动执行条件:注入文件的存放目录为/etc/init.d且已修改了注入文件权限。
    • 文件大小限制:小于等于1KB。
  • Windows
    • 具有注入文件运行权限的用户:administrator。
    • 注入文件路径:默认是C盘根目录,不能在注入文件时修改文件注入路径。
    • Windows系统盘的文件类型支持:NTFS。
    • 注入文件执行方式:手工执行。
    • 文件大小限制:小于等于1KB。

使用方法

  1. 根据实际需要写脚本,脚本符合操作系统要求即可。
  2. 创建弹性云服务器时,选择脚本并填写脚本保存路径。
  3. 系统创建弹性云服务器,自动注入脚本。
  4. (Linux必选)修改脚本权限。
  5. 执行脚本。

使用场景1

该样例介绍如何通过注入文件,简化弹性云服务器配置。

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

注入文件示例:

syntax on
set tabstop=4
set number

使用场景2

该样例介绍如何通过注入文件方式,在系统开机时自动启动脚本,完成初始化弹性云服务器的操作。

当您希望每次开机时自动初始化防火墙配置,便可以将防火墙配置文件写成脚本(假设脚本名initial.sh),并将其注入到“/etc/init.d”目录。

脚本示例:

#! /bin/sh
iptables -A INPUT -p tcp --dport 21 -j ACCEPT 
iptables -A INPUT -p tcp --dport 49152:65534 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

注入脚本后的操作:

以下内容以CentOS6.5系统、文件名为initial.sh、runlevel为3为例。

由于默认情况下注入脚本是读写权限,因此在您第一次使用弹性云服务器时,需要以root用户登录弹性云服务器,执行如下命令修改文件权限并创建文件连接。

cd /etc/init.d

chmod 775 initial.sh

ln -s /etc/init.d/initial.sh /etc/rc.d/rc3.d/S98initial

  • 上述命令中的/etc/rc.d/rc3.d是runlevel为3时的脚本存放目录。当runlevel取值为其他时,相应的目录也需要修改,例如/etc/rc.d/rc2.d。
  • S98initial中S表示“系统启动时运行”,98为脚本的启动顺序,也就是该脚本第98个启动,可以根据需要调整。系统会按照启动顺序从小到大的依次执行脚本。

执行上述命令后,云服务器每次开机时,会自动会启动initial.sh,完成防火墙配置文件初始化。

使用场景3

该样例介绍如何通过文件注入,激活弹性云服务器的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
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区