Raspberry Pi Webhosting Datacenter Bram De Meester Bram Scheerder Jan Vernackt Projecten 1 Academiejaar 20132014 Professionele Bachelor ICT
AJ 2013 2012 Inhoud Vastleggen projectvoorstel... 2 Omschrijving van het originele idee... 2 Uitwerken van uiteindelijk idee... 2 Uiteindelijk projectonderwerp... 3 Omschrijving van het bedoelde eindresultaat van het project... 3 Doelpubliek & Context... 3 Innovatief aspect van het project... 3 Beschrijving en functionaliteit van je eindresultaat... 3 Beschrijving van gebruikte technologieën, platform... 1 Planning... 3 Structuur van het project... 3 Werkplanning... 3 Rapportering... 4 Verslagen... 2 Vergadering 1 maandag 24 februari 14... 2 1
AJ 2013 2012 Vastleggen projectvoorstel Omschrijving van het originele idee Het bouwen van een klein datacenter voor webhosting met als basis server de Raspberry Pi. Op de Raspberry Pi s zou een apache, MySQL,FTP,DNS en mailserver draaien. Deze zouden allemaal geconfigueerd worden door een zelf geschreven controle paneel. Uiteraard zullen er ook algemeen dingen geconfigureerd worden zoals Backup, logging en netwerk security. Verder word loadbalancing en computer clustering geïmplementeerd. Het controle paneel word opgebouwd in php die dan alle bash scripten zal aansturen. Het controle paneel word zo eenvoudig mogelijk opgebouwd zodat mensen die niet veel van webhosting kennen ook eenvoudig dingen kunnen aanpassen. Uitwerken van uiteindelijk idee Algemeen is het idee het zelfde als hierboven. Enkel de toevoeging van de High availabilty apache cluster. We hebben 1 sessie gebruikt om te brainstormen. Waar de dingen die we belangrijk vonden hebben we aangeduidt. 2
AJ 2013 2012 Uiteindelijk projectonderwerp Omschrijving van het bedoelde eindresultaat van het project Een datecenter met minstens 8 raspberry pi s met dynamische migration (bij overbelasting zal er dynamisch extra servercapaciteiten toegevoegd worden. Het controle paneel zal zo eenvoudig mogelijk worden gepresenteerd worden zodat gebruikers die niet veel van webhosting kennen ook gemakkelijk hun weg kunnen vinden. We zullen ook gebruik maken van een loadbalancer die de nodige beveiliging zal implementeren zoals firewalls, netwerklogging, automatische backup, Doelpubliek & Context We willen de nadruk leggen op het eenvoudig gebruik van de control panel, waarbij dit door enigweg iedereen kan gebruikt worden maar ook tegelijk heel geavanceerd is. Innovatief aspect van het project De grootste innovatieve aspecten zijn: Het clusteren van raspberry pi s Dynamische migration Eenvoudige en responsive control panel Beschrijving en functionaliteit van je eindresultaat Onze minimale doelstellingen is de dynamische toevoegingen v an nieuwe raspberry pi s, maw wanneer een nieuwe raspberry pi handmatig wordt toegevoegd zal deze automatisch geinitialiseerd worden door de loadbalancer. Deze loadbalancer zal ook automatische backups pakken van de website en hun bijhorende data, hij zal ook de nodige beveiligingen hebben en het verkeer dynamische verdelen over de verschillende servers. De control panel heeft minimale instellingen die kunnen aangepast worden op dit paneel: ftp users de databases via phpmyadmin handmatige backup Site redirections Er zullen ook verschillende modi geimplementeerd worden: Geavenceerder modus en een modus voor gebruikers die niet veel kennen van webhosting. 3
AJ 2013 2012 Beschrijving van gebruikte technologieën, platform Hardware: Op de raspberry pi s zal er een linux versie geinstaleerd worden. Al de instelling zullen geconfigureerd worden in bash en linux terminal. Ook zullen we een cube board gebruiken als load balancer met de nodige beveiliging, dit board zal via de swich alle raspberry pi s verbinden. Extra: We zullen via een CPU de temperatuur controlleren en de koeling inschakeling indien nodig. Raspberry Pi:(servers) Specifications: CPU: Arm11 Ram: 512Mbyte Nand: niet van toepassing Operating system: Raspberian Conectiviteit: o Nic: 10M/100M o HDMI o RCA Video o 2 x USB 2.0 TypeA o GPIO o 3,5 Jack audio o SD card slot Wikipedia 1
AJ 2013 2012 CubieBoard cubietruck:(load balancer) Specifications: CPU: Arm A20 Dual core Ram: 2GB DDR @ 480MHz Nand: 8 GB Operating system: Lubuntu server Conectiviteit: o Nic: Lan 10/100/1000Mbs o HDMI o VGA o 2 x USB 2.0 TypeA o SPDIF o 3,5 Jack audio o WIFI o BlueTooth o Sata 2.0 o Micro Sd docs.cubieboard.org Control panel: Dit is een webapplicatie, deze zal geprogrammeerd worden in php die de nodige bash scripten aan zal sturen en opgemaakt worden met css en javascript. Voor clean url s zullen we gebruik maken van Silex. Hierop zal mysql voorzien worden. 2
AJ 2013 2012 Planning Structuur van het project Werk verdeling: Bash en php: Bram De Meester en Bram Scheerder Pair programming. Hardware: Jan Vernackt 1) Ontwerp van het control panel ( via wireframes) & behuizing (Bram Scheerder) 2) High availabilty apache cluster (Jan Vernackt) 3) Controle paneel af zonder opmaak (functionaliteit) (Bram De Meester) 4) Samenvoegen + troubleshooting (Bram Scheerder) 5) opmaak volledig klaar (Bram De Meester 6) behuizing (Jan Vernackt) a. DNSserver + security (Jan Vernackt) 7) Green it (Bram Scheerder) 8) Video, Documentatie & presentatie af (Bram De Meester) Troubleshooting: Connectie door middel van het ping commando. Webhosting testen door simpelweg naar te surfen. high availabilty apache clusters testen door servers zwaar te belasten. Werkplanning Lesweek 5: Ontwerp van het control panel ( via wireframes) & behuizing Lesweek 6: High availabilty apache cluster lesweek 7: Controle paneel af zonder opmaak (functionaliteit) lesweek 8: Samenvoegen + troubleshooting lesweek 9: opmaak volledig klaar lesweek 10: behuizing lesweek 10: DNSserver + security Lesweek 10: Green it Lesweek 12: Documentatie + presentatie af + video 3
AJ 2013 2012! Bijeenkomsten na elke milestone Geef voor de resterende lesweken een planning (graag in een schematisch overzicht) van wat tegen wanneer en door wie moet gebeuren. Dit moet in blokken van maximaal 2 weken gebeuren. In dat schema moeten uiteraard ook de mijlpalen duidelijk terug te vinden zijn. Plan ook minstens 14daags bijeenkomsten waarin je onderling rapporteert en formeel vastlegt hoever het werk staat, in welke mate de planning gehaald wordt of waar ze aangepast moet worden. Rapportering We zullen communiceren met de docent door middel van GIT en kahomail en ook door direct met hem te spreken. De leden van de groep zullen onderling communiceren door Skype, facebook en GIT. 4
AJ 2013 2012 Verslagen Vergadering 1 maandag 24 februari 14 Aanwezeige leden: Bram De Meester Bram Scheerder Jan Vernackt Programma: Brainstorm Aanvullen project dossier Brainstorm: Fancy rack met lichtjes die verander wanneer de temperatuur oploopt dynamische toevoeging van raspberry pi s control panel bruikbaar voor noobs Beschikbaar via mobiele site(responsive design) automatische back up secutity Ddos beveiliging firewall virtuele apache met migrating ( da ding da desmet zij) redundancy green it usb aanschakelen van pi s ftp ssl mysql php 5 linux Bash behuizing nameservers PhpMyadmin Site Redirections Clean url s : Silex Apache Ssh beveiliging Static ip Display op de loadbalancer voor info voor de server aparte site voor de loadbalancing Wireframing van het control panel` 2 modussen, Advanced, easymode Ups Legende: o groen: WoW o geel: Extra o zwart: Standaard o Rood: niet te implementeren 2