Les 3 - Linux 1/2 (Dev)
Geen voorbereiding
Lesintroductie
We zijn verheugd om Rene Grijsbach als gastspreker te hebben, die de sessie zal leiden. Het beste nieuws? Er is geen voorbereiding nodig van jouw kant—gewoon meedoen en genieten van de leerervaring.
Om de presentatie te volgen, kun je de .pdf van de slides downloaden via de volgende link: NDG Linux Unhatched.pdf.
Lesnotities
Voor deze Linux les ga je aan de slag met de Cisco 'Linux unhatched' course. Deze is online beschikbaar op netacad.com, maar in 2024/2025 minor zal workshop docent een eigen variant 'on premise - private cloud' draaien.
The DevOps way is ook 'embracing the command line', zoals je bv. op de DevOps roadmap op roadmap.sh kunt zien (zie figuur 1). We volgen deze roadmap zeker NIET geheel in deze minor, maar wel paar hoofdpunten.
Deze roadmap geeft aan dat je als je een programmeertaal kent — zoals voor alle developers geldt — dat dan Operating System (OS) kennis en specifiek Linux kennis de volgende stap is. Dus ook kennis van het gebruik van de command line ('learn to live in the terminal') en bash scripting (wk 2). En daarna door met Git en versiebeheer (onderdeel van GitOps). Opvallend is dat 'creator of Linux' Linus Torvalds (Wikimedia, 2023) ook de auteur was van Git. Dus zijn naam moet je als DevOps professional zeker kennen!
In deze les is er ook al introductie van de Linux opdracht die je in week 2 af moet hebben. Tevens demonstreert de docent hoe je een VPS kunt gebruiken/krijgen in de private cloud. Alsmede de VPN client ['Tunnelblick](https://tunnelblick.net/) die je moet installeren op je laptop/pc om vandaar bij deze omgeving te komen (i.v.m. security). Deze VPS gebruik je ook de weekopdracht 3 van de DevOps course.
Op deze omgeving is wel beperkte support, dus als hiermee problemen zijn, vallen we terug op VPS'en aan te vragen bij HAN/AIM ICT ([martin.jacobs@han.nl](mailto:martin.jacobs@han.nl martin.jacobs@han.nl)) (documenteer en meldt wel de error).
Iets over de Linux kernel, verschillende distributies en de link met Docker
Figuur 1: DevOps roadmap (deels, rode pijlen toegevoegd; (roadmap.sh, 2023))
Figuur 2: Enkele Linux distributies (roadmap.sh, 2023))
Belangrijke achtergrondinformatie voor een Linux les is ook wel te weten dat 'Linux' eigenlijk niet bestaat. Bij Linux denken we vooral aan de Linux shell die je als eindgebruiker gebruikt, de command line. Maar feitelijk is de shell de 'user interface' van de Linux software zelf: het operating system. En dat 'operating system' is weer een abstractie van de hardware die in je computer zit, e.g. CPU, geheugen, harddisk en netwerk. Deze vormen samen de 'infrastructuur' van je laptop/desktop of wat dan ook (Linux draait op heel veel devices, ook PDA's, TomTom's en ook Android wat op veel mobiele telefoons draait is Linux-based).
Figuur 2 toont een boom met hierin enkele Linux distributies. Of eigenlijk is het een omgekeerde boom ;) (tree, een relevante/veelgebruikte datastructuur in de ICT). De basis van de boom is de Linux Kernel. Dit is de gedeelde functionaliteit die alle Linux distributies delen. Maar iemand die 'Linux draait' gebruikt altijd een specifieke distributie. Dit diagram gemaakt met behulp van ChatGPT, en geeft naast naam van een distributie . Dus garantie tot de deur, maar hier is de originele 'prompt' en bron.
De '2005' Alpine is in ieder geval wel gecheckt. Dit is opvallend genoeg een aantal jaar voor het ontstaan van Docker (geboorte bij dotCloud 2010, Docker launch in 2013). Deze Alpine distributie is vooral bekend uit de Docker wereld, maar 'predate' deze dus blijkbaar wel:
“The idea was that the system was installed in memory during boot from a read-only media and that you could remove the boot media once it was booted,” explained Natanael Copa, the creator of Alpine Linux, in an interview." - TheNewstack.io
Opdracht
- Maak een Cisco account, neem de stof door en oefen. Maak tot slot de oefenvragen. Bekijk de onderwerpen waar je evt. fouten had nog een keer beter. Maak vragen totdat je denkt dat je stof beheerst. Schrijf probleempunten op voor navragen bij de docent.
Opmerkingen
Gebruik hier de online command line die Cisco je biedt. Voor een wat 'echtere' ervaring en als je op Windows werkt is het ook handig om lokaal Linux te kunnen draaien (we gaan even uit van veelgebruikte Linux distributie Ubuntu (zelf weer afgeleid van Debian)).
Twee opties:
- Installeer Docker Desktop
- Start daarmee (bv. Ubuntu) Linux via
docker run -it ubuntu:latest
(je kunt deze — na experimenteren — afsluiten met commandoexit
)
- Start daarmee (bv. Ubuntu) Linux via
- Door het gebruik en installatie/activeren van WSL 2.
- Dit is een heel stappenplan, maar huidige Docker Desktop versies werken hier ook goed mee samen, dus wel aan te raden
Opmerking: In DevOps lessen van week 2 ga je verder werken met Docker.
Quiz
Test je kennis over Linux met deze multiple choice quiz.
Hieronder een deel van de README.md
van de tool featmap op GitHub, die terug komt in één van de vragen.
Building from source and running with docker-compose
Clone the repository
git clone https://github.com/amborle/featmap.git
Navigate to the repository.
cd featmap
Let's copy the configuration files
cp config/.env .
cp config/conf.json .
Now let's build it.
docker-compose build
Startup the services, the app should now be available on the port you defined in you configuration files (default 5000).
docker-compose up -d
Leerdoelen
- Je kent de basis Linux command line commandos uit de Cisco unhatched cursus/vragenset
- Je weet wat de Linux kernel en Linux 'distro's' zijn en kunt er enkele noemen
- Je kent de naam van de originele ontwikkelaar van Linux en weet wat voor een 'git' hij is ;)