制作linux云主机镜像

制作linux云主机镜像

1、物理机环境准备

使用一台物理机来配置 kvm 环境,需要 cpu 支持 intel VT 等硬件虚拟化功能。

建议安装CentOS 7操作系统,确保网络及软件源配置正确。

判断是否支持虚拟化功能命令:确认有结果输出。则表示该机器支持或已配置 intel VT vmx(intel)或 svm(AMD) 支持虚拟技术。

# 判断是否有已经支持虚拟化
cat /proc/cpuinfo | grep vmx

安装虚拟机化相关的软件包

yum install libvirt qemu-kvm virt-install bridge-utils qemu-img libguestfs -y

启动虚拟化服务

systemctl start libvirtd

2、安装kvm虚拟机

准备ISO镜像

/tmp/CentOS-7-x86_64-Minimal-1810.iso

创建一块raw格式的硬盘

# 根据镜像中软件多少决定镜像大小
# 尽可能使用较小的 disk,小的镜像可以适配更大的 flavor
# 通常 Linux 基础镜像 4G 即可
qemu-img create -f raw /tmp/centos-7.6.raw 4G

启动kvm虚拟机

virt-install --virt-type kvm --name centos-7.6 --ram 1024 \
   --disk /tmp/centos-7.6.raw,format=raw \
   --network network=ovs-external \
   --graphics vnc,listen=0.0.0.0 --noautoconsole \
   --os-type=linux --os-variant=rhel7 \
   --location /tmp/CentOS-7-x86_64-Minimal-1810.iso\
   --extra-args  'console=ttyS0,115200n8  serial' 
# console=ttyS0,115200n8  serial 这个参数,为了使用virsh console 连接虚拟机;无此参数,将不能使用virsh console 去连接

--disk 指定format格式,将虚拟硬盘制作成raw格式的。

# 查看当前虚机
virsh list --all
# 使用 virsh 从 console 登入机器
virsh console centos-7.6   
# 启动虚拟机
virsh start centos-7.6
# 查看vnc端口
virsh vncdisplay centos-7.6
# 使用vnc viewer 软件去连接

3、操作虚拟机

安装软件包

# 安装NetworkManager,用于网卡的自动发现及管理
# 安装acpid,用于虚拟机的电源管理
# 安装epel-release,添加epel源
yum install NetworkManager acpid epel-release
# 开机启动服务
systemctl enable acpid 
systemctl enable NetworkManager 

####################################################
# 安装cloud-init,用于注入密码/密钥和主机名
# 安装qemu-guest-agent,用于在面板更新密码/密钥
# 安装cloud-utils,用于更改虚拟机根分区大小(可选安装,需要启用epel源)
yum install cloud-init qemu-guest-agent cloud-utils

# 开机启动服务(有的linux发行版默认不开机自启这些服务,需要手动设置开机自启)
systemctl enable cloud-init 
systemctl enable cloud-init-local 
systemctl enable cloud-config 
systemctl enable cloud-final 
systemctl enable qemu-guest-agent    # CENTOS6 为qemu-qa

修改配置文件

disable_root: 0
ssh_pwauth:   1
locale_configfile: /etc/sysconfig/i18n
mount_default_fields: [~, ~, 'auto', 'defaults,nofail', '0', '2']
resize_rootfs_tmp: /dev
ssh_deletekeys:   0
ssh_genkeytypes:  ~
syslog_fix_perms: ~
datasource_list: ['ConfigDrive','Ec2','NoCloud']
datasource:
   Ec2:
     timeout: 2
     max_wait: 5
cloud_init_modules:
 - migrator
 - seed_random
 - bootcmd
 - write-files
 - growpart
 - resizefs
 - set_hostname
 - update_hostname
 - update_etc_hosts
 - ca-certs
 - rsyslog
 - users-groups
 - ssh
cloud_config_modules:
 - mounts
 - locale
 - set-passwords
 - timezone
 - puppet
 - chef
 - salt-minion
 - mcollective
 - disable-ec2-metadata
 - runcmd
cloud_final_modules:
 - rightscale_userdata
 - scripts-per-once
 - scripts-per-boot
 - scripts-per-instance
 - scripts-user
 - ssh-authkey-fingerprints
 - keys-to-console
 - phone-home
 - final-message
system_info:
  distro: rhel
  default_user:
    name: cloud-user
  paths:
    cloud_dir: /var/lib/cloud
    templates_dir: /etc/cloud/templates
  ssh_svcname: sshd

禁用默认的zero conf route

echo "NOZEROCONF=yes" >> /etc/sysconfig/network

修改linux 16所在行行尾,添加console字段

console=ttyS0,115200n8 console=tty0

关闭selinux服务

#修改 /etc/selinux/config 中 SELINUX 行
SELINUX=disabled

关闭开机启动服务

systemctl  disable iptables
systemctl  disable postfix 

删除特征性文件

# 清理临时文件和日志
yum clean all
rm -rf /var/log/yum.log
rm -rf /var/lib/yum/*
rm -rf /root/install.log
rm -rf /root/install.log.syslog
rm -rf /root/anaconda-ks.cfg
rm -rf /var/log/anaconda*
history -c

poweroff

4、在物理机上处理镜像

初始化kvm虚拟机

virt-sysprep -d centos-7.6

删除虚拟机

virsh undefine centos-7.6

5、拷贝制作好的raw格式的镜像

/tmp/centos-7.6.raw

转载于:https://www.cnblogs.com/yanling-coder/p/11583438.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值