adds raspberry pi exersises

This commit is contained in:
waldek 2021-04-13 23:52:22 +02:00
parent e897a54d29
commit 206be2c242
3 changed files with 118 additions and 80 deletions

View File

@ -1,24 +1,35 @@
# Overview of communication channels # Overview of communication channels
## Details 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.
* **Note:** Account creation for gitea, matrix etc 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.
* **Id:** prerequisite.theory.communication
* **Effort:** 0.5
## Information ## Information
* [matrix login](https://riot.86thumbs.net/) * [matrix login](https://riot.86thumbs.net/) on our server
* [gitea login](https://gitea.86thumbs.net/)
* what is [matrix](https://matrix.org/docs/guides/introduction) * what is [matrix](https://matrix.org/docs/guides/introduction)
* which [clients](https://matrix.org/clients/) can you use * 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 # Brief introdution to cross platform text editors
## Details 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.
* **Id:** prerequisite.theory.editors My personal preference is vim but use whatever you fancy.
* **Effort:** 0.5
## Information ## Information
@ -27,28 +38,11 @@
# Short introdution to git for notekeeping # Short introdution to git for notekeeping
## Details
* **Note:** git tutorial
* **Id:** prerequisite.theory.git
* **Effort:** 0.8
## Information ## Information
* our [gitea](https://gitea.86thumbs.net/) server
* getting started with [git](https://git-scm.com/book/en/v2) * 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) * 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* * 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) * 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)

View File

@ -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?

View File

@ -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 ## Very brief introdution to bandit and SSH
* **Id:** resources.hardware
* **Effort:** 2.5
### Group deployment of RPI clients and headless servers ## Introduction to the shell
* **Id:** resources.hardware.theory.deployment ## Quick dive into a GUI installation
* **Effort:** 1.0
### Introduction to Raspberry Pi (ARM vs x86) ## History of unix/linux and Debian
* **Id:** resources.hardware.theory.rpi ## Introduction to vim
* **Effort:** 1.0
## 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. ## Introduction to Raspberry Pi (ARM vs x86)
* **Id:** resources.linux
* **Effort:** 5.0
### Very brief introdution to bandit and SSH ## Group deployment of RPI clients and headless servers
* **Note:** bandit # MR03/R61 Introduction to centralized administration of networking services
* **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
## Debian implementations of essential services