本文主要简单介绍下Ubuntu16.04无人值守安装
KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件,在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写的参数的情况时,安装程序会首先去查找kickstar生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果kickstart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后只需等待安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
大体流程:DHCP(获取IP,寻找TFTP)—TFTP(交换获取开机启动文件)—HTTP(加载安装文件)—本地安装
1、本次环境
ubuntu16.04
VMware 6.0
2.软件服务安装(tftp、http等) apache tftpserver kickstart
sudo apt-get install system-config-kickstart tftpd-hpa tftp-hpa apache2
启动服务
sudo /etc/init.d/tftp-hpa start
sudo /etc/init.d/apache2 start
3.准备镜像文件
如果是实体机可以直接挂在,虚拟机可以挂在之后将镜像文件拷贝到相应目录(一般根目录)
建立挂在镜像的文件夹
sodu mkdir /var/www/html/ubuntu16.04
1)对实体机,将iso镜像拷贝到根目录,用scp或者wiscp等,然后直接挂在以上文件夹中,同时写到开机自动挂在中
sudo mount -t iso9660 -r -o ro,loop /ubuntu-16.04.2-server-amd64.iso /var/www/html/ubuntu12.04
sudo echo "/ubuntu-16.04.2-server-amd64.iso /var/www/html/ubuntu16.04 iso9660 ro,loop,defaults 0 0" >> /etc/fstab
2)针对虚拟机,可以在CD/DVD驱动中直接挂载,不需要在拷贝iso到服务器上
设置之后,可以发现镜像文件的内容已经直接在/mnt中,拷贝到相应的目录即可
root@40-106:/var/www/html/ubuntu16.04# ls /mnt/
boot dists doc EFI install isolinux md5sum.txt pics pool preseed README.diskdefines ubuntu
root@40-106:/var/www/html/ubuntu16.04# cp -r /mnt/* /var/www/html/ubuntu16.04
4.ks.cfg 以及tftp启动文件配置
创建ks目录
sudo mkdir /var/www/html/ks
复制启动文件到tftp目录
sudo cp -arf /var/www/html/ubuntu16.04/install/netboot/* /var/lib/tftpboot
添加 ks.cfg 文路径,在install标签下的append 添加ks=http://172.17.40.106/ks/ks.cfg
root@40-106:/var/www/html/ubuntu16.04# cat /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://172.17.40.106/ks/ks.cfg vga=788 initrd=ubuntu-installer/amd64/initrd.gz live-installer/net-image=http://172.17.40.106/ubuntu-16.04/install/filesystem.squashfs
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
ks配置文件:
这个配置文件,可以用kickstart工具来生成,启动这个工具的话,需要图形界面 ,可以找一个有桌面系统的服务器生成(system-config-kickstart),照着界面配置
此处提供简单一份生成好的
root@40-106:/var/www/html/ks# cat /var/www/html/ks/ks.cfg
#platform=x86
#Install OS instead of upgrade
install
#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 --iscrypted $1$rNLhNwxJ$lwNQZcEy8SxlOo/wU6oIw/
#Initial user
#user --disabled
#Root password
rootpw --disabled
#Initial user
user souche --fullname "souche" --iscrypted --password $1$Y2/nrKdq$JpNpFTzjTVstVazRG9PBT1
#Reboot after installation
reboot
#Use text mode install
text
#Install OS instead of upgrade
#install
#Use Web installation
url --url http://172.17.40.106/ubuntu16.04
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --asprimary --fstype ext4 --size 200
part swap --asprimary --size 20000
part / --asprimary --fstype ext4 --size 1 --grow
#System authorization infomation
auth --useshadow --enablemd5
#Network information
network --bootproto=dhcp ##--device=eth0
#Firewall configuration
firewall --disabled
#Do not configure the X Window System
skipx
#Package install information
%packages
@openssh-server
openssh-server
vim
wget
#%post
#id souche &>; /dev/null || useradd souche #检查是否有souche用户,如果没有则添加
#echo 123456 | passwd –stdin souche #配置密码
#echo "nameserver 202.101.172.35" >> #/etc/resolvconf/resolv.conf.d/base #配置域名解析
#/etc/init.d/resolvconf restart
#%end
其中%post #后安装脚本(这里是另外添加的,在安装后想额外增加的操作,原来文件中没有)
5.DHCP配置
可以用交换机做dhcp或者用本机,以下已本机为例
sudo apt-get install isc-dhcp-server
root@40-106:/var/www/html/ks# cat /etc/dhcp/dhcpd.conf
subnet 172.17.40.0 netmask 255.255.254.0 {
range 172.17.40.72 172.17.40.172;
option routers 172.17.40.1;
option domain-name-servers 172.17.40.106;
default-lease-time 7200;
max-lease-time 14400;
filename "pxelinux.0";
next-server 172.17.40.106;
}
sudo /etc/init.d/isc-dhcp-server restart
其中subnet 后面的ip一定是..*.0
range 为地址分配范围,
option routers为网关 ,
domain-name-servers为dns服务器,多个用,隔开 可以使本机地址
next-server tftp地址,本机
6.最后启动一台机器验证,看是否成功
文档参考:
https://ifmx.cc/linux/85.html
https://ifmx.cc/linux/464.html
http://www.cnblogs.com/itxdm/p/how_to_auto_installation_linux_system.html