Een uitgebreide mediaserver onder Linux

Na mijn eerste avonturen in Linuxland ben ik inmiddels zover, dat ik het systeem echt begin te kennen. Ik ben (en blijf voorlopig) in de eerste plaats een Windowsman, maar Linux trekt me steeds meer aan. Zoveel zelfs, dat ik me ga wagen aan een heel nieuw project: een uitgebreide mediaserver.

Ik had, voordat ik dit avontuur aanging, een stevige mediaserver, die draaide onder Windows 7 home. Geen serversoftware dus, maar, bij gebrek aan beter, standaardsoftware van Microsoft. Deze server is in de eerste plaats bedoeld voor het bewaren en ter beschikking stellen van media. Daarom is het geen supersnel rekenmonster, maar een flinke kast met een doorsnee moederboard en dito processor met 4 GB geheugen en onboard video. Maar wel met 4 schijven van 2 TB voor de opslag.

Op deze machine, die bekabeld in ons huisnetwerk hangt, draaien een aantal programma’s 24 uur per dag:

  • Logitech Mediaserver: Deze software verzorgt een verbinding tussen de Logitech Squeezebox hardware, die verbonden is met de versterker in de woonkamer. Hiermee wordt muziek die opgeslagen is op de server afgespeeld.
  • Sabnzbd: Dit handige pakket verzorgt downloads vanaf Usenet.
  • Domoticz: domotica sofware, die een gedeelte van (de bewegingen in) ons huis bestuurt, bewaakt en registreert
  • Webcam capture software: maakt op gezette momenten foto’s of filmpjes van beelden die op de webcam verschijnen. Geschikt voor bijvoorbeeld bewakingsdoelen.
  • Verder worden grote delen van de schijven gedeeld met het netwerk, zodat bijvoorbeeld films kunnen worden bekeken door deze met een mediaplayer, die aan de televisie hangt, te delen.

Inventariseren

Ik wil natuurlijk wel dat al deze functies overeind blijven wanneer ik de server ga overzetten naar Linux, dus allereerst maar eens kijken of dat mogelijk is. Wat blijkt: tot mijn grote vreugde zijn de meeste programma’s ook onder Linux beschikbaar! Van de Logitech Mediaserver, Sabnzbd en Domoticz zijn ook Linuxversies, dus daar hoef ik geen alternatief voor te zoeken. De schijven delen met de buitenwereld kan ik doen met de zeer bekende SAMBA server. Zodoende kunnen naast de mediaplayer ook andere Windows computers erbij. Voor de webcam software moet ik iets anders zoeken, maar naar later zal blijken is de keus in dat soort software onder Linux veel groter dan onder Windows….

Voorbereidingen

Allereerst moet er worden gekozen voor een Linuxversie. Dit is geen al te groot probleem, het wordt Ubuntu Server LTS 12.04. Deze versie wordt 5 jaar lang ondersteund met updates en heeft zijn sporen al lang en breed verdiend. En ik heb intussen wat ervaring opgedaan met de desktopversie van Ubuntu.

Ten tweede moet ik besluiten waar ik Linux ga installeren. Ik besluit een stuk op de eerste harde schijf vrij te maken. Dezelfde waarop ook Windows 7 staat. En omdat ik de server ook wil blijven gebruiken tussen de installatiefasen door zet ik Ubuntu naast Windows op de machine. Zo kan ik altijd terug, ook als het allemaal grandioos mislukt. Ik ben er ook nog bepaald niet gerust op of het allemaal wel gaat werken. Ik ben nog niet erg bedreven in het werken ‘aan de prompt’, dus een weg terug is altijd handig!

Vooruit dan maar: installeren!

Met Windows maak ik een stuk vrij op de eerste harde schijf en dan gaat de DVD met Ubuntu Server erin!

Allereerst verschijnt een scherm met de taalkeuze. Ik kies voor Engels, want vooral op een server werk ik het liefst in het Engels. Je weet vaak net wat eerder wat de programmeurs bedoelen als je het leest in het Engels. Op het volgende scherm kies ik voor ‘Install Ubuntu Server’ en daarna voor ‘Normal’, dat geeft je de mogelijkheid daarna precies in te stellen wat je nodig hebt. Verder zijn er nog een aantal wensen in te stellen met betrekking tot het toetsenbord en speciale terminalwensen met behulp van de functietoetsen die onderaan het scherm staan.

Other options

Er is ook een ‘other options’ toets voor speciale wensen. Wat ik op dit moment nog niet weet (ik leer dat later pas, via mijn Twitter vriend @wilboard, die veel meer van Linux weet dan ik) is dat ik hier een kernelparameter had moeten kiezen. Later blijkt de server vaak niet goed te booten (zwart scherm) en dat is opgelost met de noapic parameter. Maar ja, dat wist ik in deze fase nog niet!

Tenslotte kies ik nog een Taal (ja, opnieuw), een regio en een locatie en een locale zodat het systeem weet dat ik wel in het Engels communiceer, maar dat ik toch echt in Nederland zit. De daarna volgende vragen zijn eigenlijk allemaal rechttoe-rechtaan: naam van de server, user account, password, tijdzone en de vraag of ik mijn home directory wil encrypten. Handige optie wellicht, maar ik doe dat niet.

Partitioneren

Nu moet ik aangeven waar Ubuntu zal worden geïnstalleerd. Ik kies voor de optie ‘Use the largest continuous free space’, zodat zal worden geïnstalleerd in het deel dat ik daarvoor eerder heb vrijgemaakt. Vervolgens wordt aangegeven dat dat vrije deel wordt onderverdeeld in een ext4 deel (ext4 is het meest gebruikte Linux bestandssysteem) en een swap partitie. Daarna wordt het basissysteem geïnstalleerd. Er volgen nog wat simpele vraagjes en dan staat het basissysteem er op.

Software

Tot nu toe is het installeren van Linux server niet moeilijker dan het installeren van een willekeurige Windowsversie. De installer wil nu weten welke basissoftware er moet worden geïnstalleerd. Voor mij is op dit moment alleen de ‘Samba file server’ interessant. Standaard staat de ‘OpenSSH server’ ook aangevinkt. Deze server maakt het mogelijk de computer op afstand te besturen lees ik. Die nemen we dan ook maar gelijk mee. De rest heb ik vooralsnog niet nodig.

GRUB
Bootmenu

Daarna wil de installer nog weten of hij de GRUB boot loader moet laden in het master boot record. Daarmee bereik ik dat ik Windows ook altijd nog kan starten bij het starten van de machine, dus… Installeren maar! Na nog een tijdje rammelen start de server opnieuw op en verschijnt het bootmenu GRUB. Met de (default) optie bovenaan start Ubuntu Server, Windows 7 bevindt zich onderaan en daar tussenin staan nog wat opties voor speciale doeleinden.

Ingelogd!

Ik druk op <Enter>, zie een heleboel tekst voorbij rollen en dan verschijnt de inlogprompt. Ik voer naam en password in en dan ben ik ingelogd in mijn nieuwe Linux server!

Nadat ik wat van de ‘schrik’ bekomen ben pak ik de literatuur erbij die ik van tevoren heb verzameld. Een andere computer ernaast met Google of een andere zoekmachine is ook niet weg…. De server bevat alleen het hoognodige, een echte server dus, en de rest moet erbij worden geïnstalleerd.

Updaten van de software

Nadat de server is geïnstalleerd is het altijd een goed idee om de laatste updates aan te brengen. Dat geldt voor elk besturingssysteem en dus zeker ook voor Linux. De server moet natuurlijk wel een internetverbinding hebben, maar als het goed is is dat tijdens de installatie geregeld. Als je tenminste de server bedraad aan het netwerk hebt gehangen, net als ik dat heb. Normaal gesproken heeft hij dan via de DHCP server in de router een IP-adres gekregen en kan hij internet op. Om dit voor elkaar te krijgen in Ubuntu zijn maar twee commando’s nodig:

sudo apt-get update
sudo apt-get dist-update

De sudo voor elk commando zorgt ervoor dat het commando wordt uitgevoerd met ‘rootrechten’. Het is een afkorting voor ‘super user do’. Met rootrechten kan je allerlei handelingen verrichten die voor standaard gebruikers niet zijn toegestaan. Je moet dan wel eenmalig je wachtwoord opnieuw invoeren. Deze manier van werken went snel en is erg veilig!

Vast IP adres

Het systeem in nu helemaal bijgewerkt. Het volgende programma onderdeel is het instellen van een vast IP adres. Een server dient altijd een vast adres te hebben binnen een netwerk. Voor standaard computers voldoet het om een IP adres te hebben dat variëert en wordt toegewezen door de DHCP server in je router, maar dat geldt dus niet voor servers.
Om dit te bereiken dient een bestand aangepast te worden. Dat gaan we doen met de editor met de naam ‘nano’:

sudo nano /etc/network/interfaces

De regel iface eth0 inet dhcp moet vervangen worden door iface eth0 inet static, om aan te geven dat het hier om een vast IP adres gaat. Daarna moeten er nog een aantal parameters worden toegevoegd:
address <gewenst ip adres>  (bijvoorbeeld 192.168.1.5)
netmask <netwerkmasker> (veelal 255.255.255.0)
gateway <gateway adres> (vaak 192.168.1.1)
dns-nameservers <server1> <server2> (hangt van de provider af)

Instellen vast IP adres

Bestaande regels kunnen met een # aan het begin van de regel worden uitgeschakeld.
Schrijf het resultaat tenslotte weg met ctrl-O.

Zie voor een volledig bestand hiernaast. Mijn situatie wijkt iets af van de standaard, maar het principe is denk ik wel duidelijk.
Nadat het bestand is weggeschreven dient het netwerk opnieuw te worden gestart. Gebruik hiervoor het commando

sudo /etc/init.d/networking restart

Hierna heeft de server een vast IP adres.

Ietsje meer comfort

Omdat het werken ‘aan de prompt’ toch echt wel even wennen is, ga ik nu een oude bekende installeren. Iedereen die vroeger met DOS heeft gewerkt kent hem wel: Norton Commander. De filecommander die het werken onder DOS zoveel comfortabeler maakte.
In Linux heet het stukje gereedschap ‘Midnight commander’. Installeren gaat heel eenvoudig met

sudo apt-get install mc

Na korte tijd staat het programma er op en kan het vanaf de prompt worden gestart met

mc of met sudo mc.

Pas op met deze laatste. Alles wat u doet wordt uitgevoerd met de hoogste rechten….

In deze midnight commander zijn een aantal opties standaard aanwezig, zoals een viewer en een editor en er kan gemakkelijk worden gekopieerd van het ene naar het andere venster. Kortom: handiger dan direct aan de prompt!

Tot zover voor deze keer. In de volgende aflevering van deze blog ga ik onder andere (toch) een grafische omgeving installeren.