From 206be2c2423bfac8280596bfad2cedbd85812eda Mon Sep 17 00:00:00 2001 From: waldek Date: Tue, 13 Apr 2021 23:52:22 +0200 Subject: [PATCH] adds raspberry pi exersises --- modules/prerequisite/readme.md | 52 ++++++-------- modules/resources/exercises_raspberrypi.md | 84 ++++++++++++++++++++++ modules/resources/readme.md | 62 +++------------- 3 files changed, 118 insertions(+), 80 deletions(-) create mode 100644 modules/resources/exercises_raspberrypi.md diff --git a/modules/prerequisite/readme.md b/modules/prerequisite/readme.md index 70e8508..f6c501c 100644 --- a/modules/prerequisite/readme.md +++ b/modules/prerequisite/readme.md @@ -1,24 +1,35 @@ # Overview of communication channels -## Details - -* **Note:** Account creation for gitea, matrix etc -* **Id:** prerequisite.theory.communication -* **Effort:** 0.5 +Throughout this course we'll be using a chat protocol names **matrix** to stay in touch. +As matrix is a federated protocol you can create an account on quite a few different servers and still communicate together. +A server has been set up at the school and you can create an account on it by going to [this](https://riot.86thumbs.net/) url. ## Information -* [matrix login](https://riot.86thumbs.net/) -* [gitea login](https://gitea.86thumbs.net/) +* [matrix login](https://riot.86thumbs.net/) on our server * what is [matrix](https://matrix.org/docs/guides/introduction) * which [clients](https://matrix.org/clients/) can you use +# Introduction to markdown for notekeeping + +Markdown is a very simple makeup language used very extensively online and in coding projects. +You'll see it used all over github, for example the documetation of the [vim](https://github.com/vim/vim/blob/master/README.md) repository is a markdown file. +Our main reasons for using markdown are: + +* ease of syntax +* perfect compatibility with git versioning +* renders to html on most git web platforms + +## Information + +* markdown [guide](https://www.markdownguide.org/getting-started) +* basic [syntax](https://www.markdownguide.org/basic-syntax) + # Brief introdution to cross platform text editors -## Details - -* **Id:** prerequisite.theory.editors -* **Effort:** 0.5 +The computers in our classroom run Windows for which the easiest tool to write and visualise markdown is [vscode](https://code.visualstudio.com/). +On linux you can also use vscode but as markdown files are just simple text files, any text editor will do. +My personal preference is vim but use whatever you fancy. ## Information @@ -27,28 +38,11 @@ # Short introdution to git for notekeeping -## Details - -* **Note:** git tutorial -* **Id:** prerequisite.theory.git -* **Effort:** 0.8 - ## Information +* our [gitea](https://gitea.86thumbs.net/) server * getting started with [git](https://git-scm.com/book/en/v2) * standard git [gui](https://git-scm.com/book/en/v2/Appendix-A%3A-Git-in-Other-Environments-Graphical-Interfaces) * cross platorm git gui [gitkraken](https://www.gitkraken.com/) *needs account* * getting started with git [pluralsight](https://app.pluralsight.com/library/courses/getting-started-git/table-of-contents) -# Introduction to markdown for notekeeping - -## Details - -* **Note:** markdown syntax -* **Id:** prerequisite.theory.markdown -* **Effort:** 0.3 - -## Information - -* markdown [guide](https://www.markdownguide.org/getting-started) -* basic [syntax](https://www.markdownguide.org/basic-syntax) diff --git a/modules/resources/exercises_raspberrypi.md b/modules/resources/exercises_raspberrypi.md new file mode 100644 index 0000000..6d19c71 --- /dev/null +++ b/modules/resources/exercises_raspberrypi.md @@ -0,0 +1,84 @@ +# Raspberry PI exercises + +## GUI installation + +This is a bit of an *exploration* exercise. +Go to the [Raspberry PI OS](https://www.raspberrypi.org/) website and download the Desktop OS. +Find a way to flash the OS to your SD card. +There are multiple options to do so so feel free to look for the way that looks the most straight forward to you. +Once up and running have a look around the OS and see if you recognise the *desktop environment*. +Configure the desktop environment to your liking such as keyboard, language, timezone etc. +Connect to internet and perform an upgrade of the system so that all software is up to date. +(You can connect either over Wifi of over ethernet, your choice.) +Was everything already up to date? +If not, why would a fresh install have updates? +Do you recognise any of the packages that need upgrading? + +I would like you to take some notes concerning the topics above, preferably with a markdown file on your gitea account. (you'll need the notes later for debrief) +You might have to install some things, maybe not. +Which text editor did you choose? +Are you visualising your markdown file before pushing? +If so, how are you doing this? + +Can you tell me a bit more about this computer? +Some *details* about the system such as RAM, CPU type/count, how many users are known to the system, ip address, kernel version, temperature, etc. (the more the better) +Which programs are you using to find out about the system? +Are there multiple ways of discovering this information? + +### Extra challenge + +Can you connect to our matrix server and send us a message from this computer? + +For the next part you will have to setup the same Raspberry PI but without graphical interface. +I advise you to make do some research on how to configure all the system setting you did but *without* a GUI. +Best to keep track of this research. +Power down the PI in a *clean* manner and move on to the next challenge. + +## Headless installation + +On the same website as before you can also download an image without a desktop environment. +Which one would it be? +Find it, download it and flash it to your sd card. +Once the PI is up and running log in and find a way to connect to the internet over Wifi and confirm you have an actual internet connection. +You can do this any way you deem fit but please keep a note on how you do it and if you know multiple ways, please write them down. +Clone the repository you made during the previous install to this one and note some of the differences you spot between this installation and the previous one. +Is this system up to date? +If not, is it a big difference? +What services are running? +What's the memory usage difference? +How annoying is multitasking on this installation? +Can you think of an *easy* way to be more productive? + +Next up I would like you to install an ssh server on this Raspberry PI. +Confirm it's running and accepting connections. +(I'm very willing to debug your connection from my computer but you'll have to tell me what to do) +You can again do this in any way you can think of but keep track of what works and what doesn't. + +Your next step will be to log into this machine without screen and keyboard connected so write down any information you might need to do so. +How will you find your Raspberry PI on the network? + +Once you're confident the ssh server is up and running turn off the Raspberry PI, again in a *clean* manner, and disconnect the screen and keyboard. + +## Time go fully headless + +Get your windows machine back up and running and log into your Raspberry PI over ssh. +Does windows have a built in ssh client? +You might need to download one. + +Are you sure this is your Raspberry PI? +Can you *accidentally* log into the wrong PI? +How would you make it more clear for yourself (and others) that your PI is yours? + +If you made it this far you should know your IP address and should have noticed we are not in the same network as Steve's network. +On the router between our network and Steve's there is a webserver running and this webserver is serving a file called `accounts.csv`. +Please download it and create user accounts for all these people. +The username should be the `$USERNAME` part of their matrix handle and as a password their `$FIRSTNAME$LASTNAME`. + +### Extra challenge + +If the lack of multitasking is driving you crazy, how would you go about fixing it? +Can you connect to our matrix server and send us a message from this computer? + +How can we exchange files between this computer and our windows machine? +Some sort of FTP server would be handy no? +Can you set one up for all our users? diff --git a/modules/resources/readme.md b/modules/resources/readme.md index 327826e..4550944 100644 --- a/modules/resources/readme.md +++ b/modules/resources/readme.md @@ -1,61 +1,21 @@ -## MR05/XX Introduction to hardware components of servers and clients +# MR04/R71 Introduction to linux -* **Note:** In this module we will focus on hardware and the exposure to Raspberry Pi's as an alternative target platform -* **Id:** resources.hardware -* **Effort:** 2.5 +## Very brief introdution to bandit and SSH -### Group deployment of RPI clients and headless servers +## Introduction to the shell -* **Id:** resources.hardware.theory.deployment -* **Effort:** 1.0 +## Quick dive into a GUI installation -### Introduction to Raspberry Pi (ARM vs x86) +## History of unix/linux and Debian -* **Id:** resources.hardware.theory.rpi -* **Effort:** 1.0 +## Introduction to vim -## MR04/R71 Introduction to linux +# MR05/XX Introduction to hardware components of servers and clients -* **Note:** Introduction to the history and usage of Linux as an OS with both graphical and shell interfaces. -* **Id:** resources.linux -* **Effort:** 5.0 +## Introduction to Raspberry Pi (ARM vs x86) -### Very brief introdution to bandit and SSH +## Group deployment of RPI clients and headless servers -* **Note:** bandit -* **Id:** resources.linux.theory.bandit -* **Effort:** 0.5 - -### Introduction to the shell - -* **Note:** Based on Ryan's tutorials -* **Id:** resources.linux.theory.cli -* **Effort:** 1.0 - -### Quick dive into a GUI installation - -* **Id:** resources.linux.theory.gui -* **Effort:** 0.5 - -### History of unix/linux and Debian - -* **Id:** resources.linux.theory.intro -* **Effort:** 0.5 - -### Introduction to vim - -* **Note:** complete vimtutor and create a custom vimrc -* **Id:** resources.linux.theory.vimtutor -* **Effort:** 0.5 - -### MR03/R61 Introduction to centralized administration of networking services - -* **Id:** resources.networking.services -* **Effort:** 7.5 - -### Debian implementations of essential services - -* **Note:** Focus on DHCP, DNS, SFTP, SSH, CUPS, LDAP following chapter 10 and chapter 11 of the Debian system administrator handbook -* **Id:** resources.networking.services.theory.debian -* **Effort:** 2.5 +# MR03/R61 Introduction to centralized administration of networking services +## Debian implementations of essential services