====== 29C3 Multipurpose Live CD ====== * Die Live CDs gibt es in zwei Geschmackrichtungen: Debian und Gentoo * Die Administration API ist transparent für beide Betriebssysteme * zu finden unter: http://mm.29c3.fem-net.de (Login erforderlich) * Die Live CDs booten und starten den /etc/init.d/fem-cdn init script ===== Unterstützer ===== * Anmeldung unter cccongress-supporter@fem.tu-ilmenau.de * mögliche Ressourcen-Verwendung * Verteil-VM/Host (RTMP, HTTP, Icecast) * möglichst „dick“ angebunden (>= 1GE) * brauch keine Festplatte, Live-CD (32bit oder 64bit) muss booten * bissl CPU und RAM (>=1GB) * HTTP-Cache-Knoten * benötigt min. 100GB schnellen Plattenplatz * >= 1GE, viel RAM nützlich * für HLS-Schnippsel (live + ondemand) * für Slides-Schnippsel (live + ondemand) * Ondemand Storage * benötigt min. 500GB * >= 1GE, viel RAM nützlich ===== FAQ ===== * SSH Zugang: * Alle Machinen lauschen auf Port 1022 für SSH Verbindungen ssh fem@$IP_ADDR -p 1022 * User **fem** * Kein root login möglich über SSH * Password bei rei@fem.tu-ilmenau.de beantragen * SSH-Pub-Key Zugang Möglich, bei rei@fem beantragen * fem user hat sudo Rechte * VNC Zugang falls möglich: * Beispiel: #vncviewer $IP_TO_VM_HOST:$VNC_PORT vncviewer 10.28.0.2:1 * [[http://wiki.fem.tu-ilmenau.de/technik/dienste/gentoo-overlay|FeM Gentoo Overlay]] ==== Boot Parameter ==== * dodhcp * Erforderlich, falls die Machine in ein Netz mit DHCP ist * nodhcp * Erforderlich, wenn man eine **statische** einsetzen will * ip4 * Erforderlich, falls die Machine eine feste IP bekommen soll, siehe **nodhcp** * gateway4 * Wir zusammen mit "ip4" benutzt * ip6 * Erforderlich, falls die Machine eine feste IP bekommen soll * gateway6 * Wir zusammen mit "ip6" benutzt * eth1_ip4 * Falls die Machine eine zweite Interface hat, kann man hiermiet die IP für diese setzen * eth1_gateway4 * **ACHTUNG**, Dieses gateway wird auch als default route betrachtet! Nicht gateway4 und eth1_gateway4 gleichzeitig verwenden. * eth1_ip6 * eth1_gateway6 * **ACHTUNG**, Dieses gateway wird auch als default route betrachtet! Nicht gateway6 und eth1_gateway6 gleichzeitig verwenden. * domain * Die search domain fürs DNS, falls die Machine in ein Netzt ohne DHCP gebootet wurde * dns * Die Liste der DNS Server, falls die Machine in ein Netzt ohne DHCP gebootet wurde * hostname * Der Hostname ist Optional === Booten mit DHCP === * Als default Parameter ist **dodhcp** als Boot Parameter gesetzt * Beispiel: root=/dev/ram0 init=/linuxrc nosound lang=de docache looptype=squashfs loop=/image.squashfs cdroot dodhcp === Booten mit feste IP - kein DHCP === * Falls die Machine in ein Netz **ohne** DHCP booten soll/muss, kann man in den GRUB Boot Parameter eine IP festsetzen. * Beispiel: root=/dev/ram0 init=/linuxrc nosound lang=de docache looptype=squashfs loop=/image.squashfs cdroot nodhcp ip4=141.24.40.40/26 gateway4=141.24.40.62 dns=8.8.8.8,141.24.53.227,8.8.4.4 domain=fem.tu-ilmenau.de hostname=interceptor eth1_ip6=2001::01/64 eth1_gateway6=2001::02 ==== Booten mit Qemu ==== * Beispiel Script um eine VM Instanz des Live CDs zu starten #!/bin/bash NAME="cdn1" MAC="00:60:2F:01:01:01" ISO="/home/fem/29c3_gentoo_x86_64.iso" NUMBER=1 /usr/bin/qemu-system-x86_64 -name $NAME -cpu qemu64 -smp 2 -m 512 \ -watchdog i6300esb -balloon none -k de -localtime \ -pidfile /tmp/${NAME}.pid -net nic,macaddr=${MAC},model=virtio \ -net tap,script=/etc/qemu/qemu-ifup -cdrom ${ISO} -boot d \ -vnc :${NUMBER} -daemonize ==== Booten mit VMWare ==== * Siehe [[http://www.petri.co.il/use-iso-image-files-vmware.htm]] * [[http://en.gentoo-wiki.com/wiki/VMware_Guest#Preparing_Virtual_Machine | Gentoo Anleitung ]] === Debian === * Sollte einfach gehen === Gentoo === * Die kernel boot option **docache** entfernen. Dann sollte booten. ==== Booten Baremetal - Keine Virtualisierung ==== === Installation des FeM-CDN Initscripts === wget http://subversion.fem.tu-ilmenau.de/repository/cccongress/trunk/tools/fem-cdn-mm/cdn/etc/init.d/fem-cdn.init -q -O /etc/init.d/fem-cdn.init wget http://subversion.fem.tu-ilmenau.de/repository/cccongress/trunk/tools/fem-cdn-mm/cdn/etc/init.d/fem-cdn.debian -q -O /etc/init.d/fem-cdn.debian wget http://subversion.fem.tu-ilmenau.de/repository/cccongress/trunk/tools/fem-cdn-mm/cdn/etc/init.d/fem-cdn.gentoo -q -O /etc/init.d/fem-cdn.gentoo useradd -m fem #passwd fem #Set random password gpasswd -a fem wheel #Add fem user to the wheel group. #Update the sudoers file to allow the fem user to be root without password #For GENTOO: #rc-update add fem-cdn.gentoo default #For DEBIAN: # update-rc.d fem-cdn.debian defaults # setup fstab echo "####################################################" >>/etc/fstab echo "## ATTENTION: THIS IS THE FSTAB ON THE LIVECD ##" >>/etc/fstab echo "## PLEASE EDIT THE FSTAB at /mnt/gentoo/etc/fstab ##" >>/etc/fstab echo "####################################################" >>/etc/fstab echo "tmpfs / tmpfs defaults 0 0" >>/etc/fstab echo "tmpfs /lib/firmware tmpfs defaults 0 0" >>/etc/fstab echo "#tmpfs /usr/portage tmpfs defaults 0 0" >>/etc/fstab echo "tmpfs /tmp tmpfs defaults,mode=41777 0 0" >>/etc/fstab echo "crs-storage:/crs-mount /opt/crs/storage glusterfs _netdev,noatime 0 0" >>/etc/fstab # checkout subversion repository svn co https://subversion.fem.tu-ilmenau.de/repository/cccongress/trunk /opt/crs/vcs --non-interactive --username anonymous --password '' # add build number echo "FeMCDN LiveCD Build: \"$(date)\" ($(date +'%s'))" >>/etc/motd # remove symlink rm /var/run mkdir /var/run cp -r /run/* /var/run rm /var/lock mkdir /var/lock ###Fix nginx mkdir -p /var/tmp/nginx/client ##Create www folders mkdir -p /var/www/rtmp mkdir -p /var/www/www mkdir -p /var/www/slides mkdir -p /var/www/hls mkdir -p /var/www/hls_slides_www wget -q https://github.com/arut/nginx-rtmp-module/blob/master/stat.xsl -O /var/www/rtmp/stat.xsl #Fix erlyvideo chmod a+x /opt/erlyvideo/bin/* chmod a+x /opt/erlyvideo/erts-*/bin/* chmod a+x /opt/erlyvideo/lib/inets-*/priv/bin/* chmod a+x /opt/erlyvideo/lib/observer-*/priv/bin/* chmod a+x /opt/erlyvideo/lib/os_mon-*/priv/bin/* chmod a+x /opt/erlyvideo/lib/webtool-*/priv/bin/* === Installation der Live CD auf HDD === * Bassiert auf [[http://www.gentoo-wiki.info/HOWTO_LiveCD_on_disk]] und [[http://forums.debian.net/viewtopic.php?f=16&t=18845]] #Create a loopback device if needed #Root partition 10Gb #Swap partiotion 256Mb dd if=/dev/zero of=/home/fem/livecd_root.img bs=1M count=10k dd if=/dev/zero of=/home/fem/livecd_swap.img bs=1M count=256 #boot your customcd image #set root passwd sudo passwd #change to root sudo -i #set the user passwd passwd fem #Create a primary partition and mark it bootable. cfdisk /dev/sda #Format it as ext3, then mount it. mkfs.ext3 /dev/sda1 #Create the mount point first, if necessary. mkdir -p /mnt/sda1 #mount the partition mount /dev/sda1 /mnt/sda1 #copy the system over, exclude a few things rsync -a / /mnt/sda1/ --exclude=/{/mnt/sda1,dev,live,sys,proc,media}/ #create proc, sys, and media folders mkdir -p /mnt/sda1/dev /mnt/sda1/proc /mnt/sda1/sys /mnt/sda1/media #Mount Dev and Proc filesystems mount -o bind /dev /mnt/sda1/dev mount -t proc none /mnt/sda1/proc #chroot into partition chroot /mnt/sda1/ /bin/bash export PS1="(chroot)$PS1" #install grub - will only setup grub for this installation grub-install /dev/sda update-grub #remove fstab rm /etc/fstab #create new fstab (example below) nano /etc/fstab #exit chroot exit #reboot reboot /dev/sda1 / ext3 defaults 0 1 proc /proc proc defaults 0 0 **Booting with Qemu** #!/bin/bash NAME="cdn1" MAC="00:60:2F:01:01:01" NUMBER=1 /usr/bin/qemu-system-x86_64 -name $NAME -cpu qemu64 -smp 2 -m 512 \ -watchdog i6300esb -balloon none -k de -localtime \ -pidfile /tmp/${NAME}.pid -net nic,macaddr=${MAC},model=virtio \ -net tap,script=/etc/qemu/qemu-ifup \ -hda /home/fem/livecd_root.img -hdb /home/fem/livecd_swap.img -boot a -vnc :${NUMBER} -daemonize ==== NAT - Port Forwarding ==== ==== Kernel Options ==== * config_debian FIXME * config_gentoo FIXME