searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Vmware应用镜像迁移上云

2026-07-02 10:07:52
1
0

Vmware应用镜像迁移上云

项目概述

迁移背景

XX客户现有业务系统部署在本地VMware虚拟化环境中,操作系统为CentOS 6.10,系统采用多磁盘跨盘LVM卷组管理(系统分区跨多块物理虚拟磁盘组建PV/VG/LV),无独立单盘系统分区。本次需将完整VMware应用镜像整体迁移至公有云平台,实现业务云端平滑迁移,迁移后要求​系统启动正常、应用服务无异常、配置数据零丢失、业务功能完全兼容​。

源环境核心特征

  • 虚拟化平台​:VMware 镜像(vmdk+vmx 完整镜像)
  • 操作系统​:CentOS 6.10(内核2.6.x,老旧内核,云上兼容性风险高)
  • 磁盘架构​:非单盘系统,2块磁盘跨盘LVM,系统、数据均基于LVM逻辑卷,不支持xssd
  • 启动方式​:传统BIOS启动(CentOS6默认,不支持UEFI)
  • 业务要求​:迁移后应用进程、端口、配置、文件权限、定时任务、服务自启全部正常,无数据偏差

迁移目标

  • 保留原有跨盘LVM卷组结构、所有逻辑卷、分区容量、文件数据完全一致
  • 适配云端虚拟化驱动,解决CentOS 6.10云上兼容性问题
  • 系统开机自启正常、网络正常、LVM挂载自动生效
  • 原有业务应用、服务、脚本、权限配置100%兼容可用
  • 输出完整迁移报告、操作记录、验证结果,满足交付标准

迁移难点与风险说明

  • 跨盘LVM风险​:需确保云端系统盘和数据盘跨盘LVM架构不变,否则易导致VG无法识别、LV挂载失败、系统开机卡死
  • 磁盘类型​:不支持xssd,若需支持,需单独部署驱动
  • 系统版本老旧​:CentOS6.10已停服,云端默认内核、监控等不兼容,极易出现启动异常

迁移方案

采用线下转换镜像 + 云端脚本适配修复 + LVM校验 + 业务全量验证的定制化迁移方案,专门适配CentOS6.10 跨盘LVM特殊架构。

迁移前置准备工作

  • 准备临时linux环境,用于修改镜像密码
  • 目标云平台完成对象存储创建,用于上传本地镜像,以及导入镜像到自定义镜像
  • 规划并创建云上VPC及子网,配置安全组,放行业务所有端口、远程登录端口

详细迁移实施步骤

源镜像转换

客户提供3个镜像vmdk源文件,为方便处理和导入,将镜像转换为qcow2格式

镜像1为应用前端镜像,单盘系统:
qemu-img.exe convert -p -O qcow2 "D:\123pan\Downloads\363_ovf\192.x.x.x_pocd-1.vmdk" D:\123pan\Downloads\ovf\serv-img-ovf.qcow2  

镜像2,3为应用后端镜像,一个为系统盘镜像,一个为数据盘镜像,系统盘和数据盘跨盘组成LVM,分别进行转换:
qemu-img.exe convert -p -O qcow2 "D:\123pan\Downloads\22200_ovf\10.x.x.x_pocd-1.vmdk" D:\123pan\Downloads\ovf\mysql-img-ovf-1.qcow2  
qemu-img.exe convert -p -O qcow2 "D:\123pan\Downloads\22200_ovf\10.x.x.x_pocd-2.vmdk" D:\123pan\Downloads\ovf\mysql-img-ovf-2.qcow2

修改镜像密码

由于客户未提供镜像密码,需进行重置,将镜像上传至临时linux环境中,使用libguestfs-tools工具重置镜像密码

上传镜像至对象存储并导入镜像服务中

  1. 将转换及修改密码的镜像上传至对象存储
  2. 在镜像管理中导入镜像文件
  3. 使用导入的镜像创建应用前端云主机,及应用后端云主机、后端云主机数据盘
  4. 应用后端云主机系统盘和数据盘跨盘LVM管理,两个镜像中分别有完整的LVM信息,系统盘创建云主机后,需关机,挂载数据盘之后再启动,确保LVM管理正常

云上兼容性适配

云上兼容性适配,两个镜像均执行相同操作:

网卡配置

配置网络参数,是为了让Linux操作系统可以正常使用云上弹性网络产品能力(VPC、子网、弹性IP)

步骤1:修改GRUB Legacy (CentOS 6)为传统网卡命名, 如把ifcfg-enp0s1 改成ifcfg-eth0

脚本为 CentOS 6/7/8/9 全版本自适应网卡命名修复工具,自动兼容 GRUB Legacy 与 GRUB2 引导模式,同时适配 BIOS、UEFI 启动环境,通过注入 net.ifnames=0、biosdevname=0 内核参数禁用系统默认的新式网卡命名规则,配合清理旧 Udev 持久化网络规则、安全修改单/多网卡配置文件,实现服务器网卡强制永久恢复为 eth0、eth1 等传统命名方式,脚本具备幂等性,可重复执行无冗余报错,全程保障网络不中断,适配批量自动化部署场景

#!/bin/bash
# Universal Script: Force traditional network interface naming (eth0/eth1...)
# Compatible: CentOS 6 / 7 / 8 / 9 | BIOS & UEFI | Single & Multiple NICs
# Features: Idempotent, Safe modification, No network outage

echo "Detecting GRUB version..."

# Check GRUB Legacy (CentOS 6) and GRUB2 (CentOS 7+)
if [ -f "/boot/grub/grub.conf" ]; then
    # CentOS 6 - GRUB Legacy
    grub_conf="/boot/grub/grub.conf"

    if ! grep -q '^\s*kernel' "$grub_conf"; then
        echo "ERROR: No valid kernel entry found in $grub_conf"
        exit 1
    fi

    # Create backup if it does not exist
    [ ! -f "${grub_conf}.bak" ] && cp "$grub_conf" "${grub_conf}.bak"

    # Append kernel parameters idempotently
    sed -i '/^\s*kernel\s/ {
        /\bnet\.ifnames=0\b/! s/$/ net.ifnames=0/
        /\bbiosdevname=0\b/! s/$/ biosdevname=0/
    }' "$grub_conf"

    echo "Detected CentOS 6 (GRUB Legacy). Configuration applied."

elif [ -f "/etc/default/grub" ]; then
    # CentOS 7/8/9 - GRUB2
    grub_conf="/etc/default/grub"

    # Create backup if it does not exist
    [ ! -f "${grub_conf}.bak" ] && cp "$grub_conf" "${grub_conf}.bak"

    # Add kernel parameters only if missing
    if ! grep -q 'net.ifnames=0' "$grub_conf"; then
        sed -i 's/\(^GRUB_CMDLINE_LINUX=".*\)"/\1 net.ifnames=0 biosdevname=0"/' "$grub_conf"
        echo "Kernel parameters added to GRUB_CMDLINE_LINUX"
    else
        echo "Kernel parameters already exist, skip modification"
    fi

    echo "Updating GRUB configuration (BIOS & UEFI compatible)..."
    # Update all grub.cfg files automatically
    find /boot/ -name "grub.cfg" | while read cfg; do
        grub2-mkconfig -o "$cfg" > /dev/null 2>&1
    done
    echo "Detected CentOS 7+ (GRUB2). GRUB configuration updated."

else
    echo "ERROR: No valid GRUB configuration file found"
    exit 1
fi

echo "Cleaning all old network naming records completely..."
rm -f /etc/udev/rules.d/*net*.rules >/dev/null 2>&1
rm -f /lib/udev/rules.d/*persistent-net*.rules >/dev/null 2>&1
rm -rf /var/lib/NetworkManager/* >/dev/null 2>&1
echo "All old network naming records have been cleaned up."

# Safely remove all network configurations except ifcfg-lo
NET_DIR="/etc/sysconfig/network-scripts"
if [ -d "$NET_DIR" ]; then
    echo "Cleaning all network configs EXCEPT ifcfg-lo..."
    find "$NET_DIR" -maxdepth 1 -type f -name "ifcfg-*" ! -name "ifcfg-lo" -delete
    echo "Only ifcfg-lo remains. All legacy NIC configs cleared safely."
fi

echo "All tasks completed successfully."
echo "Please execute 'reboot' to apply network interface naming changes."

完成后重启云主机

步骤2:配置centos 6.0 主网卡

cat <<'EOT' >/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
NM_CONTROLLED=no
USERCTL=no
EOT

service network restart

步骤3:修改 /etc/sysconfig/network 文件

cat <<'EOT' >/etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
NOZEROCONF=yes
EOT

步骤4:清空旧mac绑定 :

执行:
> /etc/udev/rules.d/70-persistent-net.rules

yum源配置

更换为centos6.10的可用源,CentOS 6 要用 vault/epel-archive 源:

mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/

cat > /etc/yum.repos.d/CentOS-Base.repo <<'EOF'
[base-6.10]
name=CentOS-6.10 - Base
baseurl=http://internal.mirrors.ctyun.cn/centos/6.10/os/$basearch/
        https://mirrors.ctyun.cn/centos/6.10/os/$basearch/
        http://vault.centos.org/centos/6.10/os/$basearch/
gpgcheck=1
gpgkey=http://internal.mirrors.ctyun.cn/centos/RPM-GPG-KEY-CentOS-6
enabled=1
metadata_expire=never

#released updates
[updates-6.10]
name=CentOS-6.10 - Updates
baseurl=http://internal.mirrors.ctyun.cn/centos/6.10/updates/$basearch/
        https://mirrors.ctyun.cn/centos/6.10/updates/$basearch/
        http://vault.centos.org/centos/6.10/updates/$basearch/
gpgcheck=1
gpgkey=http://internal.mirrors.ctyun.cn/centos/RPM-GPG-KEY-CentOS-6
enabled=1
metadata_expire=never

# additional packages that may be useful
[extras-6.10]
name=CentOS-6.10 - Extras
baseurl=http://internal.mirrors.ctyun.cn/centos/6.10/extras/$basearch/
        https://mirrors.ctyun.cn/centos/6.10/extras/$basearch/
        http://vault.centos.org/centos/6.10/extras/$basearch/
gpgcheck=1
gpgkey=http://internal.mirrors.ctyun.cn/centos/RPM-GPG-KEY-CentOS-6
enabled=1
metadata_expire=never

# additional packages that extend functionality of existing packages
[centosplus-6.10]
name=CentOS-6.10 - CentOSPlus
baseurl=http://internal.mirrors.ctyun.cn/centos/6.10/centosplus/$basearch/
        https://mirrors.ctyun.cn/centos/6.10/centosplus/$basearch/
        http://vault.centos.org/centos/6.10/centosplus/$basearch/
gpgcheck=1
gpgkey=http://internal.mirrors.ctyun.cn/centos/RPM-GPG-KEY-CentOS-6
enabled=0
metadata_expire=never

#contrib - packages by Centos Users
[contrib-6.10]
name=CentOS-6.10 - Contrib
baseurl=http://internal.mirrors.ctyun.cn/centos/6.10/contrib/$basearch/
        https://mirrors.ctyun.cn/centos/6.10/contrib/$basearch/
        http://vault.centos.org/centos/6.10/contrib/$basearch/
gpgcheck=1
gpgkey=http://internal.mirrors.ctyun.cn/centos/RPM-GPG-KEY-CentOS-6
enabled=0
metadata_expire=never
EOF

cat > /etc/yum.repos.d/epel.repo <<'EOF'
[epel]
name=EPEL 6
baseurl=http://mirrors.aliyun.com/epel-archive/6/$basearch/
gpgcheck=0
enabled=1
EOF

yum clean all
yum makecache

cloud-init安装

https://www.ctyun.cn/document/10027726/10747155

# 安装(epel 里的 el6 版本)
yum install -y cloud-init cloud-utils-growpart

# 查看版本(应该是 0.7.5)
cloud-init --version

说明:
CentOS 6 只能装到 0.7.5,这个版本对 ** 大部分云厂商的初始化(hostname、ssh、密码、网卡)是够用的。

# 如果必须用较新版本(如 18.x),CentOS 6 需要先升级 Python 2.7,再手动编译 / 安装新版 cloud-init,步骤复杂且不建议生产用

配置Cloud-init,补充自定义配置文件

cat <<'EOT' >/etc/cloud/cloud.cfg.d/zz_ctims.cfg
# Declare datasource priority
datasource_list: [ ConfigDrive, OpenStack ]

# Flat datasource parameters for cloud-init 0.7.5 compatibility
datasource_ConfigDrive:
  dsmode: local

datasource_OpenStack:
  metadata_urls: ["http://169.x.x.x"]
  timeout: 10
  retries: 5
  max_wait: 120

# Global basic and network policy configuration
disable_root: false
ssh_pwauth: true
ssh_deletekeys: false
preserve_hostname: false
manage_etc_hosts: localhost

# Disable cloud-init network auto-configuration to avoid network exceptions
disable_network_config: true

# Default system user policy
system_info:
  default_user:
    name: root
    lock_passwd: false
EOT

CentOS 6 是 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 start
service cloud-init start

# ==================== 2. 验证服务状态 ====================
# 确认输出结果中均包含 "on"
chkconfig --list | grep -E 'cloud-init|cloud-config|cloud-final'

安装QEMU-Guest-Agent

https://www.ctyun.cn/document/10027726/10747147

yum install -y qemu-guest-agent
service qemu-ga status

# (可选)查看版本
qemu-ga --version

通过执行以下shell命令,完成对qemu-ga和qemu-guest-agent.service配置文件的修改。

qemu_ga_config='/etc/sysconfig/qemu-ga'

# RPC
if [ -f "$qemu_ga_config" ]; then
    [ ! -f "${qemu_ga_config}.bak" ] && cp "$qemu_ga_config" "${qemu_ga_config}.bak"
    sed -i '/^[[:space:]]*BLACKLIST_RPC/ s/^/# /' "$qemu_ga_config"
    sed -i '/^[[:space:]]*FILTER_RPC_ARGS/ s/^/# /' "$qemu_ga_config"
fi

# systemd WantedBy def
sed -i 's/^ARGS=.*/ARGS="-d -v -t virtio-serial"/' /etc/sysconfig/qemu-ga

#  systemctl enable
chkconfig --add qemu-ga
chkconfig qemu-ga on

service qemu-ga start
service qemu-ga status

安装监控插件

根据区域信息,查找对应的下载链接,部署监控插件

https://www.ctyun.cn/document/10026730/10325964

# huabei2

curl -o update_agent.sh http://100.x.x.x/cttg/linux/update_agent.sh
chmod +x update_agent.sh 
./update_agent.sh http://100.x.x.x

service telegraf status

时区调整和同步

  1. adjtime调整为UTC
cat /etc/adjtime
如果最后一行为LOCAL,修改为UTC
sed -i 's/^LOCAL$/UTC/' /etc/adjtime
  1. 同步内部时钟源

https://www.ctyun.cn/document/10027726/11092410

适配centos 6.10的版本:

# 强制终止ntpd残留进程、禁用开机自启,彻底解除与chronyd互斥冲突,部署chronyd时间同步服务
service ntpd stop || pkill -9 ntpd && chkconfig ntpd off && yum install -y chrony && cp /etc/chrony.conf /etc/chrony.conf.bak && sed -i -E '/^(pool|server)/d' /etc/chrony.conf && cat >> /etc/chrony.conf << EOF
server 169.x.x.x iburst prefer
EOF

# 执行完之后,重启chronyd、设置开机自启、强制校准时间、固化硬件时钟、验证状态
service chronyd restart && chkconfig chronyd on && chronyc makestep && hwclock --systohc
service chronyd status && chronyc sources && date

回滚方案:
cp /etc/chrony.conf.bak /etc/chrony.conf && service chronyd restart

应用配置修改

根据客户提供的必要配置信息,修改对应模块的IP信息

cd /usr/local/tomcat/apache-tomcat-8.5.100/webapps/xq_pro/WEB-INF/classes
vi ldap.properties

修改ladp.validate=0,保存退出

# 修改数据库IP 为mysql数据库的IP 

cd /usr/local/tomcat/apache-tomcat-8.5.100/webapps/xq_pro/WEB-INF/classes
vi /usr/local/tomcat/apache-tomcat-8.5.100/webapps/xq_pro/WEB-INF/classes/application.properties

启动web应用
cd /usr/local/tomcat/apache-tomcat-8.5.100/bin
./startup.sh

验证客户业务系统各业务功能

登录验证

image.png

业务功能正常

各业务功能增删改查正常
image.png

0条评论
0 / 1000
c****n
5文章数
0粉丝数
c****n
5 文章 | 0 粉丝
原创

Vmware应用镜像迁移上云

2026-07-02 10:07:52
1
0

Vmware应用镜像迁移上云

项目概述

迁移背景

XX客户现有业务系统部署在本地VMware虚拟化环境中,操作系统为CentOS 6.10,系统采用多磁盘跨盘LVM卷组管理(系统分区跨多块物理虚拟磁盘组建PV/VG/LV),无独立单盘系统分区。本次需将完整VMware应用镜像整体迁移至公有云平台,实现业务云端平滑迁移,迁移后要求​系统启动正常、应用服务无异常、配置数据零丢失、业务功能完全兼容​。

源环境核心特征

  • 虚拟化平台​:VMware 镜像(vmdk+vmx 完整镜像)
  • 操作系统​:CentOS 6.10(内核2.6.x,老旧内核,云上兼容性风险高)
  • 磁盘架构​:非单盘系统,2块磁盘跨盘LVM,系统、数据均基于LVM逻辑卷,不支持xssd
  • 启动方式​:传统BIOS启动(CentOS6默认,不支持UEFI)
  • 业务要求​:迁移后应用进程、端口、配置、文件权限、定时任务、服务自启全部正常,无数据偏差

迁移目标

  • 保留原有跨盘LVM卷组结构、所有逻辑卷、分区容量、文件数据完全一致
  • 适配云端虚拟化驱动,解决CentOS 6.10云上兼容性问题
  • 系统开机自启正常、网络正常、LVM挂载自动生效
  • 原有业务应用、服务、脚本、权限配置100%兼容可用
  • 输出完整迁移报告、操作记录、验证结果,满足交付标准

迁移难点与风险说明

  • 跨盘LVM风险​:需确保云端系统盘和数据盘跨盘LVM架构不变,否则易导致VG无法识别、LV挂载失败、系统开机卡死
  • 磁盘类型​:不支持xssd,若需支持,需单独部署驱动
  • 系统版本老旧​:CentOS6.10已停服,云端默认内核、监控等不兼容,极易出现启动异常

迁移方案

采用线下转换镜像 + 云端脚本适配修复 + LVM校验 + 业务全量验证的定制化迁移方案,专门适配CentOS6.10 跨盘LVM特殊架构。

迁移前置准备工作

  • 准备临时linux环境,用于修改镜像密码
  • 目标云平台完成对象存储创建,用于上传本地镜像,以及导入镜像到自定义镜像
  • 规划并创建云上VPC及子网,配置安全组,放行业务所有端口、远程登录端口

详细迁移实施步骤

源镜像转换

客户提供3个镜像vmdk源文件,为方便处理和导入,将镜像转换为qcow2格式

镜像1为应用前端镜像,单盘系统:
qemu-img.exe convert -p -O qcow2 "D:\123pan\Downloads\363_ovf\192.x.x.x_pocd-1.vmdk" D:\123pan\Downloads\ovf\serv-img-ovf.qcow2  

镜像2,3为应用后端镜像,一个为系统盘镜像,一个为数据盘镜像,系统盘和数据盘跨盘组成LVM,分别进行转换:
qemu-img.exe convert -p -O qcow2 "D:\123pan\Downloads\22200_ovf\10.x.x.x_pocd-1.vmdk" D:\123pan\Downloads\ovf\mysql-img-ovf-1.qcow2  
qemu-img.exe convert -p -O qcow2 "D:\123pan\Downloads\22200_ovf\10.x.x.x_pocd-2.vmdk" D:\123pan\Downloads\ovf\mysql-img-ovf-2.qcow2

修改镜像密码

由于客户未提供镜像密码,需进行重置,将镜像上传至临时linux环境中,使用libguestfs-tools工具重置镜像密码

上传镜像至对象存储并导入镜像服务中

  1. 将转换及修改密码的镜像上传至对象存储
  2. 在镜像管理中导入镜像文件
  3. 使用导入的镜像创建应用前端云主机,及应用后端云主机、后端云主机数据盘
  4. 应用后端云主机系统盘和数据盘跨盘LVM管理,两个镜像中分别有完整的LVM信息,系统盘创建云主机后,需关机,挂载数据盘之后再启动,确保LVM管理正常

云上兼容性适配

云上兼容性适配,两个镜像均执行相同操作:

网卡配置

配置网络参数,是为了让Linux操作系统可以正常使用云上弹性网络产品能力(VPC、子网、弹性IP)

步骤1:修改GRUB Legacy (CentOS 6)为传统网卡命名, 如把ifcfg-enp0s1 改成ifcfg-eth0

脚本为 CentOS 6/7/8/9 全版本自适应网卡命名修复工具,自动兼容 GRUB Legacy 与 GRUB2 引导模式,同时适配 BIOS、UEFI 启动环境,通过注入 net.ifnames=0、biosdevname=0 内核参数禁用系统默认的新式网卡命名规则,配合清理旧 Udev 持久化网络规则、安全修改单/多网卡配置文件,实现服务器网卡强制永久恢复为 eth0、eth1 等传统命名方式,脚本具备幂等性,可重复执行无冗余报错,全程保障网络不中断,适配批量自动化部署场景

#!/bin/bash
# Universal Script: Force traditional network interface naming (eth0/eth1...)
# Compatible: CentOS 6 / 7 / 8 / 9 | BIOS & UEFI | Single & Multiple NICs
# Features: Idempotent, Safe modification, No network outage

echo "Detecting GRUB version..."

# Check GRUB Legacy (CentOS 6) and GRUB2 (CentOS 7+)
if [ -f "/boot/grub/grub.conf" ]; then
    # CentOS 6 - GRUB Legacy
    grub_conf="/boot/grub/grub.conf"

    if ! grep -q '^\s*kernel' "$grub_conf"; then
        echo "ERROR: No valid kernel entry found in $grub_conf"
        exit 1
    fi

    # Create backup if it does not exist
    [ ! -f "${grub_conf}.bak" ] && cp "$grub_conf" "${grub_conf}.bak"

    # Append kernel parameters idempotently
    sed -i '/^\s*kernel\s/ {
        /\bnet\.ifnames=0\b/! s/$/ net.ifnames=0/
        /\bbiosdevname=0\b/! s/$/ biosdevname=0/
    }' "$grub_conf"

    echo "Detected CentOS 6 (GRUB Legacy). Configuration applied."

elif [ -f "/etc/default/grub" ]; then
    # CentOS 7/8/9 - GRUB2
    grub_conf="/etc/default/grub"

    # Create backup if it does not exist
    [ ! -f "${grub_conf}.bak" ] && cp "$grub_conf" "${grub_conf}.bak"

    # Add kernel parameters only if missing
    if ! grep -q 'net.ifnames=0' "$grub_conf"; then
        sed -i 's/\(^GRUB_CMDLINE_LINUX=".*\)"/\1 net.ifnames=0 biosdevname=0"/' "$grub_conf"
        echo "Kernel parameters added to GRUB_CMDLINE_LINUX"
    else
        echo "Kernel parameters already exist, skip modification"
    fi

    echo "Updating GRUB configuration (BIOS & UEFI compatible)..."
    # Update all grub.cfg files automatically
    find /boot/ -name "grub.cfg" | while read cfg; do
        grub2-mkconfig -o "$cfg" > /dev/null 2>&1
    done
    echo "Detected CentOS 7+ (GRUB2). GRUB configuration updated."

else
    echo "ERROR: No valid GRUB configuration file found"
    exit 1
fi

echo "Cleaning all old network naming records completely..."
rm -f /etc/udev/rules.d/*net*.rules >/dev/null 2>&1
rm -f /lib/udev/rules.d/*persistent-net*.rules >/dev/null 2>&1
rm -rf /var/lib/NetworkManager/* >/dev/null 2>&1
echo "All old network naming records have been cleaned up."

# Safely remove all network configurations except ifcfg-lo
NET_DIR="/etc/sysconfig/network-scripts"
if [ -d "$NET_DIR" ]; then
    echo "Cleaning all network configs EXCEPT ifcfg-lo..."
    find "$NET_DIR" -maxdepth 1 -type f -name "ifcfg-*" ! -name "ifcfg-lo" -delete
    echo "Only ifcfg-lo remains. All legacy NIC configs cleared safely."
fi

echo "All tasks completed successfully."
echo "Please execute 'reboot' to apply network interface naming changes."

完成后重启云主机

步骤2:配置centos 6.0 主网卡

cat <<'EOT' >/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
NM_CONTROLLED=no
USERCTL=no
EOT

service network restart

步骤3:修改 /etc/sysconfig/network 文件

cat <<'EOT' >/etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
NOZEROCONF=yes
EOT

步骤4:清空旧mac绑定 :

执行:
> /etc/udev/rules.d/70-persistent-net.rules

yum源配置

更换为centos6.10的可用源,CentOS 6 要用 vault/epel-archive 源:

mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/

cat > /etc/yum.repos.d/CentOS-Base.repo <<'EOF'
[base-6.10]
name=CentOS-6.10 - Base
baseurl=http://internal.mirrors.ctyun.cn/centos/6.10/os/$basearch/
        https://mirrors.ctyun.cn/centos/6.10/os/$basearch/
        http://vault.centos.org/centos/6.10/os/$basearch/
gpgcheck=1
gpgkey=http://internal.mirrors.ctyun.cn/centos/RPM-GPG-KEY-CentOS-6
enabled=1
metadata_expire=never

#released updates
[updates-6.10]
name=CentOS-6.10 - Updates
baseurl=http://internal.mirrors.ctyun.cn/centos/6.10/updates/$basearch/
        https://mirrors.ctyun.cn/centos/6.10/updates/$basearch/
        http://vault.centos.org/centos/6.10/updates/$basearch/
gpgcheck=1
gpgkey=http://internal.mirrors.ctyun.cn/centos/RPM-GPG-KEY-CentOS-6
enabled=1
metadata_expire=never

# additional packages that may be useful
[extras-6.10]
name=CentOS-6.10 - Extras
baseurl=http://internal.mirrors.ctyun.cn/centos/6.10/extras/$basearch/
        https://mirrors.ctyun.cn/centos/6.10/extras/$basearch/
        http://vault.centos.org/centos/6.10/extras/$basearch/
gpgcheck=1
gpgkey=http://internal.mirrors.ctyun.cn/centos/RPM-GPG-KEY-CentOS-6
enabled=1
metadata_expire=never

# additional packages that extend functionality of existing packages
[centosplus-6.10]
name=CentOS-6.10 - CentOSPlus
baseurl=http://internal.mirrors.ctyun.cn/centos/6.10/centosplus/$basearch/
        https://mirrors.ctyun.cn/centos/6.10/centosplus/$basearch/
        http://vault.centos.org/centos/6.10/centosplus/$basearch/
gpgcheck=1
gpgkey=http://internal.mirrors.ctyun.cn/centos/RPM-GPG-KEY-CentOS-6
enabled=0
metadata_expire=never

#contrib - packages by Centos Users
[contrib-6.10]
name=CentOS-6.10 - Contrib
baseurl=http://internal.mirrors.ctyun.cn/centos/6.10/contrib/$basearch/
        https://mirrors.ctyun.cn/centos/6.10/contrib/$basearch/
        http://vault.centos.org/centos/6.10/contrib/$basearch/
gpgcheck=1
gpgkey=http://internal.mirrors.ctyun.cn/centos/RPM-GPG-KEY-CentOS-6
enabled=0
metadata_expire=never
EOF

cat > /etc/yum.repos.d/epel.repo <<'EOF'
[epel]
name=EPEL 6
baseurl=http://mirrors.aliyun.com/epel-archive/6/$basearch/
gpgcheck=0
enabled=1
EOF

yum clean all
yum makecache

cloud-init安装

https://www.ctyun.cn/document/10027726/10747155

# 安装(epel 里的 el6 版本)
yum install -y cloud-init cloud-utils-growpart

# 查看版本(应该是 0.7.5)
cloud-init --version

说明:
CentOS 6 只能装到 0.7.5,这个版本对 ** 大部分云厂商的初始化(hostname、ssh、密码、网卡)是够用的。

# 如果必须用较新版本(如 18.x),CentOS 6 需要先升级 Python 2.7,再手动编译 / 安装新版 cloud-init,步骤复杂且不建议生产用

配置Cloud-init,补充自定义配置文件

cat <<'EOT' >/etc/cloud/cloud.cfg.d/zz_ctims.cfg
# Declare datasource priority
datasource_list: [ ConfigDrive, OpenStack ]

# Flat datasource parameters for cloud-init 0.7.5 compatibility
datasource_ConfigDrive:
  dsmode: local

datasource_OpenStack:
  metadata_urls: ["http://169.x.x.x"]
  timeout: 10
  retries: 5
  max_wait: 120

# Global basic and network policy configuration
disable_root: false
ssh_pwauth: true
ssh_deletekeys: false
preserve_hostname: false
manage_etc_hosts: localhost

# Disable cloud-init network auto-configuration to avoid network exceptions
disable_network_config: true

# Default system user policy
system_info:
  default_user:
    name: root
    lock_passwd: false
EOT

CentOS 6 是 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 start
service cloud-init start

# ==================== 2. 验证服务状态 ====================
# 确认输出结果中均包含 "on"
chkconfig --list | grep -E 'cloud-init|cloud-config|cloud-final'

安装QEMU-Guest-Agent

https://www.ctyun.cn/document/10027726/10747147

yum install -y qemu-guest-agent
service qemu-ga status

# (可选)查看版本
qemu-ga --version

通过执行以下shell命令,完成对qemu-ga和qemu-guest-agent.service配置文件的修改。

qemu_ga_config='/etc/sysconfig/qemu-ga'

# RPC
if [ -f "$qemu_ga_config" ]; then
    [ ! -f "${qemu_ga_config}.bak" ] && cp "$qemu_ga_config" "${qemu_ga_config}.bak"
    sed -i '/^[[:space:]]*BLACKLIST_RPC/ s/^/# /' "$qemu_ga_config"
    sed -i '/^[[:space:]]*FILTER_RPC_ARGS/ s/^/# /' "$qemu_ga_config"
fi

# systemd WantedBy def
sed -i 's/^ARGS=.*/ARGS="-d -v -t virtio-serial"/' /etc/sysconfig/qemu-ga

#  systemctl enable
chkconfig --add qemu-ga
chkconfig qemu-ga on

service qemu-ga start
service qemu-ga status

安装监控插件

根据区域信息,查找对应的下载链接,部署监控插件

https://www.ctyun.cn/document/10026730/10325964

# huabei2

curl -o update_agent.sh http://100.x.x.x/cttg/linux/update_agent.sh
chmod +x update_agent.sh 
./update_agent.sh http://100.x.x.x

service telegraf status

时区调整和同步

  1. adjtime调整为UTC
cat /etc/adjtime
如果最后一行为LOCAL,修改为UTC
sed -i 's/^LOCAL$/UTC/' /etc/adjtime
  1. 同步内部时钟源

https://www.ctyun.cn/document/10027726/11092410

适配centos 6.10的版本:

# 强制终止ntpd残留进程、禁用开机自启,彻底解除与chronyd互斥冲突,部署chronyd时间同步服务
service ntpd stop || pkill -9 ntpd && chkconfig ntpd off && yum install -y chrony && cp /etc/chrony.conf /etc/chrony.conf.bak && sed -i -E '/^(pool|server)/d' /etc/chrony.conf && cat >> /etc/chrony.conf << EOF
server 169.x.x.x iburst prefer
EOF

# 执行完之后,重启chronyd、设置开机自启、强制校准时间、固化硬件时钟、验证状态
service chronyd restart && chkconfig chronyd on && chronyc makestep && hwclock --systohc
service chronyd status && chronyc sources && date

回滚方案:
cp /etc/chrony.conf.bak /etc/chrony.conf && service chronyd restart

应用配置修改

根据客户提供的必要配置信息,修改对应模块的IP信息

cd /usr/local/tomcat/apache-tomcat-8.5.100/webapps/xq_pro/WEB-INF/classes
vi ldap.properties

修改ladp.validate=0,保存退出

# 修改数据库IP 为mysql数据库的IP 

cd /usr/local/tomcat/apache-tomcat-8.5.100/webapps/xq_pro/WEB-INF/classes
vi /usr/local/tomcat/apache-tomcat-8.5.100/webapps/xq_pro/WEB-INF/classes/application.properties

启动web应用
cd /usr/local/tomcat/apache-tomcat-8.5.100/bin
./startup.sh

验证客户业务系统各业务功能

登录验证

image.png

业务功能正常

各业务功能增删改查正常
image.png

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0