2011-06-13 18:35:42 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								Provisioning Server ideas
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   - bootup kernel on target host via TFTP/PXE
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   - start our code that
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      - enables networking (dhcp)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      - enables sshd
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Requires:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   - Program that creates our blob that needs to be started
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      - for Linux: initrd
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      - Including ssh keys -> known!
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      - startup sshd
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-06-14 00:00:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								--------------------------------------------------------------------------------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Setup for installation server:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   - have dhcpd available
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   - install tftpd server
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   - configure dhcp to tell clients to boot from tftp server
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   - have a kernel
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								--------------------------------------------------------------------------------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Ideas on how to create "blob"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   - Use tools from system?
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -> requires same arch on destination!
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   - Use debian|...| base?
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -> works with cuni!
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								--------------------------------------------------------------------------------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								tftp via cuni:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								debian  pxelinux.0  pxelinux.cfg
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[19:44] kr:tftp% ln -s /usr/lib/syslinux/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								--------------------------------------------------------------------------------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								How to create the initrd?
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   Base from ...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      arch?
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      debian?
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								- needs many hardware support / in kernel?
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   - fit to kernel?
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								--------------------------------------------------------------------------------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Based on Debian
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[21:33] kr:tftp% sudo debootstrap --arch=i386 squeeze debian-squeeze 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sudo chroot debian-squeeze /bin/bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 apt-get install openssh-server
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								--------------------------------------------------------------------------------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Based on Archlinux
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Edit / create pacman.conf
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Server = ftp://mirrors.kernel.org/archlinux/$repo/os/i686
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[21:40] kr:~% grep -v ^# pacman.conf | grep -v '^$'
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[options]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								HoldPkg     = pacman glibc
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SyncFirst   = pacman
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Architecture = auto
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[core]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Include = Server = ftp://mirrors.kernel.org/archlinux/$repo/os/i686
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[extra]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Include = Server = ftp://mirrors.kernel.org/archlinux/$repo/os/i686
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[community]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Include = Server = ftp://mirrors.kernel.org/archlinux/$repo/os/i686
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[archlinuxfr] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Server = http://repo.archlinux.fr/$arch
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[21:40] kr:tftp% sudo mkarchroot -C ~/pacman.conf archlinuxroot
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[21:42] kr:tftp% sudo mkarchroot -C ~/pacman.conf archlinuxroot base
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								--------------------------------------------------------------------------------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Initramfs general:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   - need /init
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Test in Debian:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   root@kr:/# ln -s /sbin/init init
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Create initramfs:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   [22:47] kr:debian-squeeze% sudo find . -print0 | sudo cpio --null -ov --format=newc | gzip -9  > ../pre-os/initrd.gz
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								--------------------------------------------------------------------------------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Gentoo: http://en.gentoo-wiki.com/wiki/Initramfs
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								It is possible to specify multiple initramfs to be extracted during boot. This can be useful if you want to create a generic initramfs (for example one that does mdadm) and then add modifications in separate files (for example a custom /etc/mdadm.conf for every machine). 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								http://syslinux.zytor.com/wiki/index.php/SYSLINUX#INITRD_initrd_file
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   It supports multiple filenames separated by commas. This is mostly useful for initramfs, which can be composed of multiple separate cpio or cpio.gz archives. Note: all files except the last one are zero-padded to a 4K page boundary. This should not affect initramfs.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								--------------------------------------------------------------------------------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Multiple initrds, #1:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LABEL preos
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   MENU LABEL Pre OS (Debian Squeeze)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   KERNEL debian-squeeze/boot/vmlinuz-2.6.32-5-686
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   INITRD debian-squeeze/boot/initrd.img-2.6.32-5-686,pre-os/initrd.gz
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								--------------------------------------------------------------------------------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Debug in rootfs:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								root@kr:/# passwd 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Enter new UNIX password: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Retype new UNIX password: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								passwd: password updated successfully
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								--------------------------------------------------------------------------------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Multiple nics in Debian...