转自: http://wiki.openstack.org/XenServer/Install/PXE#The_Answer_File
PXE Install Server for XenServer
Why do I need this?
If you choose to use XenServer as the hypervisor for your OpenStack deployment, you probably want the install to be automatic. At Citrix, we find it useful to have a PXE server around, even in a simple development environment. It makes it much easier to start automating tests later on.
Ingredients
I am using the following:
-
# Xenserver 6.0.2
Get the XenServer CD from the Citrix website and click "Try It", then select "Start a free XenServer trial". # Ubuntu 11.10 virtual machine as the PXE server. You may just as well use a physical machine.
On your Ubuntu 11.10 machine
Install the following packages
sudo apt-get install apache2 isc-dhcp-server tftpd-hpa
Edit /etc/network/interfaces
The interface eth1 on my machine is on a network called "Network 1". Please change the instructions below to match your network setup.
Ensure that your "Network 1" is isolated from any corporate network, to avoid any interference from our DHCP, PXE server.
auto eth1 iface eth1 inet static address 192.168.0.1 netmask 255.255.0.0 network 192.168.0.0 broadcast 192.168.0.255
Edit /etc/dhcp/dhcpd.conf and add the following
allow bootp; use-host-decl-names true; option domain-name "Network 1"; option domain-name-servers 192.168.0.1; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.100 192.168.0.200; filename "pxelinux.0"; }
tftpboot
Mount the iso you downloaded and copy over the following to your /var/lib/tftpboot folder:
cd <path to XenServer CD> cp ./boot/pxelinux/mboot.c32 /var/lib/tftpboot cp ./boot/pxelinux/pxelinux.0 /var/lib/tftpboot mkdir -p /var/lib/tftpboot/xenserver cp ./boot/vmlinuz /var/lib/tftpboot/xenserver cp ./boot/xen.gz /var/lib/tftpboot/xenserver cp ./install.img /var/lib/tftpboot/xenserver
pxelinux.cfg/default
mkdir /var/lib/tftpboot/pxelinux.cfg
Paste the following in /var/lib/tftpboot/pxelinux.cfg/default
default local prompt 1 timeout 60 label local localboot 0 label install-xenserver kernel mboot.c32 append xenserver/xen.gz dom0_max_vcpus=2 dom0_mem=752M com1=115200,8n1 console=com1,vga --- xenserver/vmlinuz xencons=hvc console=hvc0 console=tty0 answerfile=http://192.168.0.1/answerfile install --- xenserver/install.img
The Answer File
You may use the sample answerfile below. This must be placed in /var/www/answerfile.
<?xml version="1.0"?> <installation srtype="ext"> <primary-disk>sda</primary-disk> <keymap>us</keymap> <root-password>mypass</root-password> <=== fill this <source type="url">http://192.168.0.1/xenserver/</source> <ntp-server>IP address of my ntp server</ntp-server> <=== fill this <admin-interface name="eth0" proto="dhcp" /> <timezone>America/Los_Angeles</timezone> </installation>
Copy packages* and XS-REPOSITORY-LIST to your webserver
cd <path to XenServer CD> mkdir /var/www/xenserver # path you gave in the answerfile cp -r packages* /var/www/xenserver cp XS-REPOSITORY-LIST /var/www/xenserver
Start services
sudo /etc/init.d/networking restart #if you changed /network/interfaces sudo /etc/init.d/isc-dhcp-server start sudo /etc/init.d/tftpd-hpa start
Ready to run
On your target machine, ensure that boot sequence is set to boot from network. Reboot your machine. Ensure it acquires a DHCP address from your PXE server. At the boot prompt, enter install-xenserver and take a deep breath.
Installing XCP
If you have the XCP CD, the process to setup PXE is almost identical to the process used forXenServer outline above.
Further Reading
For more details see:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2.复制pxelinux.0和mboot.c32到tftproot
3.复制XenServer6.0光盘中的\install.img,\boot\vmlinuz,\boot\xen.gz到xenserver60目录
4.在pxelinux.cfg中创建:
5.在web server的root目录下创建xenserver60\install目录,将XenServer6.0光盘中全部内容都复制到xenserver60\install目录中。
6.在webserver的root目录下创建xenserver60\answerfiles目录,在xenserver60\answerfiles中创建名为xs60-ext3的应答文件,内容如下:
7.PXE启动安装即可。
answerfile的一些选项:
1.对于存放guestvm的分区,可选择ext3或是LVM
使用ext3----><installationsrtype=”ext”>
使用LVM----><installation>
2.如果机器上有多块硬盘想作为guestvm存放的分区,则可以增加
<guest-disk>sdb</guest-disk>
3.如果不想在answerfile中明文写出root密码,则可以删掉root-password这行,但是安装过程中需要人工手动输入密码。
4.可以增加额外的其他驱动或软件包,命令形式如下,中间的URL可以为ftp,http,NFS:
<driver-sourcetype=”url”>ftp://[ip-address]/xenserver60-suppl/hp-agents-xs/</driver-source>
5.类似kickstart文件,可以自定义安装以后执行的脚本postinstall.sh,内容如下
将这个postinstall.sh存放在上边的webserver目录下,例如xenserver60/scripts,注意,这个文本必须是unix格式的。
在answerfile中增加如下一行:
<scriptstage=”filesystem-populated”type=”url”>ftp://[ip-address]/xenserver60/scripts/postinstall.sh</script>
参考文档:
http://vanhal-ict.nl/citrix-xenserver-6-0-pxe-installation