本文主要简单介绍下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