准备
配置网卡
/etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.20
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
重启网络服务
sudo /etc/init.d/networking restart
这一步未必起效。ifconfig 命令可能ip没有改变, 可以从 System Settings –> Network –> 去设置静态IP
由于配置静态IP了,可能会导致无法连接外网。配置网络可以等到apt-get install的步骤之后来配置。或者Ubuntu的机器配置双网卡,一个连接外网,另一个连接交换机。
安装DHCP, TFTP,PXE,NFS 服务
sudo apt-get update
sudo apt-get install isc-dhcp-Server inetutils-inetd tftpd-hpa syslinux nfs-kernel-Server
配置DHCP
/etc/default/dhcp-server
INTERFACES="eth0"
/etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.21 192.168.1.240;
option subnet-mask 255.255.255.0;
option routers 192.168.1.20;
option broadcast-address 192.168.1.255;
filename "pxelinux.0";
next-Server 192.168.1.20;
}
重启DHCP服务
sudo /etc/init.d/isc-dhcp-server start
配置TFTP服务
/etc/inetd.conf
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
/etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="[:0.0.0.0:]:69"
TFTP_OPTIONS="--secure"
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"
开机启动 tftp
sudo update-inetd --enable BOOT
sudo service tftpd-hpa start
检查状态
sudo netstat -lu | grep tftp
配置pxe 启动文件
sudo mkdir /var/lib/tftpboot
sudo mkdir /var/lib/tftpboot/pxelinux.cfg
sudo mkdir -p /var/lib/tftpboot/Ubuntu/14.04/amd64/
sudo cp /usr/lib/syslinux/vesamenu.c32 /var/lib/tftpboot/
sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/
/var/lib/tftpboot/pxelinux.cfg/default
DEFAULT vesamenu.c32
TIMEOUT 100
PROMPT 0
MENU INCLUDE pxelinux.cfg/pxe.conf
NOESCAPE 1
LABEL Try Ubuntu 14.04 Desktop
MENU LABEL Try Ubuntu 14.04 Desktop
kernel Ubuntu/vmlinuz
append boot=casper netboot=nfs nfsroot=192.168.1.20:/var/lib/tftpboot/Ubuntu/14.04/amd64 initrd=Ubuntu/initrd.lz quiet splash
ENDTEXT
LABEL Install Ubuntu 14.04 Desktop
MENU LABEL Install Ubuntu 14.04 Desktop
kernel Ubuntu/vmlinuz
append boot=casper automatic-ubiquity netboot=nfs nfsroot=192.168.1.20:/var/lib/tftpboot/Ubuntu/14.04/amd64 initrd=Ubuntu/initrd.lz quiet splash
ENDTEXT
/var/lib/tftpboot/pxelinux.cfg/pxe.conf
MENU TITLE PXE Server
NOESCAPE 1
ALLOWOPTIONS 1
PROMPT 0
MENU WIDTH 80
MENU ROWS 14
MENU TABMSGROW 24
MENU MARGIN 10
MENU COLOR border 30;44 #ffffffff #00000000 std
添加启动镜像
1.下载镜像
sudo wget http://releases.ubuntu.com/14.04/ubuntu-14.04.3-desktop-amd64.iso
2.挂载
sudo mount -o loop /mnt/ubuntu-14.04.3-desktop-amd64.iso /media/
sudo cp -r /media/* /var/lib/tftpboot/Ubuntu/14.04/amd64/
sudo cp -r /media/.disk /var/lib/tftpboot/Ubuntu/14.04/amd64/
sudo cp /media/casper/initrd.lz /media/casper/vmlinuz /var/lib/tftpboot/Ubuntu/
配置nfs
/etc/exports
/var/lib/tftpboot/Ubuntu/14.04/amd64 *(ro,async,no_root_squash,no_subtree_check)
重启nfs服务
sudo /etc/init.d/nfs-kernel-server start
安装
- 要在目标机器上 设置pxe启动。 现在的机器一般都支持pxe启动
kickstart 自动安装
/var/lib/tftpboot/pxelinux.cfg/default
DEFAULT vesamenu.c32
TIMEOUT 100
PROMPT 0
MENU INCLUDE pxelinux.cfg/PXE.conf
NOESCAPE 1
LABEL local
MENU LABEL Boot from local driver
MENU DEFAULT
localboot 0
LABEL Try Ubuntu 14.04 Desktop
MENU LABEL Try Ubuntu 14.04 Desktop
kernel Ubuntu/vmlinuz
append boot=casper netboot=nfs nfsroot=192.168.1.20:/var/lib/tftpboot/Ubuntu/14.04/amd64 initrd=Ubuntu/initrd.lz quiet splash
ENDTEXT
LABEL Install Ubuntu 14.04 Desktop
MENU LABEL Install Ubuntu 14.04 Desktop
kernel Ubuntu/vmlinuz
append boot=casper automatic-ubiquity netboot=nfs nfsroot=192.168.1.20:/var/lib/tftpboot/Ubuntu/14.04/amd64 initrd=Ubuntu/initrd.lz quiet splash
ENDTEXT
LABEL Install Auto Ubuntu 14.04 Desktop
MENU LABEL Auto Install Ubuntu 14.04 Desktop
kernel Ubuntu/vmlinuz
append boot=casper automatic-ubiquity netboot=nfs nfsroot=192.168.1.20:/var/lib/tftpboot/Ubuntu/14.04/amd64 initrd=Ubuntu/initrd.lz quiet splash ks=nfs:192.168.1.20:/var/lib/tftpboot/Ubuntu/14.04/amd64/ubuntu.ks.cfg
ENDTEXT
LABEL Install CentOS6.5
MENU LABEL Auto Install CentOS 6.5
kernel CentOS/6.5/vmlinuz
append boot=casper automatic-ubiquity netboot=nfs nfsroot=192.168.1.20:/var/lib/tftpboot/CentOS/6.5/x86_64 initrd=CentOS/6.5/initrd.img splash ks=nfs:192.168.1.20:/var/lib/tftpboot/CentOS/6.5/auto.ks
ENDTEXT
LABEL Install CentOS7.2
MENU LABEL Auto Install CentOS 7.2
kernel CentOS/7.2/vmlinuz
append initrd=CentOS/7.2/initrd.img method=nfs:192.168.1.20:/var/lib/tftpboot/CentOS/7.2/x86_64 devfs=nomount ks=nfs:192.168.1.20:/var/lib/tftpboot/CentOS/7.2/auto.ks
ENDTEXT
centos6 的kickstart文件
# Kickstart file automatically generated by anaconda.
#version=DEVEL
install
reboot
nfs --server=192.168.1.20 --dir=/var/lib/tftpboot/CentOS/6.4/x86_64
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --noipv6
rootpw --iscrypted $6$6hnmkS6Oqv8n2bnD$pBfBL3XoZW/wXJGHdOtVlFd61xrzK7QJ0SgoC0jeCYJupp1.9o.RsGC34svfvRSSiMiLnXoZP.wQ3jt2qwaFw0
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone --utc Asia/Shanghai
user --name=media --password=$6$UfwmGiXeGli2r3v0$E/3eldZ9Jkt5UrSN42wWIWBymcho5kWS..73T.B8EEB1rrU0CC56YETjt8aAd7EDIyk1nq8MHuqPBtaBUSDfL1 --iscrypted --gecos="media"
xconfig --startxonboot
ignoredisk --only-use=sda
# Partition clearing information
clearpart --all --initlabel --drives=sda
part /boot --fstype ext4 --size 500
part swap --recommended
part / --fstype ext4 --size 120000 --grow
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first,this is
# not guaranteed to work
#clearpart --all --drives=sda
#part /boot --fstype=ext4 --size=500
#part pv.008002 --grow --size=1
#volgroup vg_mediapxetest --pesize=4096 pv.008002
#logvol /home --fstype=ext4 --name=lv_home --vgname=vg_mediapxetest --grow --size=100
#logvol / --fstype=ext4 --name=lv_root --vgname=vg_mediapxetest --grow --size=1024 --maxsize=51200
#logvol swap --name=lv_swap --vgname=vg_mediapxetest --grow --size=7760 --maxsize=7760
repo --name="CentOS" --baseurl=nfs:192.168.1.20:/var/lib/tftpboot/CentOS/6.4/x86_64 --cost=100
%packages
@base
@core
@debugging
@basic-desktop
@desktop-debugging
@desktop-platform
@directory-client
@fonts
@general-desktop
@graphical-admin-tools
@input-methods
@internet-applications
@internet-browser
@java-platform
@legacy-x
@network-file-system-client
@office-suite
@print-client
@remote-desktop-clients
@server-platform
@server-policy
@x11
mtools
pax
oddjob
wodim
sgpio
genisoimage
device-mapper-persistent-data
abrt-gui
samba-winbind
certmonger
pam_krb5
krb5-workstation
libXmu
%end
centos7
#version=RHEL7
# System authorization information
auth --enableshadow --passalgo=sha512
# Install OS instead of upgrade
install
# Reboot after installation
reboot
# Use NFS installation media
nfs --server=192.168.1.20 --dir=/var/lib/tftpboot/CentOS/7.0/x86_64
# Firewall configuration
firewall --enabled --service=ssh
firstboot --disable
ignoredisk --only-use=sda
# Keyboard layouts
# old format: keyboard us
# new format:
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=eth0 --noipv6
network --hostname=localhost.localdomain
# Root password
rootpw --iscrypted $6$6hnmkS6Oqv8n2bnD$pBfBL3XoZW/wXJGHdOtVlFd61xrzK7QJ0SgoC0jeCYJupp1.9o.RsGC34svfvRSSiMiLnXoZP.wQ3jt2qwaFw0
# SELinux configuration
selinux --disabled
# System services
services --enabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc
user --name=media --password=$6$UfwmGiXeGli2r3v0$E/3eldZ9Jkt5UrSN42wWIWBymcho5kWS..73T.B8EEB1rrU0CC56YETjt8aAd7EDIyk1nq8MHuqPBtaBUSDfL1 --iscrypted --gecos="media"
# X Window System configuration information
xconfig --startxonboot
# System bootloader configuration
bootloader --append="crashkernel=auto rhgb quiet" --location=mbr --driveorder="sda" --boot-drive=sda
# Partition clearing information
clearpart --all --initlabel --drives=sda
# Disk partitioning information
part /boot --fstype="xfs" --ondisk=sda --size=500
part pv.49 --fstype="lvmpv" --ondisk=sda --size=228435
volgroup centos --pesize=4096 pv.49
logvol / --fstype="xfs" --grow --maxsize=51200 --size=1024 --name=root --vgname=centos
logvol swap --fstype="swap" --size=7824 --name=swap --vgname=centos
logvol /home --fstype="xfs" --grow --size=500 --name=home --vgname=centos
%packages
@^gnome-desktop-environment
@base
@compat-libraries
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@print-client
@security-tools
@x11
chrony
kexec-tools
%end
KICKSTART 语法参考 CentOS6 和 CentOS7 有点配置不同,Ubuntu 我还没有配置起来