PXE+kickstart自動安裝ubuntu14.04


本文參考了諸多文章,先感謝這些文章的作者。

使用pxe安裝系統需要安裝dhcp,tftp,http等服務(當然也可以使用其他文件共享方式比如nfs,ftp)。

實驗環境:

1. vmware 12

2.網段 10.0.0.0/8, PXE服務器IP:10.0.0.100

 

一、安裝dhcp服務

可以選擇安裝isc-dhcp-Server 或者 dnsmasq(這個在openstack中使用較多,而且它也包含tftp服務,配置也非常方便,我因為已經安裝dhcp和tftp就懶得換了)。

我選擇安裝了isc-dhcp-Server:   apt-get install isc-dhcp-Server -y

vim /etc/default/isc-dhcp-server

INTERFACES="eth0"    # 或者你要指定的網絡接口名字。

 

vim /etc/dhcp/dhcpd.conf

在文件末尾添加:

subnet 10.0.0.0 netmask 255.0.0.0 {
  range 10.0.0.101 10.0.0.200;
  option subnet-mask 255.0.0.0;
  option routers 10.0.0.100;
  option broadcast-address 10.255.255.255;
  filename "pxelinux.0";
  next-server 10.0.0.100;
}

子網,掩碼可以根據自己的需要設置

filename "pxelinux.0";
next-server 10.0.0.100;    指定pxe啟動文件名和ip地址,next-server也是指tftp服務器IP。

配置完重啟服務:

service isc-dhcp-server restart    

 

二、安裝tftp服務

apt-get install tftpd-hpa -y

安裝完就OK了,使用默認的即可,記得tftp的目錄是 /var/lib/tftpboot/ 哦,后面要用到!

 

三、安裝apache2

apt-get install apache2 -y

也是安裝完就可以了,http根目錄是 /var/www/html/ 。

 

將下載好的ubuntu-14.04.5-server-amd64.iso放到某個目錄。比如 ~ 目錄,然后如下操作;

cd ~

mkdir /var/www/html/ubuntu

mount ubuntu-14.04.5-server-amd64.iso /var/www/html/ubuntu      或者 mount ubuntu-14.04.5-server-amd64.iso /media  然后 cp -r * /media/* /var/www/html/ubuntu

cp -r /var/www/html/ubuntu/install/netboot/*   /var/lib/tftpboot/

cp /var/www/html/ubuntu/preseed/ubuntu-server.seed /var/www/html/

然后 vim /var/www/html/ubuntu-server.seed

在文件末尾添加:

d-i live-installer/net-image string http://10.0.0.100/ubuntu/install/filesystem.squashfs

d-i pkgsel/include string openssh-server

1、因為在ubuntu12.10版本以后,安裝一些包會依賴於預配置的文件系統,這就是導致使用kickstart方式無法成功安裝的原因。

2、自動安裝ssh服務。

 

四、安裝kickstart

kickstart需要GUI界面,我因為是安裝的server,所以需要安裝桌面(如果是desktop版本就不需要),如下安裝;

apt-get install ubuntu-desktop system-config-kickstart -y

安裝完之后,重啟一下進入桌面,直接startx在虛擬機里卡桌面。

kickstart界面操作很簡單,實驗過一遍就知道主要還是ks.cfg。如果vm的界面較小,需要遠程的話,可以安裝xrdp, vnc4server, 然后vim ~/.xsession 輸入:xfc4-session      

這里就不多說了,搜索一下就很多遠程ubuntu的文章。

在界面操作完之后保存ks.cfg到/var/www/html/

ks.cfg 內容如下:

#Generated by Kickstart Configurator
#platform=AMD64 or Intel EM64T

#System language
lang en_US
#Language modules to install
langsupport en_US
#System keyboard
keyboard us
#System mouse
mouse
#System timezone
timezone --utc Asia/Shanghai
#Root password
rootpw --disabled
#Initial user
user trait --fullname "trait" --iscrypted --password $1$Umx1cgrj$..pRArN7AP66XBosYbU4N1
#Reboot after installation
reboot
#Use text mode install
text
#Install OS instead of upgrade
install
#Use Web installation
url --url http://10.0.0.100/ubuntu
#System bootloader configuration
bootloader --location=mbr 
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --all --initlabel 
#Disk partitioning information
part / --fstype ext4 --size 1024 --asprimary --ondisk sda 
part swap --size 800 --ondisk sda 
#System authorization infomation
auth  --useshadow  --enablemd5 
#Firewall configuration
firewall --disabled 
#Do not configure the X Window System
skipx
%post
echo "deb http://cn.archive.ubuntu.com/ubuntu/ trusty main restricted" > /etc/apt/sources.list
echo "deb http://cn.archive.ubuntu.com/ubuntu/ trusty-updates main restricted" >> /etc/apt/sources.list
echo "deb http://cn.archive.ubuntu.com/ubuntu/ trusty universe" >> /etc/apt/sources.list
echo "deb http://cn.archive.ubuntu.com/ubuntu/ trusty-updates universe" >> /etc/apt/sources.list
echo "deb http://cn.archive.ubuntu.com/ubuntu/ trusty multiverse" >> /etc/apt/sources.list
echo "deb http://cn.archive.ubuntu.com/ubuntu/ trusty-updates multiverse" >> /etc/apt/sources.list
echo "deb http://cn.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse" >> /etc/apt/sources.list

 

然后修改一下 vim /var/lib/tftpboot/ubuntu-installer/amd64/boot-screens/txt.cfg:

default install
label install
        menu label ^Install
        menu default
        kernel ubuntu-installer/amd64/linux
        append ks=http://10.0.0.100/ks.cfg preseed/url=http://10.0.0.100/ubuntu-server.seed netcfg/get_nameservers=10.60.235.100 vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet 
label cli
        menu label ^Command-line install
        kernel ubuntu-installer/amd64/linux
        append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet

 

ok,現在可以創建一個空的虛擬機來驗證安裝了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM