Difference between revisions of "Set up PXE boot VM"
From HallCWiki
Jump to navigationJump to search(18 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
== Set up the PXE boot == | == Set up the PXE boot == | ||
* Install required packages: yum install nfs-utils tftp-server syslinux-tftpboot syslinux | * Install required packages: yum install nfs-utils tftp-server syslinux-tftpboot syslinux | ||
− | * Enable | + | * Enable tftp as root: (an explanation about tftp.service and tftp.socket: [https://blog.thewatertower.org/2019/05/01/tftp-part-3-replacing-xinetd-with-systemd/]) |
<pre> | <pre> | ||
− | systemctl enable | + | systemctl enable tftp.socket |
− | systemctl start | + | systemctl start tftp.socket |
− | |||
− | |||
</pre> | </pre> | ||
+ | * Create PXE boot directory: | ||
+ | <pre> | ||
+ | cd /tftpboot | ||
+ | mkdir linux-diskless | ||
+ | </pre> | ||
+ | * Set up PXE boot configurations | ||
+ | <pre> | ||
+ | cd /tftpboot/linux-diskless | ||
+ | cp /usr/share/syslinux/pxelinux.0 . (This turns out not working. Instead, do: scp root@cdaqfs1:/tftpboot/linux-diskless/pxelinux.0 ) | ||
+ | scp -r root@cdaqfs1:/tftpboot/linux-diskless/pxelinux.cfg . | ||
+ | </pre> | ||
+ | * Copy x86_64 boot images from cdaqfs1 to /tftpboot/linux-diskless/: | ||
+ | <pre> | ||
+ | scp -r root@cdaqfs1:/tftpboot/linux-diskless/boot . | ||
+ | </pre> | ||
+ | * Copy armv7 boot images from cdaqfs1 to /tftpboot/linux-diskless/: | ||
+ | <pre> | ||
+ | scp -r root@cdaqfs1:/tftpboot/linux-diskless/CentOS7-armv7-Diskless . | ||
+ | </pre> | ||
+ | * Edit tftp systemd configuration file to let the tftp directory point to the /tftpboot: | ||
+ | <pre> | ||
+ | vi /usr/lib/systemd/system/tftp.service | ||
+ | </pre> | ||
+ | and change: | ||
+ | <pre> | ||
+ | ExecStart=/usr/sbin/in.tftpd -s /tftpboot | ||
+ | </pre> | ||
+ | |||
+ | == Set up the filesystem and NFS export == | ||
+ | === x86_64 === | ||
+ | * The root/ NFS mount is defined in /tftpboot/linux-diskless/pxelinux.cfg/default | ||
+ | * Copy the file system over from cdaqfs1 to cdaqpxe: | ||
+ | <pre> | ||
+ | cdaqfs1: /diskless/CentOS7/x86_64 | ||
+ | </pre> | ||
+ | * Change the root mount NFS server IP to cdaqpxe in /tftpboot/linux-diskless/pxelinux.cfg/default | ||
+ | * Change the snapshot mount NFS server at /diskless/CentOS7/x86_64/root/etc/sysconfig/readonly-root | ||
+ | * Copy the home mount directory over from cdaqfs1 to cdaqpxe: | ||
+ | <pre> | ||
+ | cdaqfs1: /home/diskless/hccoda | ||
+ | </pre> | ||
+ | * Somehow, CODA running at coda@cdaql* is connecting to the ROCs using startROC.sh scripts under /home/coda/coda/coda_scripts/. So /home/coda/ needs to be mounted on the ROCs as well. Create a soft link | ||
+ | <pre> | ||
+ | cdaqfs: ln -s /coda-home /home/diskless/coda | ||
+ | </pre> | ||
+ | * Change the home mount NFS server at /diskless/CentOS7/x86_64/root/etc/auto.master.d/auto.home | ||
+ | * Set up the NFS exports at cdaqpxe: /etc/exports | ||
+ | ==== Switch from cdaqfs1 to cdaqfs ==== | ||
+ | * Create "cdaqfs" dir under root@cdaqpxe:/diskless/CentOS7/x86_64/root/net | ||
+ | * Remove "coda.autofs" and "cdaqfs1.autofs" in /diskless/CentOS7/x86_64/root/etc/auto.master.d/ | ||
+ | * Add "cdaqfs.autofs" and "auto.cdaqfs" in /diskless/CentOS7/x86_64/root/etc/auto.master.d/ | ||
+ | * Restart autofs at the crate as root: systemctl restart autofs | ||
+ | === armv7 === | ||
+ | * change the tftp server IP by interrupting the VTP boot process to get the 'Zynq" prompt. Then use "setenv" and "saveenv" to modify the tftp server ip | ||
+ | * The rest of the changes are similar to "x86_64" listed above | ||
+ | ==== Switch from cdaqfs1 to cdaqfs ==== | ||
+ | * Remove "coda.autofs" and "cdaqfs1.autofs" in /diskless/CentOS7/armv7/root/etc/auto.master.d/ | ||
+ | * Add "cdaqfs.autofs" and "auto.cdaqfs" in /diskless/CentOS7/armv7/root/etc/auto.master.d/ | ||
+ | * Restart autofs at the crate as root: systemctl restart autofs |
Latest revision as of 10:55, 24 July 2024
PXE boot VM
- The ROCs and VTPs are booted using PXEboot. The PXEboot is hosted in a virtual machine located at the Hall ESX clusters. The VM name is "cdaqpxe.jlab.org"
Set up the PXE boot
- Install required packages: yum install nfs-utils tftp-server syslinux-tftpboot syslinux
- Enable tftp as root: (an explanation about tftp.service and tftp.socket: [1])
systemctl enable tftp.socket systemctl start tftp.socket
- Create PXE boot directory:
cd /tftpboot mkdir linux-diskless
- Set up PXE boot configurations
cd /tftpboot/linux-diskless cp /usr/share/syslinux/pxelinux.0 . (This turns out not working. Instead, do: scp root@cdaqfs1:/tftpboot/linux-diskless/pxelinux.0 ) scp -r root@cdaqfs1:/tftpboot/linux-diskless/pxelinux.cfg .
- Copy x86_64 boot images from cdaqfs1 to /tftpboot/linux-diskless/:
scp -r root@cdaqfs1:/tftpboot/linux-diskless/boot .
- Copy armv7 boot images from cdaqfs1 to /tftpboot/linux-diskless/:
scp -r root@cdaqfs1:/tftpboot/linux-diskless/CentOS7-armv7-Diskless .
- Edit tftp systemd configuration file to let the tftp directory point to the /tftpboot:
vi /usr/lib/systemd/system/tftp.service
and change:
ExecStart=/usr/sbin/in.tftpd -s /tftpboot
Set up the filesystem and NFS export
x86_64
- The root/ NFS mount is defined in /tftpboot/linux-diskless/pxelinux.cfg/default
- Copy the file system over from cdaqfs1 to cdaqpxe:
cdaqfs1: /diskless/CentOS7/x86_64
- Change the root mount NFS server IP to cdaqpxe in /tftpboot/linux-diskless/pxelinux.cfg/default
- Change the snapshot mount NFS server at /diskless/CentOS7/x86_64/root/etc/sysconfig/readonly-root
- Copy the home mount directory over from cdaqfs1 to cdaqpxe:
cdaqfs1: /home/diskless/hccoda
- Somehow, CODA running at coda@cdaql* is connecting to the ROCs using startROC.sh scripts under /home/coda/coda/coda_scripts/. So /home/coda/ needs to be mounted on the ROCs as well. Create a soft link
cdaqfs: ln -s /coda-home /home/diskless/coda
- Change the home mount NFS server at /diskless/CentOS7/x86_64/root/etc/auto.master.d/auto.home
- Set up the NFS exports at cdaqpxe: /etc/exports
Switch from cdaqfs1 to cdaqfs
- Create "cdaqfs" dir under root@cdaqpxe:/diskless/CentOS7/x86_64/root/net
- Remove "coda.autofs" and "cdaqfs1.autofs" in /diskless/CentOS7/x86_64/root/etc/auto.master.d/
- Add "cdaqfs.autofs" and "auto.cdaqfs" in /diskless/CentOS7/x86_64/root/etc/auto.master.d/
- Restart autofs at the crate as root: systemctl restart autofs
armv7
- change the tftp server IP by interrupting the VTP boot process to get the 'Zynq" prompt. Then use "setenv" and "saveenv" to modify the tftp server ip
- The rest of the changes are similar to "x86_64" listed above
Switch from cdaqfs1 to cdaqfs
- Remove "coda.autofs" and "cdaqfs1.autofs" in /diskless/CentOS7/armv7/root/etc/auto.master.d/
- Add "cdaqfs.autofs" and "auto.cdaqfs" in /diskless/CentOS7/armv7/root/etc/auto.master.d/
- Restart autofs at the crate as root: systemctl restart autofs