Aan de slag met Docker

Docker is een manier om een server of computer op de telen in kleine stukjes, containers genaamd. Het Idee van docker is om een programma te maken dat overal op draait, ongeacht de onderligende omgeving (doordat alles in een container verwerkt zit). Docker is ook zeer schaalbaar, omdat je bv bepaalde software over meerdere servers of nodes kan laten draaiten.

Als docker is geïnstalleerd dan kan je beginnen met het aanmaken van containers. Ik gebruik docker zelf vooral om een soort van “virtuele machine” te kunnen draaien op zwakke hosts zoals mijn raspberrypi’s. als je in een terminal het commando docker info uitvoert dan zie je hoeveel containers en images je hebt.

Images zijn de basissystemen. Je hebt er van besturingssystemen (zoals Debian of Ubuntu), maar ook van software (denk aan apache, mysql, php). Hierdoor kan je een applicatie maken die gebruik maakt van meerdere containers (voor elke service een andere container). Hierdoor is docker zeer veilig. Images kan je downloaden met docker pull <imagename>, om bv ubuntu te downloaden gebruik je docker pull ubuntu.

Om een docker container te maken gebruik je docker run <image> <parameters>. Ik maak mijn containers meestal met ubuntu, en ik geef er de mogelijkheid aan toe om een console te openen (-it), en ik open enkele poorten. Dit doe ik met -p <hostpoort>:<containerpoort>. Deze kan je herhalen om meerdere poorten open te zetten.

Docker heeft ook volumes. Met volumes kan je bv met meerdere containers aan dezelfde data. Hiermee kan je ook aan de data van buitenaf de container. Dit doe je met -v <hostpad>:<containerpad>.

Met deze informatie kan je hoogstwaarschijnlijk al aan de slag met docker. Docker is zeer interessant en het is dus zeer handig om er meer over te weten.

PureFTP Installatie op een Raspberrypi

om gemakkelijk bestanden over te brengen naar je raspberrypi kan je gebruik maken van ftp. Hiervoor gaan we pure-ftpd gebruiken wat je toelaat om ‘virtuele’ gebruikers toe te voegen en te verwijderen.

Pureftpd instaleren

pure-ftpd kan eenvoudig geïnstalleerd worden met

sudo apt-get install pure-ftpd

Dan moet je nog de ftpgroup gebruikersgroep en ftpuser gebruiker aanmaken. Deze gebruiker mag niet kunnen inloggen.

sudo groupadd ftpgroup sudo useradd ftpuser -g ftpgroup -s /sbin/nologin -d /dev/null

FTP map en virtuele gebruiker instellen.

om een FTP map aan te maken gebruik je als root (sudo)

mkdir /FTP sudo chown -R ftpuser:ftpgroup /FTP

om een gebruiker aan te maken bv ‘upload’ kan je

sudo pure-pw useradd upload -u ftpuser -g ftpgroup -d /FTP -m

gebruiken. Je zal wel nog een password moeten instellen. Als je een andere gebruiker wilt toevoegen, verander je gewoon ‘upload’ naar de gewenste gebruikersnaam. Als dat gedaan is, moet je een virtuele gebruikersdatabase aanmaken. Dit zal je telkens je een gebruiker maakt/verwijderd moeten doen.

sudo pure-pw mkdb

Er moet ook nog een auth-methode worden gezet

sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/60puredb

Nu kan je pure-ftpd herstarten met

sudo service pure-ftpd restart

Test het met een programma zoals filezilla

Extra instellingen

Er zijn een heleboel extra instellingen die je kan aanpassen:

sudo nano /etc/pure-ftpd/conf/ChrootEveryone

en zet er ‘yes’. (en dan ctrl+X, y en enter om op te slaan). Verander ‘ChrootEveryone’ met het volgende en zet er de overeenkomende waarden er in

in ‘NoAnonymous’ zet je ‘yes’ in ‘AnonymousCantUpload’ zet je ‘yes’ in ‘AnonymousCanCreateDirs’ zet je ‘no’ in ‘DisplayDotFiles’ zet je ‘no’ in ‘DontResolve’ zet je ‘yes’ in ‘ProhibitDotFilesRead’ zet je ‘yes’ in ‘ProhibitDotFilesWrite’ zet je ‘yes’ in ‘FSCharset’ zet je ‘UTF-8’

Als je het nu herstart en inlogt met de ‘upload’ gebruiker kan je bestanden overzetten, als je inlogt met de ‘pi’ gebruiker kan je in de home-map van de pi user.

sudo service pure-ftpd restart

Verbind met je raspberrypi vanaf een webbrowser (webmin tutorial)

Je kan je raspberrypi op verschillende manieren beheren. Met VNC en SSH zijn de meest gebruikte, maar deze vereisen dat er een programma is geïnstalleerd op de computer die je gebruikt om met je raspberrypi verbinding te maken. In deze tutorial leg ik uit hoe je webmin instelt om verbinding te maken via een web controle paneel.

Lees verder

Raspberrypi IRC server tutorial

Irc is een soort chat, en in deze tutorial ga ik uitleggen hoe je zelf zo’n server maakt. Als je zelf geen server wilt maken, kan je ook altijd mijn irc server joinen op (edit: mijn irc server is gestopt).

De software installeren

Update eerst je pi met

sudo apt-get update

Dan kan je de Server software installeren. Hiervoor gaan we IRCD-Hybrid gebruiken. Installeer het als volgt:

sudo apt-get install ircd-hybrid

De server instellen

Om de server in te stellen, zullen we een passwoord moeten maken. Dat kan je doen met

/usr/bin/mkpasswd password

Waar je password veranderd door het dor jou gekozen wachtwoord. Sla dit op voor later.

Dan moet je de IRC server aanpassen. Dat kan je doen door de configuratie bestanden te openen met

sudo nano /etc/ircd-hybrid/ircd.conf

Eens geopend moet je volgende gegevens aanpassen:

name = "hybrid8.debian.local";

Dit kan je veranderen door de naam die je aan je IRC server wilt geven. Daarna moet je

description = "ircd-hybrid 8.1-debian";

Veranderen met de omschrijving die je aan je server wilt geven.

Dan moet je nog deze gegevens nog eens ingeven bij:

network_name = "debian";
network_desc = "This is My Network";

Dan moet je

max_clients = 512;

vervangen door

max_clients = 128;

Operator status instellen

in het configuratiebestand zoek het “operator {” stuk en verwijder de #’s, dit zul je ook bij alle opties moeten doen die je hier aanpast. Zoek dan “sheep” en verander dat naar “op”, dan verander je

user = "*@192.0.2.240/28";

met

user = "*@*";

en

password = "xxxxxxxxxxxxx";

met

password = "Verander met het passwoord van daarnet";

nu kun je opslaan en aflsuiten.

nu kun je de server herstarten met

sudo /etc/init.d/ircd-hybrid restart

Nu kan je verbinden met een programma zoals hexchat en Xchat.

Eens je verbonden bent kan je kanalen aanmaken door een leeg kanaal te joinen. Inloggen als op kan met “/oper op”. Dan zal je je passwoord moeten invullen. Het is ook belangrijk te weten dat als je niet in een bepaald kanaal zit je geen meldingen ontvangt. Daardoor is het gebruikelijk dat mensen “idle” in een kanaal zijn. Op die manier kunnen ze berichten later zien.

Kanaal instellingen

Om je kanaal ( als je op bent, dat gebeurt bv als je de eerste bent die een kanaal binnenkomt) kan je een topic instellen met/topic <topic tekst>  en het privé maken met bv /mode +i om het invite only te maken (en /mode -i om de status verwijderen). Je kan mensen inviten met /invite <nickname>. Je kan ook een paswoord instellen met /mode +k <pass> (en het passwoord verwijderen met /mode -k.

Om in te loggen als irc-operator kan je /opper op gebruiken, waar je vervangt met jouw paswoord dat je hiervoor hebt ingesteld.

Raspberrypi Nas tutorial

In deze tutorial leg ik uit hoe je een nas maakt van je Raspberrypi.

1. De harde schijf koppelen.

Zoek een gepast opslagmedium, een usb kan voldoende zijn en sluit het aan op de pi.

Open de terminal op de raspberrypi (of gebruik ssh)
Eerst gaan we updaten:

sudo apt-get update
sudo apt-get upgrade

Dan gaan we NTFS ondersteuning moeten toevoegen. Dat kan je doen door ntfs-3g te installeren met het volgende commando:

sudo apt-get install ntfs-3g

Dan gaan we onze schijf moeten vinden in het systeem, dat kunnen we doen met het volgende commando:

sudo fdisk -l

Er zouden 2 schijven moeten komen, tenzij je er meer dan 1 hebt aangesloten.

de sd kaart van de pi (/dev/mcbblkop1), deze kan je negeren ,en /dev/sda1, de schijf die je er zelf hebt aan gekoppeld.

Voor we de schijven kunnen koppelen, zullen we een plek moeten maken. Ik ga hiervoor /media/nasdisk1 gebruiken.

sudo mkdir /dev/nasdisk1

Nu gaan we een gebruiker moeten toevoegen waarmee we gaan inloggen. je kan “jouwgebruiker” in de voorbeelden vervangen door je eigen gebruikersnaam!

sudo useradd jouwgebruiker -m -G users
sudo passwd jouwgebruiker

Je zult je passwoord 2 keer moeten ingeven, en je zult het niet zien terwijl je het ingeeft, dat is voor veiligheidsredenen.

Dan zul je het gid, en uid moeten zoeken van je gebruiker, dat kan met:

id -g jouwgebruiker
id -u jouwgebruiker

de eerste is voor het gid, de 2e voor uid.

Nu gaan we het fstab bestand van de pi aanpassen. dat kan met het volgende commando:

sudo nano /etc/fstab

voeg de volgende lijn toe aan het einde. verander /dev/sda1 door wat je schijf was in het begin. en verander het uid en gid ook.

/dev/sda1 /media/NASHDD1 auto nofail,uid=enter_uid_here,gid=enter_gid_here,noatime 0 0

Herstart de pi en de schijven zullen automatisch gemount worden met de juiste rechten.

Nu kunnen we verder gaan met het instellen van de samba server.

sudo mkdir /media/nasdisk1/share

De Samba server opstellen

Eerst zullen we de samba server moeten downloaden, dat kan met het volgende commando:

sudo apt-get install samba samba-common-bin

En voor het geval we een fout maken, maken we een back-up van het configuratiebestand van samba:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.old

Laten we nu het config bestand aanpassen met

sudo nano /etc/samba/smb.conf

Daar gaan we een aantal dingen moeten aanpassen. Eerst zullen we de comment (#) moeten verwijderen van de sercuryity=user regel.

Dan zullen we onze schijf moeten toevoegen aan het configuratie bestand:

[NAS]
comment = NAS Folder
path = /media/nasdisk1
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
read only = no</code></pre>

De [NAS] is hoe we willen dat hij word weergegeven, wil je hem een andere naam geven, dan kun je “NAS” binnen de [] vervangen door de naam die jij wilt.

De Comment is een commentaar die bij de share komt te staan

path is het pad naar de map die we willen delen.

de valid users is een lijst met alle gebruikers die kunnen inloggen

de force group zorgt ervoor dat enkel gebruikers van die groep kunnen verbinden.

directory mask zorgt voor de rechten op de schijf.

en readonly zorgt er dan voor dat de server enkel leesbaar is, dus in dit geval no om hem ook schrijfbaar te maken.

Nu zul je de server moeten herstarten met:

sudo /etc/init.d/samba restart

Uiteindelijk zul je de gebruiker moeten toevoegen aan samba:

sudo smbpasswd -a jouwgebruiker

Verbinden.

Om met je nas te verbinden kan je in Windows bij netwerk gaan, dan zal je het zien staan, en op Mac/Linux, verbinden met een server, en dan smb://123.456.789.123/NAS (hier moet je 123.456.789.123 vervangen door het ip adres van je pi, en /NAS als je het een andere naam hebt gegeven.)

Dat is het. Hopelijk kun je nu verbinden met je nas, als je problemen hebt met het kopiëren van bestanden naar de schijf, dan zijn de rechten fout.