Minicluster:PXE
De WikiLICC
Descricao do Hardware:
http://h18000.www1.hp.com/products/quickspecs/12863_div/12863_div.html
Diskless Remote Boot on Linux
Ao usar o comando o terceiro passo do comando
root@one ~ # /opt/drbl/sbin/drblpush -i ****************************************************** Hint! When a yes/no option is available, the default value is uppercase, Ex. (y/N), the default is "N", when you press "Enter", it will use "N". If you are not sure which one to choose, you can just press "Enter" key. ****************************************************** Searching the installed packages for DRBL server...This might take several minutes... Finished searching the installed packages for DRBL server. ****************************************************** ------------------------------------------------------ The interactive mode let you supply the information of your DRBL environment. ------------------------------------------------------ ------------------------------------------------------ Please enter DNS domain (such as drbl.sf.net): [matrix] Set DOMAIN as matrix ------------------------------------------------------ Please enter NIS/YP domain name: [nismatrix] Set DOMAIN as nismatrix ------------------------------------------------------ Please enter the client hostname prefix: This prefix is used to automatically create hostname for clients. If you want to overwrite some or all automatically created hostnames, press Ctrl-C to quit this program now, edit /opt/drbl/conf/client-ip-hostname, then run this program again. [one] cellauto Set the client hostname prefix as cellauto ------------------------------------------------------ eth0: IP address 192.168.0.99, netmask 255.255.255.0 eth1: IP address 143.54.226.166, netmask 255.255.254.0 Configured ethernet card(s) found in your system: eth0 eth1 ------------------------------------------------------ The ethernet port for Internet access is: eth1 The ethernet port(s) for DRBL environment: eth0 ****************************************************** ****************************************************** Now we can collect the MAC address of clients! If you want to let the DHCP service in DRBL server offer same IP address to client every time when client boot, and you never did this procedure, you should do it now! If you already have those MAC addresses of clients, you can put them into different group files (These files number is the same number of networks cards for DRBL service). In this case, you can skip this step. This step helps you to record the MAC addresses of clients, then divide them into different groups. It will save your time and reduce the typos. The MAC addresses will be recorded turn by turn according to the boot of clients, and they will be put into different files according to the network card in server, file name will be like macadr-eth1.txt, macadr-eth2.txt... You can find them in directory /etc/drbl. Please boot the clients by order, make sure they boot from etherboot or PXE! Do you want to collect them?
y
****************************************************** OK! Let's do it! request_eth_port:eth0 Stopping xinetd ... Stopping xinetd: [ OK ] *****************************************************. Start detecting MAC address.... Enter 1 or press Enter to view the collecting status. Enter 2 or q to finish collecting and quit. 1 ======================================= 00:24:73:D7:A5:41 18:A9:05:E8:0E:B8 Total: 2 ======================================= Enter 1 or press Enter to view the collecting status. Enter 2 or q to finish collecting and quit. 2 *****************************************************. The collected MAC addresses from [eth0] are saved in file(s) separately: macadr-eth0.txt. These files are saved in directory /etc/drbl. ****************************************************** OK! Let's continue... ****************************************************** Do you want to let the DHCP service in DRBL server offer same IP address to the client every time when client boots (If you want this function, you have to collect the MAC addresses of clients, and save them in file(s) (as in the previous procedure)). This is for the clients connected to DRBL server's ethernet network interface eth0 ? [y/N] y ****************************************************** OK! Please tell me the file name which contains the MAC address of clients line by line for eth0. [macadr-eth0.txt] Hostmin: 192.168.0.1 ****************************************************** What is the initial number do you want to use in the last set of digits in the IP (i.e. the initial value of d in the IP address a.b.c.d) for DRBL clients connected to this ethernet port eth0. [1] 100 ****************************************************** The file name you set is "macadr-eth0.txt". The clients number in this file is 2. We will set the IP address for the clients connected to DRBL server's ethernet network interface eth0 By the MAC address file you set, the IP addresses for the clients connected to DRBL server's ethernet network interface eth0 as: 192.168.0.100 - 192.168.0.101 Accept ? [Y/n] y ****************************************************** OK! Let's continue... ****************************************************** The Layout for your DRBL environment: ******************************************************
NIC NIC IP Clients
+-----------------------------+ | DRBL SERVER | | | | +-- [eth1] 143.54.226.166 +- to WAN | | | +-- [eth0] 192.168.0.99 +- to clients group 0 [ 2 clients, their IP | | from 192.168.0.100 - 192.168.0.101] +-----------------------------+ ****************************************************** Total clients: 2 ****************************************************** Press Enter to continue... ****************************************************** ------------------------------------------------------ In the system, there are 3 modes for diskless linux services: [0] Full DRBL mode, every client has its own NFS based /etc and /var. [1] DRBL SSI (Single system image) mode, every client uses tmpfs based /etc and /var. In this mode, the loading and necessary disk space of server will be lighter. NOTE! (a) The client machine memory is recommended at least 256 MB. (b) The setting and config files of client will not be saved to the DRBL server! They are just used once and will vanish after the machine shutdowns! Besides, if you modify any file in the template client (located in /tftpboot/nodes), you have to run /opt/drbl/sbin/drbl-gen-ssi-files to create the template tarball in /tftpboot/node_root/drbl_ssi/. (c) If you want to provide some file to overwrite the setting in the template tarball when client boots, check /tftpboot/node_root/drbl_ssi/clients/00_README for more details. [2] I do NOT want to provide diskless Linux service to client. Which mode do you prefer? [0] Full DRBL mode is chosen! ****************************************************** ------------------------------------------------------ In the system, there are 4 modes available for clonezilla: [0] Full Clonezilla mode, every client has its own NFS based /etc and /var. [1] Clonezilla box mode, every client uses tmpfs based /etc and /var. In this mode, the loading and necessary disk space of server will be lighter than that in Full Clonezilla mode. Note! In Clonezilla box mode, the setting and config files of client will not be saved to the DRBL server! They just use once and will vanish after the machine shutdowns! [2] I do NOT want clonezilla. [3] Use Clonezilla live as the OS (Operating System) of clients (Testing). Which mode do you prefer? [0] 0 Full clonezilla mode is set! ****************************************************** ****************************************************** The CPU arch for clients when running Clonezilla job: i486 ------------------------------------------------------ When using clonezilla, which directory in this server you want to store the saved image (Please use absolute path, and do NOT assign it under /mnt/, /media/ or /tmp/)? [/home/partimag] Directory for clonezilla saved images: /home/partimag ------------------------------------------------------ If there is a local harddrive with swap partition or writable file system in your client machine, do you want to use that swap partition or create a swap file in the writable filesystem so that client has more memory to use? (This step will NOT destroy any data in that harddisk) [Y/n] n ****************************************************** ------------------------------------------------------ Which mode do you want the clients to use after they boot? "1": Graphic mode (X window system) (default), "2": Text mode. [1] 2 The clients will use text mode when they boot. ****************************************************** ------------------------------------------------------ Do you want to set the root's password for clients instead of using same root's password copied from server? (For better security) [y/N] OK! Let's continue... ------------------------------------------------------ Do you want to set the pxelinux password for clients so that when client boots, a password must be entered to startup (For better security) [y/N] OK! Let's continue... ------------------------------------------------------ Do you want to set the boot prompt for clients? [Y/n] How many 1/10 sec is the boot prompt timeout for clients? [70] OK! Let's continue... ------------------------------------------------------ ------------------------------------------------------ Do you want to use graphic background for PXE menu when client boots? Note! If you use graphical PXELinux menu, however client fails to boot, you can switch to text mode by running "/opt/drbl/sbin/switch-pxe-bg-mode -m text". [y/N] Use graphic PXE Linux menu for client. ------------------------------------------------------ ------------------------------------------------------ By using alias interface, every client can have 2 IPs, one of them is private IP for clients connected to DRBL server, and the other is public IP for clients directly connected to WAN from switch! Do you want to setup public IP for clients? [y/N] ------------------------------------------------------ Do you want to let DRBL clients have an option to run terminal mode? i.e. you want to let that client run remote display (which will mostly use resources of server), say "Y" here. Note! 0. If you say yes to this option, this will be a very limited environment for client, i.e. NO local access for USB, CD, audio, printer, etc. in client. 1. If your server is not powerful, say "no" here. 2. By saying "yes" here, we will turn on xdmcp, It is never a safe thing to turn on that. Setting up /etc/hosts.allow and /etc/hosts.deny to only allow local access is another alternative but not the safest. Firewalling port 177 is the safest if you wish to have xdmcp on. Read the manual for more notes on the security of XDMCP. Please set it by yourself! 3. If you say "yes" here, you might have to restart your desktop environment manager (gdm/kdm) later, remember to save your data before you close applications! Do you want to let client has an option to run terminal mode? [y/N] OK! Let's continue... ------------------------------------------------------ ------------------------------------------------------ Do you want to let DRBL server as a NAT server? If not, your DRBL client will NOT be able to access Internat. [Y/n] n This DRBL server does NOT provide NAT service, so your DRBL client will NOT be able to access Internat. ****************************************************** The running kernel in the server supports NFS over TCP! Note! If you change the running kernel in the server, and not sure whether the kernel supports NFS over udp or tcp, you'd better to re-run "drblpush -i" again to avoid the client boots in failure! Press Enter to continue... ------------------------------------------------------ Searching installed Etherboot files for dhcpd.conf... done! ****************************************************** The calculated NETWORK for eth0 is 192.168.0.0. ****************************************************** ****************************************************** We are now ready to deploy the files to system! Do you want to continue? Warning! If you go on, your firewall rules will be overwritten during the setup! The original rules will be backuped as iptables.drblsave in system config directory (/etc/sysconfig or /etc/default). [Y/n] ****************************************************** OK! Let's do it! ------------------------------------------------------ Checking the necessary disk space... done! Copying the config file to /etc/drbl... done! Backup the original /etc/hosts as /etc/hosts.drblsave... done! Generate the /etc/hosts for clients connected to eth0... done! Cleaning the stale files of the diskless nodes if they exist... done! Backuping the old MAC address files... done! *****************************************************. *****************************************************. The version number for your GNU/Linux: FC13 Keeping the old common root files if they exist... Keeping old nodes if they exist... Creating common root files... This might take several minutes...........Copying normal dir /lib64 to /tftpboot/node_root/... done! Update the kernel for client if necessary... The DRBL client uses x86_64 kernel with version 2.6.33.8-149.fc13.x86_64... Trying to update the /tftpboot/node_root/lib/modules/2.6.33.8-149.fc13.x86_64 from server's /lib/modules/... This might take several minutes... Found kernel modules in /lib/modules/2.6.33.8-149.fc13.x86_64 and its arch "x86_64" matches client's "x86_64"... Syncing /lib/modules/2.6.33.8-149.fc13.x86_64 to client's common root... Syncing /boot/*-2.6.33.8-149.fc13.x86_64* to client's common root... Generating the /tftpboot/node_root/lib/modules/2.6.33.8-149.fc13.x86_64/modules.dep Syncing /lib/firmware/ to client's common root... Copying the directory /etc/ to clients common root /tftpboot/node_root... Cleaning the ssh key file ssh_host_dsa_key copied from server... done! Cleaning the ssh key file ssh_host_dsa_key.pub copied from server... done! Cleaning the ssh key file ssh_host_key copied from server... done! Cleaning the ssh key file ssh_host_key.pub copied from server... done! Cleaning the ssh key file ssh_host_rsa_key copied from server... done! Cleaning the ssh key file ssh_host_rsa_key.pub copied from server... done! Commenting the TCPwrapper related file /tftpboot/node_root/etc/hosts.deny copied from server... done! Commenting the TCPwrapper related file /tftpboot/node_root/etc/hosts.allow copied from server... done! The startup services for DRBL client are: firstboot netfs rpcbind crond nfslock sshd crond ypbind haldaemon messagebus acpid gpm cups pcscd cpuspeed abrtd drblthincli arm-wol gpm Using udev for clients... Deleting the accounts (except root) in the clients common root template... done! Enabling the NIS client in the common root template... done! Creating some necessary files in the clients common root template...... done! Creating DRBL client: cell100 192.168.0.100... Display manager:"gdm"... Setting node 192.168.0.100 as normal_login... done! Creating DRBL client: cell101 192.168.0.101... Display manager:"gdm"... Setting node 192.168.0.101 as normal_login... done! Modifying option diskless_client_os in drbl-ocs.conf... Disable the password in pxelinux simple menu for all clients... Disabling PXE password in config file /tftpboot/nbi_img/pxelinux.cfg/default... done! Now add necessary services to this DRBL server: DHCP, TFTP, NFS, NIS... Generating the NFS exports for DRBL clients... Backup the original /etc/exports as /etc/exports.drblsave Exporting to clients by IP address line-by-line... Full DRBL or Full Clonezilla mode, exporting client's directories etc, var, root... The /etc/exports setting is ok now! This DRBL server does NOT provide NAT service, so your DRBL client will NOT be able to access the Internet. Now stop the NAT service... iptables: Flushing firewall rules: [ OK ] iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Unloading modules: [ OK ] iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] Now set the YP securenets... Backup the original /var/yp/securenets as /var/yp/securenets.drblsave The /var/yp/securenets setting is done! Update YP... Now add the service: dhcpd xinetd rpcbind iptables ypserv ypbind yppasswdd ypxfrd nfs nfslock Force to add dhcpd service in this RH-like DRBL server... Force to add xinetd service in this RH-like DRBL server... Force to add rpcbind service in this RH-like DRBL server... Force to add iptables service in this RH-like DRBL server... Force to add ypserv service in this RH-like DRBL server... Force to add ypbind service in this RH-like DRBL server... Force to add yppasswdd service in this RH-like DRBL server... Force to add ypxfrd service in this RH-like DRBL server... Force to add nfs service in this RH-like DRBL server... Force to add nfslock service in this RH-like DRBL server... Now start the service: dhcpd xinetd rpcbind iptables ypserv ypbind yppasswdd ypxfrd nfs nfslock Starting dhcpd: [ OK ] Starting xinetd: [ OK ] Stopping rpcbind: [ OK ] Starting rpcbind: [ OK ] iptables: Applying firewall rules: [ OK ] Stopping YP server services: [ OK ] Starting YP server services: [ OK ] Shutting down NIS service: [ OK ] Starting NIS service: [ OK ] Binding NIS service: . [ OK ] Stopping YP passwd service: [ OK ] Starting YP passwd service: [ OK ] Stopping YP map server: [ OK ] Starting YP map server: [ OK ] Shutting down NFS mountd: [ OK ] Shutting down NFS daemon: [ OK ] Shutting down NFS quotas: [ OK ] Shutting down NFS services: [ OK ] WARNING: Deprecated config file /etc/modprobe.conf, all config files belong into /etc/modprobe.d/. Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS daemon: [ OK ] Starting NFS mountd: [ OK ] Stopping NFS locking: [ OK ] Stopping NFS statd: [ OK ] Starting NFS statd: [ OK ] Turn on ip_forward now. The display manager in this DRBL server is "gdm" Disable the terminal mode for DRBL clients... done ! Clean all the previous saved config file if they exist...done! Turn on the boot prompt for PXE client...done! Turn off the thin client option in PXE boot menu...done! Modifying /tftpboot/nbi_img/pxelinux.cfg/default to let DRBL client use text PXE boot menu... done! Full DRBL mode. Remove clientdir opt for label drbl in pxelinux config... Setting drbl_mode="full_drbl_mode" in /etc/drbl/drbl_deploy.conf and /etc/drbl/drblpush.conf... done! Full clonezilla mode. Remove clientdir opt for label clonezilla in pxelinux config... Setting clonezilla_mode="full_clonezilla_mode" in /etc/drbl/drbl_deploy.conf and /etc/drbl/drblpush.conf... done! You have to use "/opt/drbl/sbin/dcs" -> clonezilla-start to start Clonezilla service, so that there will be a Clonezilla menu when client boots *****************************************************. Enjoy DRBL!!! http://drbl.nchc.org.tw; http://drbl.name NCHC Free Software Labs, Taiwan. http://free.nchc.org.tw *****************************************************. If you like, you can reboot the DRBL server now to make sure everything is ready...(This is not necessary, just an option) *****************************************************. The DRBL server is ready! Now set the client client machines to boot from PXE or Etherboot. (refer to http://drbl.sourceforge.net for more details) NOTE! If Etherboot is used on client computers, version 5.4.0 or newer is required! P.S. The config file is saved as /etc/drbl/drblpush.conf. Therefore if you want to run drblpush with the same config again, you may run it as: /opt/drbl/sbin/drblpush -c /etc/drbl/drblpush.conf