腾讯云CVM服务器强制导入镜像_新手站长网_云淘科技

操作场景

如果用户的 Linux 镜像无法 安装 cloudinit ,可以使用强制导入镜像功能完成导入。但由于强制导入的镜像没有安装 cloudinit,腾讯云无法初始化配置云服务器。因此,用户需要根据腾讯云提供的配置文件,自行设置脚本来配置云服务器。本文档将指导用户在强制导入镜像的前提下进行配置。腾讯云提供了包含配置信息的 cdrom 设备供用户自行配置。用户需要挂载 cdrom,读取 mount_point/qcloud_action/os.conf 的信息进行配置。如果用户有使用其他配置数据、UserData 的需要,可以直接读取 mount_point/ 下的文件。

os.conf 配置文件

os.conf 的基本内容如下:

hostname=VM_10_20_xxxxpassword=GRSgae1fw9frsG.rfrFeth0_ip_addr=10.104.62.201eth0_mac_addr=52:54:00:E1:96:EBeth0_netmask=255.255.192.0eth0_gateway=10.104.0.1dns_nameserver="10.138.224.65 10.182.20.26 10.182.24.12"

说明以上信息仅参数名有参考意义,参数值仅做示例。os.conf 中各个参数的意义如下:

参数名称 参数意义
hostname 主机名
password 加密过的密码
eth0_ip_addr eth0 网卡的局域网 IP
eth0_mac_addr eth0 网卡的 MAC 地址
eth0_netmask eth0 网卡的子网掩码
eth0_gateway eth0 网卡的网关
dns_nameserver DNS 解析服务器

限制条件

镜像仍需要满足 导入镜像 中关于 Linux 镜像导入的镜像的限制(cloudinit 除外)。导入镜像的系统分区未满。导入的镜像不能存在可以被远程利用的漏洞。建议用户用强制导入镜像创建实例成功后立即修改密码。

注意事项

配置脚本解析需注意以下事项:配置脚本需要在开机时自动执行,因此需要根据操作系统类型实现该要求。配置脚本需要挂载 /dev/cdrom设备,并读取该设备挂载点下的 qcloud_action/os.conf 文件,获取配置信息。可以使用 mount 命令挂载 /dev/cdrom设备,例如:mount /dev/cdrom /mnt/cdrom。腾讯云将加密后的密码放置在 cdrom 中,用户可以使用 chpasswd -e 命令设置密码。
为了避免特殊字符导致的问题,建议先将密码放置到文件中,然后使用 chpasswd -e < passwd_file 的方式设置密码。关于密码处理方式:建议将加密后的密码放置到一个文件中,例如 passwd_file,然后使用 chpasswd -e < passwd_file 的方式设置密码。这样做的好处是可以避免特殊字符导致的问题,同时也可以方便地修改密码。当然,也可以直接在脚本中使用 chpasswd -e 命令设置密码,但需要注意特殊字符的处理。使用强制导入镜像制作的实例再制作镜像时,需要保证脚本依然会被执行,以保证实例正确配置。也可以在该实例中安装 cloudinit。

操作步骤

注意腾讯云提供一份基于 CentOS 的示例脚本,用户可以根据示例脚本创建针对自己镜像的配置脚本。创建过程中,需要注意以下几点:该脚本需要在导入镜像前正确放置到系统中。该脚本不适合所有操作系统,用户需要根据自己的操作系统进行相对修改以满足语义。1. 根据以下脚本示例,创建 os_config 脚本。
用户可根据实际情况修改 os_config 脚本。

#!/bin/bash### BEGIN INIT INFO# Provides:          os-config# Required-Start:    $local_fs $network $named $remote_fs# Required-Stop:# Should-Stop:# Default-Start:     2 3 4 5# Default-Stop:      0 1 6# Short-Description: config of os-init job# Description: run the config phase without cloud-init### END INIT INFO###################user settings#####################cdrom_path=`blkid -L config-2`load_os_config() { mount_path=$(mktemp -d /mnt/tmp.XXXX) mount /dev/cdrom $mount_path if [[ -f $mount_path/qcloud_action/os.conf ]]; then     . $mount_path/qcloud_action/os.conf     if [[ -n $password ]]; then         passwd_file=$(mktemp /mnt/pass.XXXX)         passwd_line=$(grep password $mount_path/qcloud_action/os.conf)         echo root:${passwd_line#*=} > $passwd_file     fi     return 0 else      return 1 fi}cleanup() { umount /dev/cdrom if [[ -f $passwd_file ]]; then     echo $passwd_file     rm -f $passwd_file fi if [[ -d $mount_path ]]; then     echo $mount_path     rm -rf $mount_path fi}config_password() { if [[ -f $passwd_file ]]; then     chpasswd -e > /etc/sysconfig/network fi}config_dns() { if [[ -n $dns_nameserver ]]; then     dns_conf=/etc/resolv.conf     sed -i '/^nameserver.*/d' $dns_conf     for i in $dns_nameserver; do         echo "nameserver $i" >> $dns_conf     done fi}config_network() { /etc/init.d/network stop cat < /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0IPADDR=$eth0_ip_addrNETMASK=$eth0_netmaskHWADDR=$eth0_mac_addrONBOOT=yesGATEWAY=$eth0_gatewayBOOTPROTO=staticEOF if [[ -n $hostname ]]; then     sed -i "/^${eth0_ip_addr}.*/d" /etc/hosts     echo "${eth0_ip_addr} $hostname" >> /etc/hosts fi /etc/init.d/network start}config_gateway() { sed -i "s/^GATEWAY=.*/GATEWAY=$eth0_gateway" /etc/sysconfig/network}###################init#####################start() { if load_os_config ; then     config_password     config_hostname     config_dns     config_network     cleanup     exit 0 else      echo "mount ${cdrom_path} failed"     exit 1 fi}RETVAL=0case "$1" in start)     start     RETVAL=$? ;; *)     echo "Usage: $0 {start}"     RETVAL=3 ;;esacexit $RETVAL

2. 将 os_config 脚本放置到 /etc/init.d/ 目录下,并执行以下命令。

chmod +x /etc/init.d/os_configchkconfig --add os_config

3. 执行以下命令,检查 os_config 是否已经被添加到启动服务中。

chkconfig --list

说明用户需要自行保证脚本执行正确,如果镜像导入后遇到无法通过 SSH 连接实例,没有网络连接等问题,请尝试通过控制台连接到实例,重新执行脚本,排查问题。如仍然无法处理,请联系客服。

对腾讯云CVM服务器有疑惑?想了解产品收费? 联系解决方案专家

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠

阿里云解决方案也看看?: 点击对比阿里云的解决方案

本文来自投稿,不代表新手站长_郑州云淘科技有限公司立场,如若转载,请注明出处:https://www.cnzhanzhang.com/16410.html

(0)
匿名
上一篇 2023年11月7日
下一篇 2023年11月8日

相关推荐

新手站长从“心”出发,感谢16年您始终不离不弃。