实验环境:
vmware 10, debian 7.4,路由器pppoe上网方式,
内网网关:192.168.1.1
内网dns :192.168.1.1
本机 ip :192.168.1.160
准备工作
:
1)安装所需软件 tftpd-hpa ,isc-dhcp-server,apache
2)下载 netboot.tar.gz, 并将其解压到 tftp server 的根目录当中
http://mirrors.163.com/debian/dists/wheezy/main/installer-i386/current/images/netboot/netboot.tar.gz
1、配置tftp server,根目录为 /srv/tftp
root@debian:/srv/tftp/fai# cat /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp/"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
编辑 pxelinux.cfg/default
root@debian:/srv/tftp# cat pxelinux.cfg/default
# D-I config version 2.0
#include debian-installer/i386/boot-screens/menu.cfg
default debian-installer/i386/boot-screens/vesamenu.c32
prompt 0
timeout 0
default auto
label auto
menu label ^Auto install
menu default
kernel debian-installer/i386/linux
append auto=true priority=critical vga=788 initrd=debian-installer/i386/initrd.gz debian-installer/allow_unauthenticated=true nterface=auto netcfg/dhcp_timeout=60 netcfg/choose_interface=auto url=http://192.168.1.160/preseed.cfg
root@debian:/srv/tftp#
======================================
2、配置dhcp 服务:
vi /etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.200 192.168.1.220;
option domain-name-servers 192.168.1.1;
# option domain-name "internal.example.org";
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.1.160;
filename "pxelinux.0";
}
3、 编辑 preseed.cfg 文件
这个是重点,前面的dhcp 、tftp很容易。这里可以直接使用官方提供的模板来修改
模板位置:http://www.debian.org/releases/wheezy/example-preseed.txt
官方的安装手册:http://www.debian.org/releases/wheezy/i386/
文档介绍的很详细,可以很好的学习一下,这次试验就是根据这个文档来做的,没什么技术含量,只是做了一个实践而已。
我使用是的 preseed.cfg 文件内容如下:该文件位于apache的网页文件根目录。使用 debconf-set-selections -cpreseed.cfg
检测其语法正确性。
root@debian:/var/www# grep -vE "^$|^#" preseed.cfg
d-i debian-installer/locale string en_US.UTF-8
## 键盘配置这一项,在使用示例文件中的 d-i keymap select us 不起作用,还是会出现选择键盘布局的交互式界面,采用下一行的配置,即可正常进行下去。
d-i keyboard-configuration/xkb-keymap select us
d-i netcfg/choose_interface select auto
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain
d-i mirror/country string manual
# 软件源这里,要使用官方的镜像源,使用dvd或者cd搭建的局域网apt源,无法实现自动安装系统,中途会出现严重警告,需要人为干预,才可进行下去,这不能实现自动安装。当然也可以考虑对官方源的摸一个分支做一个本地镜像,但是花费的时间和磁盘空间比较大,没有做这个。
d-i mirror/http/hostname string mirrors.163.com
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string
d-i passwd/make-user boolean false
d-i passwd/root-password password admin
d-i passwd/root-password-again password admin
d-i clock-setup/utc boolean true
d-i time/zone string US/Eastern
d-i clock-setup/ntp boolean true
d-i partman-auto/method string lvm
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-auto/choose_recipe select atomic
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i partman-md/confirm boolean true
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i debian-installer/allow_unauthenticated boolean true
#这里选择安装标准套件,默认情况下,示例文件将此注释掉了,然后安装时要安装1300多个包,使用standard,只要用100多个,节省时间。当然,实际情况还要根据需求来
tasksel tasksel/first multiselect standard
d-i finish-install/reboot_in_progress note
4, 这个过程只是最简单的实现了自动化安装,还有更多的自定义方面的内容可以修改,比如指定安装某些软件,安装完执行某些脚本等,还有个方案是 使用fai 工具,接下来就是学习fai这一个方法。