KVM制作CentOS7.5-qcow2格式镜像(OpenStack云主机镜像任意玩)

  • 默认密码:123456,可以在下方c7op.ks文件中修改默认密码为其他。
安装KVM环境:(宿主机)
[root@kvm ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@kvm ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@kvm ~]# yum install -y kvm virt-*  libvirt  bridge-utils qemu-img qemu-kvm-tools
[root@kvm ~]# systemctl start libvirtd
[root@kvm ~]# systemctl enable libvirtd
[root@kvm ~]# echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
[root@kvm ~]# sysctl -p
定义文件变量:(宿主机)
[root@kvm ~]# mkdir /kvm
[root@kvm ~]# ksname=c7op.ks
[root@kvm ~]# kvname=centos7-5
[root@kvm ~]# ISO=CentOS-7-x86_64-DVD-1804.iso
下载ks文件与移动镜像:(宿主机)
[root@kvm ~]# wget http://elven.vip/ks/openstack/c7op.ks
[root@kvm ~]# mv c7op.ks /kvm
[root@kvm ~]# mv CentOS-7-x86_64-DVD-1804.iso /kvm
创建KVM虚拟机:(宿主机)
[root@kvm ~]# qemu-img create -f qcow2 /kvm/$kvname.qcow2 5G
[root@kvm ~]# virt-install \
--name $kvname \
--ram 2048 --vcpus 2 \
--os-type linux --os-variant rhel7 --arch=x86_64 \
--network network=default,model=virtio \
--disk path=/kvm/$kvname.qcow2,format=qcow2 \
--location /kvm/$ISO \
--console pty,target_type=serial \
--initrd-inject=/kvm/$ksname \
--extra-args="console=ttyS0,115200n8 serial ks=file:/$ksname" \
--graphics none
重启虚拟机并连接:(宿主机)
# 安装完成后,按键Ctrl + ] 退出kvm虚拟机
# 密码在c7op.ks文件提前设置的

[root@kvm ~]# virsh destroy $kvname #强制关闭电源
[root@kvm ~]# cp /kvm/$kvname.qcow2{,.bak} #备份
[root@kvm ~]# ls -hl /kvm/$kvname*
[root@kvm ~]# virsh start   $kvname #开启
[root@kvm ~]# virsh console $kvname #登录
时区配置:(虚拟机)
[root@CentOS7 ~]# rm -f /etc/localtime
[root@CentOS7 ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@CentOS7 ~]# ll /etc/localtime
使用阿里源:(虚拟机)
[root@CentOS7 ~]# [[ `uname -r` == *el6* ]] && { Ve=6; } || { Ve=7; }
[root@CentOS7 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-$Ve.repo
[root@CentOS7 ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-$Ve.repo
[root@CentOS7 ~]# sed -i '/aliyuncs.com/d' /etc/yum.repos.d/*.repo   # 删除阿里内网地址#
[root@CentOS7 ~]# yum clean all
安装插件包:(虚拟机)
[root@CentOS7 ~]# yum install -y acpid cloud-init cloud-utils jq parted qemu-guest-agent
[root@CentOS7 ~]# [[ `uname -r` == *el6* ]] && { yum install -y dracut-modules-growroot; }
cloud-int开启root密码登录:(虚拟机)
[root@CentOS7 ~]# sed -i 's/disable_root: 1/disable_root: 0/g' /etc/cloud/cloud.cfg
[root@CentOS7 ~]# sed -i 's/ssh_pwauth:   0/ssh_pwauth:   1/g' /etc/cloud/cloud.cfg
[root@CentOS7 ~]# echo 'NETWORKING=yes
NOZEROCONF=yes'>/etc/sysconfig/network
SSH配置:(虚拟机)
[root@CentOS7 ~]# sed  -i 's/^PasswordAu.*$/PasswordAuthentication yes/' /etc/ssh/sshd_config
[root@CentOS7 ~]# sed  -i 's/^GSSAPIAuthentication yes/GSSAPIAuthentication no/' /etc/ssh/sshd_config
[root@CentOS7 ~]# sed  -i 's/^#UseDNS.*$/UseDNS no/' /etc/ssh/sshd_config
[root@CentOS7 ~]# systemctl restart sshd
开机启动软件:(虚拟机)
[root@CentOS7 ~]# systemctl enable acpid cloud-init qemu-guest-agent
[root@CentOS7 ~]# sed -i 's/timeout=5/timeout=2/g' /boot/grub2/grub.cfg
清理垃圾数据:(虚拟机)
[root@CentOS7 ~]# yum clean all
[root@CentOS7 ~]# rm -rf /tmp/*
[root@CentOS7 ~]# rm -rf /root/*
[root@CentOS7 ~]# rm -f /var/log/wtmp /var/log/btmp
[root@CentOS7 ~]# >/var/log/cloud-init.log
删除网卡信息:(虚拟机)
[root@CentOS7 ~]# sed -i '/HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth*
[root@CentOS7 ~]# sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth*
[root@CentOS7 ~]# >/etc/udev/rules.d/7*.rules
[root@CentOS7 ~]# history -c
[root@CentOS7 ~]# poweroff #关机
清理任务后压缩文件:(宿主机)
[root@kvm ~]# virt-sysprep -d $kvname
[root@kvm ~]# virt-sparsify --compress /kvm/$kvname.qcow2 /kvm/$kvname-one.qcow2
上传镜像到OpenStack:(控制节点)
[root@controller ~]# openstack image create "CentOS-7.5"  --file centos7-5-one.qcow2 --disk-format qcow2 --container-format bare --public

c7op.ks文件内容:

[root@kvm ~]# cat /kvm/c7op.ks
# centos 7 自动安装脚本
# centos7 CD install ,Auto Mini ,Mady my Elven
# openstack镜像制作,centos7自动安装ks脚本
# 使用实例

install
cdrom

text
keyboard us
lang en_US.UTF-8
authconfig --enableshadow --passalgo=sha512
rootpw 123456
skipx
timezone Asia/Shanghai --isUtc
firewall --enabled --port=22:tcp
selinux --disabled
firewall --disabled

#设置网络
bootloader --location=mbr  --driveorder=sda,sdb  #--append="net.ifnames=0 biosdevname=0"
network  --bootproto=dhcp   --onboot=yes --nameserver=119.29.29.29
network  --hostname=CentOS7

#分区
zerombr
clearpart --all --initlabel
#part /boot --asprimary --fstype="ext4" --size=300 --ondrive=sda
#part swap --fstype="swap" --size=2048
part / --asprimary --fstype=xfs --grow --size=1

reboot

#安装的软件包
%packages
@base
@core
@fonts
net-tools
ntp
tree
wget
vim
openssh
%end

%post
%end
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论