华为云用户手册

  • 安装原生的XEN和KVM驱动 执行以下命令,打开modules文件。 vi /etc/initramfs-tools/modules 按“i”进入编辑模式,修改/etc/initramfs-tools/modules文件,添加xen-pv以及virtio的驱动(具体格式要根据操作系统本身的要求来决定)。 [root@CTU10000xxxxx ~]#vi /etc/initramfs-tools/modules …… # Examples: # # raid1 # sd_mOd xen-blkfront xen-netfront virtio_blk virtio_scsi virtio_net virtio_pci virtio_ring virtio 按“Esc”后,输入:wq,按“Enter”,保存设置并退出“/etc/initramfs-tools/modules”文件。 执行以下命令,重新生成initrd。 update-initramfs -u 执行以下命令,检查是否已经成功装载了原生的XEN和KVM驱动相应模块。 lsinitramfs /boot/initrd.img-`uname -r` |grep xen lsinitramfs /boot/initrd.img-`uname -r` |grep virtio [root@ CTU10000xxxxx home]# lsinitramfs /boot/initrd.img-`uname -r` |grep xen lib/modules/3.5.0-23-generic/kernel/drivers/net/ethernet/qlogic/netxen lib/modules/3.5.0-23-generic/kernel/drivers/net/ethernet/qlogic/netxen/netxen_nic.ko lib/modules/3.5.0-23-generic/kernel/drivers/net/xen-netback lib/modules/3.5.0-23-generic/kernel/drivers/net/xen-netback/xen-netback.ko lib/modules/3.5.0-23-generic/kernel/drivers/block/xen-blkback lib/modules/3.5.0-23-generic/kernel/drivers/block/xen-blkback/xen-blkback.ko [root@ CTU10000xxxxx home]# lsinitramfs /boot/initrd.img-`uname -r` |grep virtio lib/modules/3.5.0-23-generic/kernel/drivers/scsi/virtio_scsi.ko 如果误将built-in形式存在内核中的驱动添加到initrd或initramfs文件中,不会影响虚拟机正常使用,这里全写进去只是为了修改的方便,但是使用lsinitrd命令无法检查到。可使用如下方法确定这些驱动是否以built-in形式存在内核中,例如: [root@ CTU10000xxxxx home]# cat /boot/config-`uname -r` | grep CONFIG_VIRTIO | grep y CONFIG_VIRTIO_BLK=y CONFIG_VIRTIO_NET=y CONFIG_VIRTIO=y CONFIG_VIRTIO_RING=y CONFIG_VIRTIO_PCI=y CONFIG_VIRTIO_MMIO_CM DLI NE_DEVI CES =y [root@ CTU10000xxxxx home]# cat /boot/config-`uname -r` | grep CONFIG_XEN | grep y CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_XEN_NETDEV_FRONTEND=y
  • 操作步骤 下载一键式重置密码插件CloudResetPwdAgent。 虚拟机需要绑定弹性公网IP才能自动更新一键式重置密码插件。 下载并解压软件包CloudResetPwdAgent.zip。 32位操作系统下载地址:http://cn-south-1-cloud-reset-pwd.obs.cn-south-1.myhuaweicloud.com/linux/32/reset_pwd_agent/CloudResetPwdAgent.zip 64位操作系统下载地址:http://cn-south-1-cloud-reset-pwd.obs.cn-south-1.myhuaweicloud.com/linux/64/reset_pwd_agent/CloudResetPwdAgent.zip 执行以下命令,解压软件包CloudResetPwdAgent.zip。 unzip -o -d 插件解压目录 CloudResetPwdAgent.zip 安装一键式重置密码插件对插件的解压目录无特殊要求,请自定义。例如插件解压的目录为“/home/PwdAgent/test”,则命令如下: unzip -o -d /home/PwdAgent/test CloudResetPwdAgent.zip 安装一键式重置密码插件。 执行以下命令,进入文件CloudResetPwdAgent.Linux。 cd CloudResetPwdAgent/CloudResetPwdAgent.Linux 执行以下命令,添加文件setup.sh的运行权限。 chmod +x setup.sh 执行以下命令,安装插件。 sudo sh setup.sh 如果脚本执行成功打印“cloudResetPwdAgent install successfully.”,且未打印“Failed to start service cloudResetPwdAgent”,表示安装成功。 如果密码重置插件安装失败,请检查安装环境是否符合要求,并重试安装操作。
  • 操作场景 如果您的业务数据同时保存在数据盘和系统盘中,要想实现业务数据跨账号迁移,需要用到 镜像服务 的创建整机镜像、共享镜像等功能。本节操作以Windows操作系统为例,为您详细介绍在同一区域内,跨账号迁移业务数据(包括系统盘和数据盘数据)的操作流程。 只有通过云备份,或云服务器(未通过旧版 CS BS服务生成备份)创建的整机镜像,才支持共享。 不允许共享市场镜像、源镜像为市场镜像的私有镜像、加密镜像、已冻结的镜像以及创建中的镜像。
  • 创建空虚拟机 打开VirtualBox,单击“新建”,在弹出的“新建虚拟电脑”对话框中输入虚拟机名称,并选择类型和版本,单击“下一步”。 以Ubuntu为例,类型选择:Linux。 请确保选择的版本与待安装的操作系统版一致。 图1 创建虚拟机 在选择内存的对话框中,选择内存大小并单击“下一步”。 选择内存时请参考虚拟机配置及待安装操作系统的官方要求。默认最小为256MB,本文以设置为512MB为例。 图2 选择内存大小 在虚拟硬盘对话框中,选择“现在创建虚拟硬盘”,并单击“创建”。 图3 创建虚拟硬盘 选择虚拟硬盘文件类型为“VHD”,单击“下一步”。 图4 虚拟硬盘文件类型 选择磁盘分配方式为“动态分配”,单击“下一步”。 图5 磁盘分配 设置磁盘大小及存储位置。 本文以设置磁盘大小为20GB为例。 图6 设置磁盘大小及存储位置 单击“创建”,完成空虚拟机的创建。
  • 配置本地源 请根据操作系统类型分别参考yum的配置流程、apt的配置流程或者zypper的配置流程。 yum的配置流程 将ISO文件上传到云服务器内部,并挂载至“/mnt”路径。 mount XXX.iso /mnt 进入yum配置文件所在路径“/etc/yum.repo.d”,将其他后缀名为“.repo”的文件进行备份,并且新建一个配置文件,例如“local.repo”。在“local.repo”中添加如下内容: [rhel-local] name=local baseurl=file:///mnt enabled=1 gpgcheck=0 配置文件中指定的“/mnt”要和ISO挂载路径一致。 清理yum。 yum clean all 重新生成缓存。 yum makecache apt的配置流程 将ISO文件上传至云服务器内部,并挂载至“/mnt”路径。 mount XXX.iso /mnt 添加apt cdrom源。 apt-cdrom -m -d /mnt/ add 在配置文件中查看添加的源。 cat /etc/apt/sources.list 更新源。 apt-get update zypper的配置流程 将ISO文件上传至云服务器内部。 ISO入源。 sudo zypper addrepo iso:/?iso=/media/SOFTWARE/openSUSE-11.4-DVD-i586.iso DVDISO 其中, “/media/SOFTWARE/openSUSE-11.4-DVD-i586.iso”为ISO文件所在位置。 “DVDISO”是这个源的别名。 查看源是否添加成功。 zypper repos 刷新源。 zypper refresh
  • 示例 配置本地源中的步骤一般为通用步骤,操作系统实际的发行版略有差别,但是基本步骤都是要将源添加进去,并刷新。以下内容以Debian 10.1.0和CentOS 8.0为例,介绍添加本地源的方法。 Debian 10.1.0 执行cat /etc/apt/sources.list查看“sources.list”配置文件中有一条默认配置的cdrom源: 图1 查看源 这条源指向的源路径就是光驱设备“/dev/cdrom”,Debian 10.1.0做了一个软链接,将光驱设备链接到了“/media/cdrom”路径。 图2 查看media目录 因此将ISO挂载到“/media/cdrom”,就可以正常使用ISO源了。 CentOS 8.0 将ISO挂载到“/mnt”路径。 将“/etc/yum.repo.d”路径的源文件,除了“CentOS-Media.repo”以外,全部重命名成后缀为“.bak”的文件,或者移动到别的目录。 修改“CentOS-Media.repo”文件。 图3 修改“CentOS-Media.repo”文件 包含红框中的六处修改点: baseurl:配置为“file:///mnt/BaseOS”和“file:///mnt/AppStream”,“mnt”为ISO挂载目录,注意删除默认配置的多余的无效路径,否则会导致checksum失败。 gpgcheck改为0,即不检查。 enabled改为1,使生效。 清理yum,并重新生成缓存。 yum clean all && yum makecache
  • 清理组件存储 Windows操作系统的组件存储包含Windows系统安装所需的所有文件。当安装的文件更新时,更新也同样保留在组件存储中,这将导致组件存储随着更新的增加而增加。 以下操作以Windows Server 2012 R2 Datacenter 64bit操作系统弹性云服务器为例,介绍清理组件存储的操作步骤。 在Windows PowerShell界面,执行以下命令,指定/spsuperseded开关删除Service Pack安装期间创建的备份文件。 dism /online /cleanup-image /spsuperseded 执行以下命令,确定组件存储大小。 Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore 执行以下命令,清理组件存储。 Dism.exe /online /Cleanup-Image /StartComponentCleanup
  • 采用官方源码编译安装方法 官方源码编译安装方法的Cloud-Init工具Github开源地址:https://github.com/canonical/cloud-init/ 执行以下命令,下载Cloud-Init压缩包,并将其复制至新建的“/tmp/CLOUD-INIT”文件夹。 0.7.6版本安装包下载地址:https://github.com/canonical/cloud-init/archive/refs/tags/0.7.6.zip 0.7.9版本安装包下载地址:https://github.com/canonical/cloud-init/archive/refs/tags/0.7.9.zip Cloud-Init所有版本安装包下载地址:https://github.com/canonical/cloud-init/releases wget https://github.com/canonical/cloud-init/archive/refs/tags/0.7.6.zip mkdir /tmp/CLOUD-INIT cp cloud-init-0.7.6.zip /tmp/CLOUD-INIT cd /tmp/CLOUD-INIT 执行如下命令,解压Cloud-Init压缩包。 unzip cloud-init-0.7.6.zip 执行如下命令进入cloud-init-0.7.6文件夹。 cd cloud-init-0.7.6 若cloud-init为18.3~22.3版本,则需要进行如下适配。否则跳过本步骤,继续执行下一步。 sed -i '/VALID_DMI_ASSET_TAGS =/a\VALID_DMI_ASSET_TAGS += ["HUAWEICLOUD"]' cloudinit/sources/DataSourceOpenStack.py cat cloudinit/sources/DataSourceOpenStack.py | grep VALID_DMI_ASSET_TAGS 确认执行结果如下图,表示语句添加成功。 按照操作系统类型,执行相应的命令安装Cloud-Init安装包。 CentOS6.x/SUSE11.x: python setup.py build python setup.py install --init-system sysvinit CentOS7.x/SUSE12.x: python setup.py build python setup.py install --init-system systemd Cloud-Init安装时需要添加syslog用户到adm组。存在syslog用户时直接添加syslog用户到adm组。不存在syslog用户时(如CentOS和SUSE),执行下列命令创建syslog用户,添加到adm组: useradd syslog groupadd adm usermod -g adm syslog 设置Cloud-Init相关服务为开机自启动。 若操作系统是sysvinit自启动管理服务,则执行以下命令进行设置。 chkconfig --add cloud-init-local; chkconfig --add cloud-init; chkconfig --add cloud-config; chkconfig --add cloud-final chkconfig cloud-init-local on; chkconfig cloud-init on; chkconfig cloud-config on; chkconfig cloud-final on service cloud-init-local status; service cloud-init status; service cloud-config status; service cloud-final status 若操作系统是systemd自启动管理服务,则执行以下命令进行设置。 systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 执行如下命令检查Cloud-Init是否安装成功。 cloud-init -v cloud-init init --local 回显如下类似信息所示表示安装Cloud-Init成功。 cloud-init 0.7.6
  • 检查Cloud-Init工具相关配置是否成功 执行以下命令,无错误发生,说明Cloud-Init配置成功。 cloud-init init --local 正确安装的Cloud-Init会显示Cloud-Init的版本详细信息,并且无任何错误信息。例如,正确安装的情况下,不含有缺少文件的提示信息。 执行如下命令,可将系统用户密码有效期设置为最大。此操作可选。 chage -M 99999 $user_name 其中,user_name为系统用户,例如root账户。 密码有效期建议设置为99999。
  • 采用官方提供的包源安装Cloud-Init工具(优先推荐) 在不同操作系统的云服务器上安装Cloud-Init工具的方法不同,请在root用户下执行相关安装操作。 以下将介绍SUSE、CentOS、Fedora、Debian和Ubuntu操作系统安装Cloud-Init工具的具体方法。其他操作系统类型,请安装并配置对应类型的Cloud-Init工具,例如,使用CoreOS操作系统时需安装并配置coreos-cloudinit。 SUSE操作系统 SUSE操作系统的Cloud-Init网络安装地址: https://ftp5.gwdg.de/pub/opensuse/repositories/Cloud:/Tools/ http://download.opensuse.org/repositories/Cloud:/Tools/ 在上述提供的网络安装地址下选择相应操作系统版本的repo安装包进行安装。 以SUSE Enterprise Linux Server 12为例,Cloud-Init工具的安装步骤如下。 登录到创建Linux私有镜像所使用的云服务器。 执行以下命令,安装SUSE 12的网络安装源。 zypper ar https://ftp5.gwdg.de/pub/opensuse/repositories/Cloud:/Tools/SLE_12_SP3/Cloud:Tools.repo 执行以下命令,更新网络安装源。 zypper refresh 执行以下命令,安装Cloud-Init。 zypper install cloud-init 执行以下命令,设置Cloud-Init为开机自启动服务。 SUSE 11: chkconfig cloud-init-local on; chkconfig cloud-init on; chkconfig cloud-config on; chkconfig cloud-final on service cloud-init-local status; service cloud-init status; service cloud-config status; service cloud-final status SUSE 12以及openSUSE 12/13/42: systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 对于SUSE和openSUSE操作系统,请执行以下步骤禁止动态修改云服务器名称。 执行以下命令,使用vi编辑器打开“dhcp”文件。 vi etc/sysconfig/network/dhcp 将“dhcp”文件中的“DHCLIENT_SET_HOSTNAME”的值修改为“no”。 CentOS操作系统 CentOS操作系统的Cloud-Init网络安装地址如表1所示。请在提供的网络安装地址下选择相应的epel-release安装包进行安装。 表1 Cloud-Init网络安装地址 操作系统类型 版本 网络安装地址 CentOS 6系列32位 https://archives.fedoraproject.org/pub/archive/epel/6/i386/ 6系列64位 https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/ 7系列64位 https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/e/ 执行以下命令安装Cloud-Init: yum install 网络安装地址/epel-release-x-y.noarch.rpm yum install cloud-init “网络安装地址”表示Cloud-Init对应的epel-release安装包的地址,“x-y”表示当前操作系统对应的Cloud-Init epel-release版本号,执行命令时需参考表1以及实际使用的安装包版本进行替换。 以CentOS 6系列64位为例,当前版本号为6.8,则命令修改为: yum install https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm 以CentOS 7系列64位为例,当前版本号为7.14,则命令修改为: yum install https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/e/epel-release-7-14.noarch.rpm 执行以下命令,设置Cloud-Init为开机自启动服务。 systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service Fedora操作系统 安装Cloud-Init前,请确认操作系统已经配置好对应的网络安装源地址,请查看“/etc/yum.repo.d/fedora.repo”文件中是否已配置相关软件包安装源地址,如果没有配置相关地址源,请参考相关Fedora官网信息配置软件包安装源。 执行以下命令,安装Cloud-Init。 yum install cloud-init 执行以下命令,设置Cloud-Init为开机自启动服务。 systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service Debian和Ubuntu操作系统 安装Cloud-Init前,请确认操作系统已经配置好对应的网络安装源地址,请查看“/etc/apt/sources.list”文件中是否已配置相关软件包安装源地址,如果没有配置相关地址源,请参考Debian或者Ubuntu官网信息配置软件包安装源。 执行以下命令,安装Cloud-Init。 apt-get update apt-get install cloud-init 执行以下命令,设置Cloud-Init为开机自启动服务。 systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 以cloud-init-23.2.2版本为例,介绍Centos、Fedora、Ubuntu、Debian和SUSE操作系统安装Cloud-Init工具的具体方法,安装步骤如下。 cloud-init-23.2.2.tar.gz源码包下载地址:https://launchpad.net/cloud-init/trunk/23.2.2/+download/cloud-init-23.2.2.tar.gz Centos 7/Fedora (Fedora-Server-36)操作系统 依赖python3 环境,确认已经安装python3。 查询当前系统环境是否已安装cloud-init, 执行有结果表示已经安装。 cloud-init -v 删除cloud-init缓存目录。 rm -rf /var/lib/cloud/* 安装cloud-init依赖包。 yum install python3-pip -y yum install python3-devel 执行如下命令,下载cloud-init压缩包。 wget https://launchpad.net/cloud-init/trunk/23.2.2/+download/cloud-init-23.2.2.tar.gz 执行如下命令,解压cloud-init压缩包。 tar -zxvf cloud-init-23.2.2.tar.gz 执行如下命令进入cloud-init-23.2.2目录文件夹,并安装所有依赖库。 cd cloud-init-23.2.2 pip3 install -r requirements.txt 执行如下命令安装cloud-init。 python3 setup.py build python3 setup.py install --init-system systemd 在配置文件/etc/cloud/cloud.cfg禁用cloud-init接管网络(可选)。 vi /etc/cloud/cloud.cfg 添加如下内容: network: config: disabled 重启cloud-init, 查看cloud-init 状态。 systemctl restart cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 设置cloud-init相关服务为开机自启动。 systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 执行如下命令检查cloud-init版本以及是否正常运行。 cloud-init -v cloud-init init --local Ubuntu22.0.4/debian11操作系统 依赖python3 环境,确认已经安装python3。 检查并清理系统自带的cloud-init可能存在冗余的配置文件。 rm -rf /var/lib/cloud/* rm -f /var/log/cloud-init* 删除/etc/cloud/cloud.cfg.d/目录下除了log相关的配置文件外的所有文件。 执行如下命令更新apt,检查是否有wget,没有则安装。 sudo apt update sudo apt install wget 执行如下命令,安装依赖包。 apt-get install cloud-guest-utils -y apt-get install python3-pip -y apt-get install python3-devel 执行以下命令,下载cloud-init压缩包。 wget https://launchpad.net/cloud-init/trunk/23.2.2/+download/cloud-init-23.2.2.tar.gz 执行如下命令,解压cloud-init压缩包。 tar -zxvf cloud-init-23.2.2.tar.gz 进入cloud-init目录。 cd cloud-init-23.2.2 执行如下命令安装所有依赖库。 pip3 install -r requirements.txt 执行如下命令安装cloud-init。 python3 setup.py install 在vi /etc/cloud/cloud.cfg配置禁止cloud-init接管网络(可选)。 1.当cloud-init版本等于高于0.7.9版本,且用户需要自定义网络时,在cloud-init安装完成后,请执行如下命令,在编辑器中打开/etc/cloud/cloud.cfg。 vi /etc/cloud/cloud.cfg 2.输入i, 在/etc/cloud/cloud.cfg中将network修改为disabled, 禁用Cloud-Init接管网络配置(若没有该配置项请增加): network: config: disabled 重启cloud-init, 查看cloud-init 状态。 systemctl restart cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 设置cloud-init相关服务为开机自启动。 systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 执行如下命令检查cloud-init版本以及是否正常运行。 cloud-init -v cloud-init init --local SUSE Enterprise Linux Server 15操作系统 依赖python3 环境,确认已经安装python3。 执行如下命令查看历史已配置好的安装源。 zypper lr 执行如下命令删除历史配置的suse的cloud-init的源。 zypper rr 步骤1中执行结果显示的序号 执行如下命令配置suse源。 zypper ar https://ftp5.gwdg.de/pub/opensuse/repositories/Cloud:/Tools/SLE_15_SP4/Cloud:Tools.repo 执行如下命令刷新suse源。 zypper refresh 执行如下命令安装cloud-init。 zypper install cloud-init 安装cloud-init成功后,执行cloud-init -v,若出现类似下图报错提示,需执行如下命令安装依赖包。 pip install requests pyyaml oauthlib jsonschema jsonpatch jinja2 configobj 检查cloud-init是否安装成功,若出现下图报错提示,则需要在/etc/cloud/cloud.cfg配置datasource_list。 datasource_list: [ OpenStack ] datasource: OpenStack: metadata_urls: ['http://169.254.169.254'] max_wait: 120 timeout: 5 apply_network_config: false 修改配置文件后,重启cloud-init, 并查看cloud-init 的状态。 systemctl restart cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 设置cloud-init相关服务为开机自启动。 systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 执行如下命令检查cloud-init版本以及是否正常运行。 cloud-init -v cloud-init init --local
  • 操作场景 为了保证使用私有镜像创建的新云服务器可以通过“用户数据注入”功能注入初始化自定义信息(例如为云服务器设置登录密码),请在创建私有镜像前安装Cloud-Init工具。 使用公共镜像创建的云服务器,默认已经安装Cloud-Init,不需要执行安装及配置操作。 用户导入镜像创建的云服务器,请按照指导安装及配置Cloud-Init。 安装Cloud-Init工具时需要从官网下载并安装,因此,需要提前为云服务器绑定弹性公网IP。 不安装Cloud-Init工具,将无法对云服务器进行自定义配置,只能使用镜像原有密码登录云服务器。
  • 检查是否已经安装Cloud-Init工具 请先执行如下步骤检查是否已安装Cloud-Init工具。在不同的操作系统下,查看是否已经安装Cloud-Init工具的方法不同。 若依赖python3 环境时,以Ubuntu22.0.4为例,执行以下命令查看是否安装Cloud-Init工具。 which cloud-init 回显类似如下,表示已经安装Cloud-Init工具,无需重复安装。 /usr/bin/cloud-init 回显类似如下,表示未安装Cloud-Init工具。 /usr/bin/which: no cloud-init in (/usr/local/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin) 若依赖python2 环境时,以CentOS 6系列为例,执行以下命令查看是否安装Cloud-Init工具。 which cloud-init 回显类似如下,表示已经安装Cloud-Init工具,无需重复安装。 cloud-init-0.7.5-10.el6.centos.2.x86_64 无回显信息表示未安装Cloud-Init工具。 由于Cloud-Init工具存在多种安装方法,如果无回显信息,请再次使用rpm -qa |grep cloud-init命令进行检查。which cloud-init和rpm -qa |grep cloud-init任何一个命令显示已安装,表示操作系统已安装Cloud-Init工具。 如果已安装Cloud-Init工具,还需要执行以下操作: 请确认当前云服务器操作系统中用于SSH登录的证书是否继续使用。如果不再使用该证书,请删除证书。 root用户对应目录下的文件(如“/$path/$to/$root/.ssh/authorized_keys”),执行以下命令: cd /root/.ssh rm authorized_keys 非root用户对应目录下的证书文件(如“/$path/$to/$none-root/.ssh/authorized_keys”),执行以下命令: cd /home/centos/.ssh rm authorized_keys 执行以下命令,清除Cloud-Init工具产生的缓存,确保使用该私有镜像创建的云服务器可以使用证书方式登录。 sudo rm -rf /var/lib/cloud/* 设置完成后请勿重启云服务器,否则,需重新设置。
  • Debian 9.0及以上版本 请执行如下操作,使用NetworkManager自动化虚拟机的网络配置。 执行如下命令安装NetworkManager。 apt-get install network-manager 在“/etc/NetworkManager/NetworkManager.conf”里修改为此设置:managed=true。 修改“/etc/network/interfaces”只保留eth0。 执行如下命令,关闭network,重启messagebus和NetworkManager,并设置NetworkManager开机自启动。 service network-manager restart chkconfig network-manager on service networking stop service messagebus restart service network-manager restart
  • Ubuntu 14及以上版本 请执行如下操作,使用NetworkManager自动化虚拟机的网络配置。 执行如下命令安装NetworkManager。 apt-get install network-manager 在“/etc/NetworkManager/NetworkManager.conf”里修改为此设置:managed=true。 修改“/etc/network/interfaces”只保留eth0。 执行如下命令,关闭network。 service networking stop 执行如下命令,关闭network自启动。 chkconfig network off 执行如下命令,重启dbus和NetworkManager。 service dbus restart service network-manager restart
  • Red Hat、Oracle、CentOS 6.x&7.x、EulerOS 2.x和Fedora 22及以上版本 请执行如下操作,使用NetworkManager自动化虚拟机的网络配置。 执行如下命令安装NetworkManager。 yum install NetworkManager 在“/etc/sysconfig/network-scripts/”目录下删除ifcfg-eth1到ifcfg-eth11,只保留ifcfg-eth0。 执行如下命令,关闭network。 service network stop 执行如下命令,关闭network自启动。 chkconfig network off 执行如下命令,重启messagebus和NetworkManager,并设置NetworkManager开机自启动。 service messagebus restart service NetworkManager restart chkconfig NetworkManager on
  • 检查Cloud-Init工具相关配置是否成功 执行以下命令,无错误发生,说明Cloud-Init配置成功。 cloud-init init --local 正确安装的Cloud-Init会显示Cloud-Init的版本详细信息,并且无任何错误信息。例如,正确安装的情况下,不含有缺少文件的提示信息。 执行如下命令,可将系统用户密码有效期设置为最大。此操作可选。 chage -M 99999 $user_name 其中,user_name为系统用户,例如root账户。 密码有效期建议设置为99999。
  • 方案介绍 跨账号跨区域迁移云服务器的方案为:账号A将区域A的云服务器做成私有镜像,将此私有镜像复制到同账号的区域B,再共享给账号B;账号B接受账号A的共享镜像后,使用该镜像创建新的云服务器。 例如,账号A在“华北-北京四”区域的云服务器上搭建了Web网站,想要将云服务器迁移到账号B的“华东-上海一”,操作流程如下: 图1 操作流程 步骤一:创建私有镜像 步骤二:跨区域复制镜像 步骤三:共享镜像 步骤四:接受共享镜像 步骤五:创建新的云服务器
  • 背景 服务器迁移通常有三种手段:全新部署业务、 主机迁移服务 、镜像迁移,如表1所示。对于华为云上云服务器的跨账号跨区域迁移,建议采用镜像迁移方式。 表1 迁移方式对比 迁移方式 说明 特点 限制条件 全新部署业务 新买华为云ECS,业务重新部署;文件、软件等重新上传;文件目录重新创建、重新赋权等。 不需要迁移(数据盘的数据需要单独迁移)。 需要重新部署业务、重新配置服务等,耗费人力、物力和时间成本。 主机迁移 服务 主机迁移服务支持P2V/V2V(物理机/虚拟机迁移),可以帮您把x86物理服务器,或者私有云、公有云平台上的虚拟机迁移到华为云。 界面化操作,简单易用,只需在源端服务器安装和配置Agent、在服务端创建迁移任务,其余事情都由主机迁移服务处理。 在迁移过程中无需中断业务,支持断点续传。 待迁移服务器必须能访问公网。 镜像迁移 结合使用私有镜像的导入、跨区域复制、共享等功能,实现服务器从线下IDC、其他云厂商迁移至华为云,以及在华为云各区域各账号之间迁移。 支持vhd、vmdk、qcow2、raw、vhdx、qcow、vdi、qed、zvhd和zvhd2格式的镜像文件。 兼容SUSE、Oracle Linux、Red Hat、Ubuntu、openSUSE、CentOS、Debian、Fedora、EulerOS等多种操作系统类型。 可制作成系统盘镜像、数据盘镜像和整机镜像,可在云平台重复利用,可用于批量部署。 占用一定的本地存储空间,对镜像文件大小有限制(不能超过1TB)。
  • 步骤五:创建新的云服务器 账号B使用共享镜像创建新的云服务器,并验证Web网站是否可用。 在共享镜像“copy_cn-north-4_migrate_test”所在行,单击操作列的“申请服务器”。 进入弹性云服务器购买向导页面。 按需选择计费模式、可用区、规格、网络等参数,镜像保持默认值,按界面提示完成云服务器创建。 图10 选择镜像 返回云服务器列表,等待几分钟,云服务器创建成功。 图11 查看云服务器 尝试访问云服务器的Web网站,验证是否可用。 浏览器中输入http://云服务器弹性公网IP/index.html,假设为http://124.70.xxx.xxx/index.html。经验证可以正常访问,表示云服务器迁移成功,任务结束。 图12 验证Web网站
  • 创建空虚拟机操作步骤 打开VirtualBox,单击“新建”,在弹出的“新建虚拟电脑”对话框中输入虚拟机名称,并选择类型和版本,单击“下一步”。 以Windows 2008 64bit为例,类型选择:Microsoft Windows。 请确保选择的版本与待安装的操作系统版一致。 图1 创建虚拟机 在选择内存的对话框中,选择内存大小并单击“下一步”。 选择内存时请参考虚拟机配置及待安装操作系统的官方要求。本文以设置为2048MB为例。 图2 选择内存 在虚拟硬盘对话框中,选择“现在创建虚拟硬盘”,并单击“创建”。 图3 虚拟硬盘 选择虚拟硬盘文件类型为“VHD”,单击“下一步”。 图4 虚拟硬盘文件类型 选择磁盘分配方式为“动态分配”,单击“下一步”。 图5 磁盘分配 设置磁盘大小及存储位置。 本文以设置磁盘大小为25GB为例。 图6 文件位置和大小 单击“创建”,完成空虚拟机的创建。
  • 配置Cloudbase-Init工具 在Cloudbase-Init安装路径下的配置文件“C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf”中执行以下操作: 在配置文件最后一行,增加配置项“netbios_host_name_compatibility=false”,使Windows系统的hostname长度支持到63个字符。 NetBIOS长度受Windows系统本身的限制还只支持小于等于15个字符。 增加配置项“metadata_services=cloudbaseinit.metadata.services.httpservice.HttpService”,配置agent访问OpenStack数据源。 添加plugins配置项,设置要加载的模块,以“,”为分隔符,加粗的部分为模块关键字。 如下参数配置为官方默认加载模块,您可以根据业务需要选择配置全部或部分模块: plugins=cloudbaseinit.plugins.common.localscripts.LocalScriptsPlugin,cloudbaseinit.plugins.common.mtu.MTUPlugin,cloudbaseinit.plugins.windows.createuser.CreateUserPlugin,cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin,cloudbaseinit.plugins.common.sshpublickeys.SetUserSSHPublicKeysPlugin,cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin,cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin,cloudbaseinit.plugins.common.userdata.UserDataPlugin,cloudbaseinit.plugins.windows.licensing.WindowsLicensingPlugin 各模块功能如下所述: LocalScriptsPlugin:设置脚本执行 MTUPlugin:设置MTU网络接口 CreateUserPlugin:创建用户 SetUserPasswordPlugin:设置密码 SetUserSSHPublicKeysPlugin:设置密钥 SetHostNamePlugin:设置主机名 ExtendVolumesPlugin:磁盘扩容 UserDataPlugin:用户数据注入 WindowsLicensingPlugin:激活window instance 若您创建实例后需要在系统内修改主机名,且业务对主机名变化敏感,不建议配置SetHostNamePlugin模块。 可选加载模块,请参考如下配置(可选): plugins=cloudbaseinit.plugins.windows.winrmlistener.ConfigWinRMListenerPlugin,cloudbaseinit.plugins.windows.winrmcertificateauth.ConfigWinRMCertificateAuthPlugin 各模块功能如下所述: ConfigWinRMListenerPlugin:设置远程登录监听 ConfigWinRMCertificateAuthPlugin:设置远程登录无密码认证 加载模块对应的插件WinRM使用了弱密码算法,可能存在安全隐患,为保证系统安全,不建议您添加此插件。 (可选)增加如下配置项,配置获取metadata的重试次数和间隔。 retry_count=40 retry_count_interval=5 (可选)增加如下配置项,防止Windows添加默认路由导致metadata网络不通。 [openstack] add_metadata_private_ip_route=False (可选)当Cloudbase-Init为0.9.12及以上版本时,用户可以自定义配置密码长度。 操作方法:修改配置项“user_password_length”的值,完成密码长度的自定义配置。 (可选)选择密码注入方式首次登录时,系统默认强制用户修改登录密码,若用户根据个人意愿,不需要修改首次登录使用的密码时,可关闭此功能。 操作方法:增加配置项“first_logon_behaviour=no”。 (可选)增加Cloudbase-Init配置项,防止虚拟机无法使用BIOS时间同步。 操作方法:在“cloudbase-init.conf”中添加相应的配置项“real_time_clock_utc=true”。 BIOS时间同步功能是通过增加注册表项“RealTimeIsUniversal=1”实现。如果不添加配置项“real_time_clock_utc=true”,Cloudbase-Init会将注册表自动修改为默认值0,将导致windows虚拟机重启后无法使用BIOS时间同步。 为了防止镜像中DHCP租期过长导致创建的云服务器无法正确的获取地址,用户需要释放当前的DHCP地址。 在Windows命令行中,执行以下命令释放当前的DHCP地址。 ipconfig /release 此操作会中断网络,对 云服务器的使用 会产生影响。当云服务器再次开机后,网络会自动恢复。 使用Windows操作系统云服务器制作镜像时,需修改云服务器SAN策略为OnlineAll类型。否则可能导致使用镜像创建云服务器时磁盘处于脱机状态。 Windows操作系统SAN策略分为三种类型:OnlineAll、OfflineShared、OfflineInternal 表1 Windows操作系统SAN策略类型 类型 说明 OnlineAll 表示所有新发现磁盘都置于在线模式。 OfflineShared 表示所有共享总线上(比如FC、ISCSI)的新发现磁盘都置于离线模式,非共享总线上的磁盘都置于在线模式。 OfflineInternal 表示所有新发现磁盘都置于离线模式。 运行cmd.exe,执行以下命令,使用DiskPart工具来查询云服务器当前的SAN策略。 diskpart 执行以下命令查看云服务器当前的SAN策略。 san 如果SAN策略为OnlineAll,请执行exit命令退出DiskPart。 否,请执行步骤3.c。 执行以下命令修改云服务器SAN策略为OnlineAll。 san policy=onlineall
  • 华为云Astro轻应用服务编排中涉及数据操作的脚本图元,在其他图元操作失败的情况下,是否可以回滚? 如果脚本中涉及数据增/删/改等操作,默认是脚本图元后的图元失败的情况下,脚本中的操作进行回滚。如果脚本中,单独写了独立事务transaction,则不进行回滚。 图1 脚本图元 独立事务的具体写法如下,如果脚本中存在加粗内容,则表示开启了独立事务,即使引用它的服务编排失败,事务操作也不会回滚。 import * as db from 'db'; @userObject(['student__cst']) class Demo{ test():void{ let student = db.object('student__cst'); //进行一些数据库操作 let op =function(): viod{ //进行另外一些数据库操作 }; //op的里面数据库操作是独立事务,与op外面的事务操作相互不影响。 db.transaction(op) } } 使用db.transaction可以将一系列的操作封闭在一个事务中进行,要么全成功,要么全失败。成功与失败不影响外部的操作,外部操作的成功失败也不影响db.transaction的结果。 父主题: 应用后端开发
  • 华为云Astro轻应用自定义对象预置的owner字段,用于记录什么用户? 华为云Astro轻应用为所有自定义对象预置了owner字段,如图1所示。 图1 预置的owner字段 owner字段记录的数据,主要包括如下几种: 用户通过前台页面录入的对象数据,owner字段记录的是录入数据用户的用户ID。 图2 通过页面添加数据 通过定时任务执行服务编排或脚本触发的对象数据录入,owner字段记录的是任务创建者的用户ID。 通过事件触发的对象数据录入,owner字段记录的是系统用户ID“00000000000000000001”。 在数据调试(开发环境)中,执行SQL语句“select 命名空间_对象名.owner from 命名空间_对象名;”,可获取owner的值。 图3 查询owner取值 父主题: 应用后端开发
  • 使用华为云Astro轻应用开发应用支持哪些快捷键? 当前华为云Astro轻应用的服务编排、脚本、触发器、决策表、数据接入、状态机和高级页面等功能区域,都支持键盘快捷键操作。 表1 快捷键说明 快捷键 快捷键功能说明 Alt+F2 获取锁。 用户A获取锁后,编辑器页面处于被锁定状态,用户A可进行各种配置,避免其他用户同时编辑该页面引起冲突。 Alt+F3 释放锁。 用户A配置完成后,需要释放锁,其他用户才能重新获取锁,并进行编辑操作。 Alt+Shift+P 发布当前页面(会自动保存)。 Alt+Shift+V 预览当前页面。 Alt+L 展示组件列表。 Alt+Shift+E 禁用或启用服务编排、工作流、脚本和数据接入等。 Ctrl+S 保存。 Alt+Shift+S 另存为新版本、新实例或新服务编排。 Ctrl+R 运行服务编排、工作流、脚本和数据接入等。 Ctrl+Q 停止当前正在执行的数据接入操作。 Ctrl+Z 撤销对服务编排、脚本、组件等的修改。 目前该快捷键在高级页面中支持,在大屏页面暂不支持。 Ctrl+Y 恢复对服务编排、脚本、组件等的修改。 Alt+Shift+L 打开跟踪器页面。 Alt+Shift+R BPM编辑器页面快捷键,打开BPM运行态配置页面。 Alt+Shift+P 触发器和脚本编辑器页面快捷键,打开属性配置页面。 高级页面开发界面快捷键,发布页面。 Alt+Shift+W 高级页面开发界面快捷键,将开发界面切换成电脑端样式。 Alt+Shift+M 高级页面开发界面快捷键,将开发界面切换成移动端样式。 Alt+Shift+C 数据接入中复制数据推送地址到剪贴板。 Ctrl+Shift+K 脚本编辑器中,删除某一行。 父主题: 产品咨询类
  • 名词解释 基本概念、云服务简介、专有名词解释 弹性公网 EIP:提供独立的公网IP资源,包括公网IP地址与公网出口带宽服务。可以与弹性云服务器、裸金属服务器、虚拟VIP、弹性负载均衡、NAT网关等资源灵活地绑定及解绑。 虚拟私有云 VPC:是用户在云上申请的隔离的、私密的虚拟网络环境。用户可以自由配置VPC内的IP地址段、子网、安全组等子服务,也可以申请弹性带宽和弹性IP搭建业务系统。 安全组:安全组是一个逻辑上的分组,为同一个VPC内具有相同安全保护需求并相互信任的弹性云服务器提供访问策略。安全组创建后,用户可以在安全组中定义各种访问规则,当弹性云服务器加入该安全组后,即受到这些访问规则的保护。 弹性云服务器 ECS :是一种云上可随时自助获取、可弹性伸缩的计算服务,可帮助您打造安全、可靠、灵活、高效的应用环境。 云数据库 GeminiDB Influx:是一款采用计算存储分离架构,兼容InfluxDB生态的云原生时序数据库。提供高性能读写、高压缩率、冷热分层存储以及弹性扩容、监控告警等服务能力。适用于运维、物联网、工业生产等监控应用场景。
  • 快速部署 本章节主要帮助用户快速部署该解决方案。 表1 参数填写说明 参数名称 类型 是否必填 参数解释 默认值 vpc_name String 必填 虚拟私有云名称,该模板新建VPC,不允许重名。取值范围:1-55个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)。 database-solution-for-om-platform-demo secgroup_name Number 必填 安全组名称,该模板新建安全组,如果修改,请参考安全组规则修改(可选)。取值范围:1-64个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)。 database-solution-for-om-platform-demo ecs_name String 必填 弹性云服务器名称,不允许重名。取值范围:1-60个字符,支持字母、数字、中文、下划线(_)、中划线(-)、英文句号(.)。 database-solution-for-om-platform-demo ecs_flavor String 必填 弹性云服务器规格,具体请参考官网弹性云服务器规格清单选择。 c7.2xlarge.2 ecs_password String 必填 弹性云服务器初始密码,创建完成后,请参考重置ECS实例密码进行密码修改。取值范围:长度为8-26位,密码至少必须包含大写字母、小写字母、数字和特殊字符(!@$%^-_=+[{}]:,./?)中的三种,密码不能包含用户名或用户名的逆序。管理员账户为root。 空 system_disk_size String 必填 指定系统盘大小,以GB为单位,取值范围为40~1024,不支持缩盘。 100 data_disk_size String 必填 指定数据盘大小,以GB为单位,取值范围为10~32768。 200 charging_mode String 必填 计费模式,默认自动扣费,取值为prePaid(包年包月)或postPaid(按需计费)。 postPaid charging_unit String 必填 包年包月。有效值为“year”或“month”。当charging_mode(计费模式)为prePaid时,此选项为必填项。 month charging_period String 必填 包年包月时长,当charging_unit取值为“year”,取值范围为1~3;取值为“month”,取值范围为1~9。当charging_mode(计费模式)为prePaid时,此选项为必填项。 1 bandwidth_size String 必填 弹性公网带宽大小,该模板计费方式为按带宽计费。取值范围:1-2,000Mbit/s。 5 gaussdb_influx_name String 必填 云数据库 GeminiDB Influx实例名称,取值范围:实例名称长度在4-64个字节之间,必须以字母开头,区分大小写,可以包含字母、数字、中划线、下划线,不能包含其他特殊字符。 database-solution-for-om-platform-demo gaussdb_influx_password String String 云数据库 GeminiDB Influx实例初始化密码,创建完成后,请参考修改GeminiDB Influx数据库管理员密码修改密码。取值范围:长度为8~32个字符,必须是大写字母、小写字母、数字、特殊字符的组合,其中可输入~!@#%^*-_=+?特殊字符。管理员账户名默认为rwuser。 空 登录华为云解决方案实践,选择“运维平台数据库解决方案”解决方案,单击“一键部署”,跳转至解决方案创建堆栈界面。 图1 解决方案实施库 在选择模板界面中,单击“下一步”。 图2 选择模板 在配置参数界面中,参考表1完成自定义参数填写,单击“下一步”。 图3 配置参数 在资源栈设置页面中,权限委托选择“rf_admin_trust”(可选),单击“下一步”。 图4 高级配置 在配置确认页面中,单击“创建执行计划”。 图5 配置确认 在弹出的创建执行计划框中,自定义填写执行计划名称,单击“确定”。 图6 创建执行计划 图7 执行计划创建成功 单击“部署”,弹出执行计划提示信息,单击“执行”确认执行。 图8 执行计划确认 (可选)如果计费模式选择“包年包月”,在余额不充足的情况下(所需总费用请参考表2)请及时登录费用中心,手动完成待支付订单的费用支付。 等待解决方案自动部署。部署成功后,单击“事件”,回显结果如下: 图9 资源创建成功 父主题: 实施步骤
  • 镜像迁移类 实践 描述 跨账号跨区域迁移云服务器 以迁移一台部署了Web网站的云服务器为例,提供了跨账号跨区域迁移云服务器的详细操作指导。 跨账号迁移业务数据(只迁移数据盘) 用户的业务数据一般保存在数据盘中,要想实现业务数据跨账号迁移,需要用到镜像服务的创建数据盘镜像、共享镜像等功能。本节为您详细介绍跨账号迁移业务数据的操作流程。 跨账号迁移业务数据(迁移系统盘+数据盘) 如果您的业务数据同时保存在数据盘、和系统盘中,要想实现业务数据跨账号迁移,需要用到镜像服务的创建整机镜像、共享镜像等功能。本节操作为您详细介绍跨账号迁移业务数据(包括系统盘和数据盘数据)的操作流程。
  • 创建私有镜像类 实践 描述 基于VirtualBox使用ISO创建Windows镜像 主要介绍基于VirtualBox制作Windows镜像。包括安装VirtualBox,并基于VirtualBox使用ISO创建虚拟机,完成虚拟机配置后生成vhd格式镜像。 基于VirtualBox使用ISO创建Linux镜像 主要介绍基于VirtualBox制作Linux镜像。包括安装VirtualBox,并基于VirtualBox使用ISO创建虚拟机,完成虚拟机配置后生成vhd格式镜像。 使用Packer创建私有镜像 以在CentOS 8.2云服务器中创建Ubuntu 22.04 Server 64bit私有镜像并上传到云平台为例,介绍使用Packer创建镜像的操作步骤。 镜像格式转换 指导您使用qemu-img工具或自研qemu-img-hw工具转换镜像格式。qemu-img工具支持vhd、vmdk、qcow2、raw、vhdx、qcow、vdi或qed格式的镜像之间相互转换,qemu-img-hw工具弥补了qemu-img工具不支持zvhd和zvhd2格式的缺陷。
  • Step1 准备镜像文件 您需要提前准备好符合如下条件的镜像文件。 操作系统:基于SUSE、Oracle Linux、RedHat、Ubuntu等发行版;支持32位和64位 镜像格式:VMDK、VHD、QCOW2、RAW、VHDX、QED、VDI、QCOW、ZVHD2和ZVHD 镜像大小:不超过128GB;如果镜像大小介于128GB和1TB之间,需要将镜像文件转换为RAW或ZVHD2格式,然后使用快速导入功能进行导入 网络能力:清理网络规则文件;设置网卡属性为DHCP 工具:强烈建议安装Cloud-Init工具 驱动:安装原生的XEN和KVM驱动 文件系统:修改grub文件磁盘标识方式为UUID;修改fstab文件磁盘标识方式为UUID 单击这里,了解更多Linux系统镜像文件的限制以及检查、配置方式。
  • 新老规格对应关系 2种RabbitMQ实例规格对比,新老规格的对应关系如所示。 表3 RabbitMQ实例新老规格对应关系 老规格 对应的新规格 规格类型 TPS参考值 规格类型 TPS参考值 4核 | 8GB * 3 3000 rabbitmq.4u8g.cluster * 3 6000 8核 | 16GB * 3 6000 rabbitmq.8u16g.cluster * 3 12000 16核 | 32GB * 3 24000 rabbitmq.16u32g.cluster * 3 48000 新老规格区别如下: 新规格性能更好,同等价格下性价比更优。 老规格使用的非独享资源,在高负载情况下容易出现资源抢占情况。新规格使用的独占资源,性能更优、稳定性更好。 新规格支持灵活的水平/垂直动态扩容,能更好的应对复杂的业务变化情况。 新规格支持更大规格的,最大可以支持rabbitmq.32u64g.cluster。 新规格除了原有的磁盘类型,还支持通用型SSD、极速型SSD等多种磁盘类型,客户选择更加灵活。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全