實驗環(huán)境:
Host : centos7.2(kvm) with gnome (192.168.64.3)
Guest : centos7.2 minimal (待安裝....)
Server : centos7.9(提供 ks, 鏡像, pxe啟動程序等等) (192.168.64.4)
安裝方式:
在Host主機里使用virt-manager & virt-install 兩種方式安裝centos7.2minimal
PART1 kickstart文件制作
參見教程
ks文件制作完成后 上傳到web服務(wù)器(192.168.64.4)可以訪問的目錄中
PART2 使用virt-manager新建空白虛擬機
Host主機cpu要支持虛擬化, 并且安裝桌面環(huán)境和virtualization環(huán)境
Gnome : yum group install "GNOME Desktop"
vortualization : yum install virt-install libvirt-python virt-manager virt-install libvirt-client
關(guān)于virtualization的詳細文檔
-
打開virt-manager
-
file--->new virtual machine--->PXE(NetWork Boot)----->Forward
-
type 根據(jù)自己的實際情況
-
RAM 1024 CPU 1 根據(jù)實際情況
-
disk 20GB 根據(jù)實際情況
network
這里是重點
看下我們的環(huán)境:
Server : 提供自動化部署所需要的程序,鏡像,啟動文件等等,
Host : kvm
我們的虛擬機通過PXE安裝在Host的kvm里, 所以,我們要確保Guest可以從Server的DHCP獲得有效地址.
所以,這一步的網(wǎng)絡(luò)我們要選擇 Host 的 eth0 模式 private
配置完成不著急打開我們的虛擬機,接下來配置我們的Server
關(guān)于PXE原理之類的這里暫時不提, 后續(xù)有時間接著更新
PART3Server端配置 :
服務(wù)端采用 DHCP + TFTP + NGINX 的方式提供自動化部署Linux的所需要的程序,文件....
** 下面的配置都是在 Server (192.168.64.4)上進行的 **
關(guān)閉SELinux & Firewall
注意, SELinux 一定要 disable, setenforce=0
也不行
vim /etc/selinux/config
SELINUX=enforcing
-----> SELINUX=disabled
systemctl disable firewalld
system stop firewalld
- DHCP
yum install dhcpd
vim /etc/dhcp/dhcpd.conf
文件配置如下:
subnet 192.168.64.0 netmask 255.255.255.0 {
range 192.168.64.10 192.168.64.20;
option subnet-mask 255.255.255.0;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.64.4;
filename "/pxelinux.0";
}
systemctl enable dhcpd
systemctl start dhcpd
如果有報錯
tail /var/log/message
查看日志
- TFTP
yum install tftp-server
vim /etc/xinetd.d/tftp
配置如下:disable yes
------>disable no
system enable tftpd
system start tftpd
- NGINX (提供web服務(wù), httpd也可以, 不推薦python)
yum install nginx
yum enable nginx
yum start nginx
如果沒有packageyum install epel-release
--->yum update && yum install nginx
文件配置 : 加上 autoindex on
不然會有 403錯誤
將準備好的Linux 鏡像文件放到nginx提供web服務(wù)的根目錄下
只要能通過web訪問就行了
我的位置是: /usr/share/nginx/html/centos
upload your 鏡像文件
mount -o loop /鏡像目錄 /掛載點
cp -r /掛載點/* /usr/share/nginx/html/centos
- PXE 配置
yum install syslinux
cp -a /usr/share/nginx/html/centos/centos7.2/isolinux/* /var/lib/tftpboot/
這里是將鏡像文件里isolinux目錄下的左右文件復(fù)制到 tftp的根目錄(/var/lib/tftpboot)下
mkdir -p /var/lib/tftpboot/pxelinux.cfg
創(chuàng)建 pxelinux.cfg目錄
啟動文件配置: pxelinux.cfg
目錄下面創(chuàng)建default
文件
vim /var/lib/tftpboot/pxelinux.cfg/default
文件配置如下:
default ks
prompt 0
label ks
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.64.4/centos/ks.cfg-minimal
-------------------------------------server 配置結(jié)束---------------------------------------
啟動虛擬機 :
看到畫圈的兩部分基本上就成功了!!!
通過virt-manager安裝,發(fā)現(xiàn)還是比較繁瑣,,下面通過virt-install安裝,我們只需要一行命令就行了.
virt-install詳細文檔
[root@localhost ~]# virt-install \
> --name centos \
> --memory 1024 \
> --vcpus 1 \
> --disk size=8 \
> --network type=dirtct,source=eth0 \
> --pxe