PXE+kickstart自動化部署安裝Linux

實驗環(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服務器(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
關于virtualization的詳細文檔

  1. 打開virt-manager


    image.png
  2. file--->new virtual machine--->PXE(NetWork Boot)----->Forward


    image.png
  3. type 根據自己的實際情況


    image.png
  1. RAM 1024 CPU 1 根據實際情況


    image.png
  2. disk 20GB 根據實際情況


    image.png
  3. network

這里是重點

看下我們的環(huán)境:
Server : 提供自動化部署所需要的程序,鏡像,啟動文件等等,
Host : kvm
我們的虛擬機通過PXE安裝在Host的kvm里, 所以,我們要確保Guest可以從Server的DHCP獲得有效地址.

所以,這一步的網絡我們要選擇 Host 的 eth0 模式 private


image.png

配置完成不著急打開我們的虛擬機,接下來配置我們的Server

關于PXE原理之類的這里暫時不提, 后續(xù)有時間接著更新

PART3Server端配置 :

服務端采用 DHCP + TFTP + NGINX 的方式提供自動化部署Linux的所需要的程序,文件....
** 下面的配置都是在 Server (192.168.64.4)上進行的 **
關閉SELinux & Firewall
注意, SELinux 一定要 disable, setenforce=0也不行
vim /etc/selinux/config
SELINUX=enforcing -----> SELINUX=disabled
systemctl disable firewalld
system stop firewalld

  1. 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 查看日志

  1. TFTP
    yum install tftp-server
    vim /etc/xinetd.d/tftp
    配置如下: disable yes ------> disable no
    image.png

system enable tftpd
system start tftpd

  1. NGINX (提供web服務, httpd也可以, 不推薦python)
    yum install nginx
    yum enable nginx
    yum start nginx
    如果沒有package yum install epel-release--->yum update && yum install nginx

文件配置 : 加上 autoindex on 不然會有 403錯誤

image.png

將準備好的Linux 鏡像文件放到nginx提供web服務的根目錄下
只要能通過web訪問就行了
我的位置是: /usr/share/nginx/html/centos

upload your 鏡像文件
mount -o loop /鏡像目錄 /掛載點
cp -r /掛載點/* /usr/share/nginx/html/centos

image.png

  1. PXE 配置

yum install syslinux
cp -a /usr/share/nginx/html/centos/centos7.2/isolinux/* /var/lib/tftpboot/這里是將鏡像文件里isolinux目錄下的左右文件復制到 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 配置結束---------------------------------------

啟動虛擬機 :

看到畫圈的兩部分基本上就成功了!!!

image.png

通過virt-manager安裝,發(fā)現還是比較繁瑣,,下面通過virt-install安裝,我們只需要一行命令就行了.

virt-install詳細文檔

[root@localhost ~]# virt-install \
> --name centos \
> --memory 1024 \
> --vcpus 1 \
> --disk size=8 \
> --network type=dirtct,source=eth0 \
> --pxe

注意,當使用 --pxe 選項時, 同時一定要指定 --network 選項

因為我沒有使用網橋, 所以在--network 這個選項錯誤了很久, 最終還是通過man手冊查到的

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容