自定义虚拟机安装(KVM)
[真机操作]
一、安装虚拟化平台
安装必备软件:
qemu-kvm //为 kvm 提供底层仿真支持
libvirt-daemon //守护进程,管理虚拟机
libvirt-client //用户端软件,提供客户端管理命令
libvirt-daemon-driver-qemu //libvirtd 连接 qemu 的驱动
可选功能:
virt-install //系统安装工具
virt-manager //图形管理工具
virt-v2v //虚拟机迁移工具
virt-p2v //物理机迁移工具
]#yum install -y qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver-qemu
]#systemctl start libvirtd
二、创建一个虚拟网络vbr
]#cd /etc/libvirt/qemu/networks/
]#vim vbr.xml
vbr
]#virsh
virsh# net-define vbr.xml //定义虚拟网卡vbr
virsh# net-start vbr //启动网卡vbr
virsh# net-autostart vbr //设置开机自起
virsh# net-list --all //查看全部虚拟网卡
三、配置转发DNS
]#yum -y install bind-chroot
修改配置文件/etc/named.conf
listen-on port 53 { 192.168.1.10; };
//listen-on-v6 port 53 { ::1; };
allow-query { any; };
forwarders { 202.106.196.115; };
dnssec-enable no;
dnssec-validation no;
四、配置时间服务
]#yum -y install chrony
Server:配置/etc/chrony.conf
server ntp1.aliyun.com iburst
bindacqaddress 0.0.0.0
allow 0/0
Client:配置/etc/chrony.conf
server server.ip.xx.xx iburst
检查状态
]#chrony sources -v
五、配置ftp服务
1、安装
]#yum -y install vsftp
2、修改配置文件/etc/vsftpd/vsftpd.conf
listen=YES //开启ipv4监听
listen_ipv6=NO //关闭ipv6监听
3、重启服务
systemctl start vsftpd
systemctl enable vsftpd
六、快速搭建网络yum源
1、在ftp跟目录创建目录CentOS7
]#mkdir /var/ftp/CentOS7
2、把CentOS7光盘挂载到步骤1上创建的目录上
mount –t iso9660 –o loop,ro /ISO/CentOS7-1708.iso /var/ftp/CentOS7
3、配置/etc/yum.repos.d/xxx.repo
[Centos_repo]
name= CentOS7
baseurl=ftp://192.168.1.254/CentOS7
enabled=1
gpgcheck=0
4、验证yum源仓库
]#yum repolist
七、virt-manager安装虚拟机
1、创建一个新的磁盘镜像文件
格式:qemu-img create -f 格式 磁盘路径 大小
]#/var/lib/libvirt/images
]#qemu-img create -f qcow2 node.qcow2 16G
2、在真机终端输入virt-manager,弹出下图,选择新建虚拟机;
3、选择网路安装源
4、网络选择自定义的vbr
5、软件选择minimal,关闭KDUMP
6、手工分区
7、使用标准分区格式,只分一个根分区
8、选取一个根分区,开启安装系统
[虚拟机操作]
八、虚拟机模板制作
初始化新安装的系统
1、配置yum源
[local_repo]
name=CentOS7
baseurl="ftp://192.168.1.254/centos7"
enabled=1
gpgcheck=0
2、禁用 selinux /etc/selinux/config
SELINUX=disabled
3、卸载防火墙与NetworkManager
]#yum remove -y firewalld-* python-firewall
]#yum remove NetworkManager-*
注:卸载NetworkManager后可能网络服务无法启动,先将防火墙服务卸载,修改网卡配置文件后重新启动网络服务。
4、安装软件
]#yum install -y lftp
5、yum源导入公钥验证配置
rpm --import ftp://192.168.1.254/CentOS7/RPM-GPG-KEY-CentOS-7
6、将yum源中的gpgchek=0修改为gpgchek=1
7、常用系统命令安装
]#yum install -y net-tools vim-enhanced bridge-utils psmisc
8、删除网络配置里的个性化信息
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
ONBOOT="yes”
IPV6INIT="no"
TYPE="Ethernet"
BOOTPROTO=”dhcp"
9、禁用路由
/etc/sysconfig/network
NOZEROCONF="yes"
10、添加 Console 配置及初除磁盘分区里的个性化信息
1) 修改/etc/default/grub文件
GRUB_CMDLINE_LINUX="biosdevname=0 net.ifnames=0 console=ttyS0,115200n8"
GRUB_DISABLE_LINUX_UUID="true"
GRUB_ENABLE_LINUX_LABEL="true”
2) 重新生成grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg
3) /etc/fstab 文件中到 UUID 手工修改成系统设备;blkid 查看 uuid 对应的磁盘设备,修改 fstab 文件
11、安装分区扩展软件
]#yum install -y cloud-utils-growpart
1) 设置第一次开机自动扩容根目录
chmod 755 /etc/rc.local
2) 在 rc.local 里加入如下配置
/usr/bin/growpart /dev/vda 1 |
---|
/usr/sbin/xfs_growfs / |
---|
/usr/bin/sed '/^###/,$d' -i /etc/rc.d/rc.local |
---|
注:方框中步骤可以在此模板做完成后,在新创建的虚拟机中手动敲以上命令,也可封装进模板,需要注意的是确保系统是英文环境,如果是中文环境可以利用LANG=en_US.UTF-8更改过来。此实验采取手动实现扩容根目录。
[真机操作]
12、关闭虚拟机后执行信息清理工作
]#virt-sysprep -d node
注:真机环境可能没有virt-sysprep命令提供,可以利用yum provieds virt-sysprep查询此命令由哪个软件包提供,并安装上。
13、取消node模板机的定义
]#virsh undefine node
九、快速创建虚拟机
1、创建前端盘
]#cd /var/lib/libvirt/images/
]#qemu-img create -f qcow2 -b node.qcow2 node1.img 30G
2、创建 xml 配置文件(事先已将demo.xml模板文件放到此目录)
]#sed 's,demo,node1,' demo.xml >/etc/libvirt/qemu/node1.xml
3、定义虚拟机
]#virsh define /etc/libvirt/qemu/node1.xml
]#virsh start node1
]#virsh console node1
十、再用模板创建虚拟机
要求:
虚拟机1
8G 内存、2块网卡
第一块网卡连接虚拟交换机 vbr
第二块网卡连接虚拟交换机 private1
设置静态 IP,默认网关 192.168.1.254
2块硬盘
其中 / 的 vda1 要求 50G
vdb 20G
1、创建前端盘
]#cd /var/lib/libvirt/images/
]#qemu-img create -f qcow2 -b node.qcow2 node2.img 50G
]#qemu-img create -f qcow2 disk_node2.img 20G
2、创建 xml 配置文件
]#sed 's,demo,node2,' demo.xml >/etc/libvirt/qemu/node2.xml
3、定义虚拟机
]#virsh define /etc/libvirt/qemu/node2.xml
]#virsh edit /etc/libvirt/qemu/node2.xml
更改内存:
8192000
8192000
添加网卡:
添加磁盘:
4、启动虚拟机
]#virsh start node2
]#virsh console node2
5、更改虚拟机网卡
]#cd /etc/sysconfig/network-scripts
]#cp ifcfg-eth0 ifcfg-eth1
]#vim ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
IPV6INIT=no
BOOTPROTO=static
TYPE=Ethernet
IPADDR=192.168.1.100
PREFIX=24
GATEWAY=192.168.1.254
]#vim ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
IPV6INIT=no
BOOTPROTO=static
TYPE=Ethernet
IPADDR=192.168.4.100
PREFIX=24
GATEWAY=192.168.4.254
]#systemctl restart network