使用preseed脚本安装Ubuntu14.04

使用PXE来安装Linux系统是系统集成中最基础的工作,同时也是最容易被忽略的,平时一旦系统安装好之后,很少再管这部分。

关于PXE的集成工具,现在已经很多了,如cobbler。

但为了减少在这方面投入的时间,我们依然采用DHCP+TFTP+HTTP的方式来安装Linux系统。

PXE服务器是基于ubuntu12.04-server-amd64配置的,CentOS系统使用kickstart脚本安装,Ubuntu系统采用preseed脚本安装。

关于CentOS的kickstart脚本,可以通过kickstart图形界面直接配置生成,此处不做具体介绍。

对于Ubuntu系统的preseed脚本,一直是使用人工配置。

1.使用本地HTTP proxy代替公共的HTTP proxy

之前使用preseed脚本安装ubuntu12.04过程中,为了方面安装都采用公共的HTTP的mirror(cn.archive.ubuntu.com)。

preseed脚本中关于mirror部分配置:

d-i mirror/protocol string http
d-i mirror/http/hostname string cn.archive.ubuntu.com
d-i mirror/http/directory string /ubuntu
d-i mirror/http/proxy string

今天忽然想到使用本地代理,于是将Ubuntu12.04.4的preseed文件配置至本地HTTP服务器。

d-i mirror/country string manual
d-i mirror/protocol string http
d-i mirror/http/hostname string 172.16.112.133  #HTTP服务器
d-i mirror/http/directory string /ubuntu12.04.4  #ISO目录
d-i mirror/http/proxy string http://172.16.112.133/#proxy地址

使用本地HTTP服务器后,安装过程中,报错为:

ubuntu 12.04 preseed debootstrap warning。

http://172.16.112.133/ubuntu12.04.4/dists/precise/main/binary-amd64/Packages.gz was corrupt。

此警告可忽略,直接点击continue可继续安装。

参考:

http://askubuntu.com/questions/318266/error-during-apt-mirror-unattended-install-of-ubuntu-server-12-04-over-network-u


经过Google,有网友提出使用alternate版本的ISO安装可以回避这个问题,但经过实验使用alternate版本的ISO文件安装依然会报警。

经实验,从cn.archive.ubuntu.com下载Package.gz文件至HTTP服务器,依然会出现警告。


2.配置安装Ubuntu14.04的preseed脚本

ubuntu14.04使用preseed脚本安装会出现一些变化。

1.安装过程中,需添加自动处理脚本先卸载掉原有磁盘:

### Unmount the /dev/sda1.
d-i preseed/early_command string umount /media


2. 在Ubuntu14.04系统安装过程中,需处理live-installer的问题

在ubuntu12.10以后的版本中,当install base system 时,会出现一下错误:

main-menu[954]: info:Menu item ‘live-installer’ selected

base-installer: error: cloud not find any live images.

需在preseed脚本中添加live-installer处理:

###After the Ubuntu12.10, preseedfile need live-installer.

d-i live-installer/net-image string http://172.16.112.133/ubuntu14.04.2/install/filesystem.squashfs

经过以上处理,安装ubuntu-14.04.2-server-amd64系统使用的preseed脚本为:

### Localization.
d-i auto-install/enable boolean true
d-i debian-installer/locale string en_US
d-i localechooser/translation/warn-light boolean true
d-i localechooser/translation/warn-severe boolean true
d-i console-setup/ask_detect boolean false
d-i keyboard-configuration/layoutcode string us

### Net interface setting.
d-i netcfg/choose_interface select eth0
d-i netcfg/dhcp_timeout string 60
d-i netcfg/get_hostname string nova
d-i netcfg/get_domain string xinlixun.cn

### Mirror setting. use the local proxy.
d-i mirror/country string manual
d-i mirror/protocol string http
d-i mirror/http/hostname string 172.16.112.133
d-i mirror/http/directory string /ubuntu14.04.2/
d-i mirror/http/proxy string http://172.16.112.133/

### Clock and timezone setting. use local ntp.
d-i clock-setup/utc boolean true
d-i time/zone string Asia/Chongqing
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server 172.16.112.133

### Partioning setting.
#d-i partman-auto/disk string /dev/sda
d-i partman-auto-lvm/guided_size string max
d-i partman-auto/choose_recipe select atomic
d-i partman-auto/method string lvm
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-lvm/device_remove_lvm 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/confirm_write_new_label boolean true

### Account setting.
d-i passwd/root-login boolean false
d-i passwd/user-fullname string test
d-i passwd/username string test
d-i passwd/user-password password test123
d-i passwd/user-password-again password test123
d-i user-setup/allow-password-weak boolean true
d-i user-setup/encrypt-home boolean false

###After the Ubuntu12.10, preseedfile need live-installer.
d-i live-installer/net-image string http://172.16.112.133/ubuntu14.04.2/install/filesystem.squashfs

### Package selection.
d-i pkgsel/include string openssh-server
d-i pkgsel/upgrade select none
d-i pkgsel/update-policy select none
tasksel tasksel/first multiselect standard, ubuntu-server

### Boot loader installation.
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true

### finishing up the installation.
d-i finish-install/reboot_in_progress note

### Running custom commands.
d-i preseed/late_command string echo "hello" >> /root/test

### Unmount the /dev/sda1.
d-i preseed/early_command string umount /media


参考:

http://ubuntuforums.org/showthread.php?t=2089073

http://ubuntuforums.org/showthread.php?t=2215103

https://github.com/geerlingguy/packer-ubuntu-1404/blob/master/http/preseed.cfg

你可能感兴趣的:(Linux)