From 6e011ab3997732cc6fbe924b8b1b5284d53f0cf2 Mon Sep 17 00:00:00 2001 From: waldek Date: Wed, 31 Mar 2021 13:52:10 +0200 Subject: [PATCH] start restructuring --- certificates/essentials/exercises.md | 232 ++++++++++++++ .../prerequisite/readme.md | 0 .../qualifying/readme.md | 0 .../resources/readme.md | 0 personal.md | 10 - readme.md | 301 +----------------- 6 files changed, 236 insertions(+), 307 deletions(-) create mode 100644 certificates/essentials/exercises.md rename classes/prerequisite.md => modules/prerequisite/readme.md (100%) rename classes/qualifying.md => modules/qualifying/readme.md (100%) rename classes/resources.md => modules/resources/readme.md (100%) delete mode 100644 personal.md diff --git a/certificates/essentials/exercises.md b/certificates/essentials/exercises.md new file mode 100644 index 0000000..b7842e4 --- /dev/null +++ b/certificates/essentials/exercises.md @@ -0,0 +1,232 @@ +# Linux essentials [source](https://github.com/sudomateo/lsa-i/tree/master/docs/linux-essentials) + +1. Change into the `/tmp` directory using the command `cd /tmp`. +2. Confirm you are in the `/tmp` directory using the command `pwd`. +3. Change back into your home directory using the command `cd`. +4. Confirm you are in your home directory using the command `pwd`. +5. Print the text `This is file01.` to the file `/tmp/file01` using the command `echo "This is file01." > /tmp/file01`. +6. Confirm the `/tmp/file01` file has the correct content using the command `cat /tmp/file01`. +7. Append the text `This is appended.` to the file `/tmp/file01` using the command `echo "This is appended." >> /tmp/file01`. +8. Confirm the `/tmp/file01` file has the updated content using the command `cat /tmp/file01`. +9. Send the output of the `printenv` command to a new file named `/tmp/myenv` using the command `printenv > /tmp/myenv`. +10. View the first five lines of the `/tmp/myenv` file using the command `head -n 5 /tmp/myenv`. +11. Declare and export a new environment variable with the command `export COURSE_NAME="LSA1"`. +12. Verify your newly exported environment variable exists using the command `printenv | grep COURSE_NAME`. +13. Practice these and other commands until you feel comfortable with them. +14. When finished, use the `exit` command to exit the shell and logout. + +# Managing files [source](https://lsa-i.sudomateo.com/managing-files/) + +1. Create a directory for these exercises by using the command `mkdir /tmp/managing-files`. +2. Change into the newly created directory using the command `cd /tmp/managing-files`. +3. Create six empty files using the command `touch file{01..06}`. +4. Run each of the following commands to change the permissions of each file. See if you can guess what the permissions will be before you run each command: + 1. `chmod 764 file01` + 2. `chmod 400 file02` + 3. `chmod 651 file03` + 4. `chmod 4744 file04` + 5. `chmod 4664 file06` + 6. `chmod 1444 file06` +5. Run the command `ls -l`. You should see output similar to the following. +``` +$ ls -l +total 0 +-rwxrw-r--. 1 vagrant vagrant 0 Aug 23 01:10 file01 +-r--------. 1 vagrant vagrant 0 Aug 23 01:10 file02 +-rw-r-x--x. 1 vagrant vagrant 0 Aug 23 01:10 file03 +-rwsr--r--. 1 vagrant vagrant 0 Aug 23 01:10 file04 +-rw-rw-r--. 1 vagrant vagrant 0 Aug 23 01:10 file05 +-r--r--r-T. 1 vagrant vagrant 0 Aug 23 01:10 file06 +``` +6. Run the commmand `tar -zcvf /tmp/managing-files.tgz -C /tmp/managing-files .` to create an archive named `/tmp/managing-files.tgz` of all the files in the `/tmp/managing-files` directory. +7. Run the command `rm -f file0*` to remove all six files that were created earlier. Verify the files were removed using the command `ls -l`. +8. Run the command `tar -zxvf /tmp/managing-files.tgz -C /tmp/managing-files` to extract the contents of your archive back into the `/tmp/managing-files` directory. +9. Verify the files were restored correctly using the command `ls -l`. You should see output similar to the following. **NOTE: `tar` does not restore special permissions (SUID, SGID, sticky bit) so you will only see the read, write, and execute permissions.** +``` +$ ls -l +total 0 +-rwxrw-r--. 1 vagrant vagrant 0 Aug 23 01:10 file01 +-r--------. 1 vagrant vagrant 0 Aug 23 01:10 file02 +-rw-r-x--x. 1 vagrant vagrant 0 Aug 23 01:10 file03 +-rwxr--r--. 1 vagrant vagrant 0 Aug 23 01:10 file04 +-rw-rw-r--. 1 vagrant vagrant 0 Aug 23 01:10 file05 +-r--r--r--. 1 vagrant vagrant 0 Aug 23 01:10 file06 +``` +10. Practice these and other commands until you feel comfortable with them. +11. When finished, use the `exit` command to exit the shell and logout. + +# Managing software [source](https://lsa-i.sudomateo.com/managing-software/) + +1. Install the `screen` package using the command `sudo yum install screen`. Press ++y++ if prompted. +2. Verify the screen package is installed using the command `sudo yum list installed | grep -i screen`. You should see the matching output. +3. Remove the `screen` package using the command `sudo yum remove screen`. +4. Verify the screen package is removed using the command `sudo yum list installed | grep -i screen`. You should see no matching output. +5. Run the command `ps aux` to view all of the processes currently executing on the system. +6. Run the command `top` to view all of the processes and their resource usage. Notice how the output refreshed every 2 seconds. Press ++q++ to quit when done looking around. +7. Run the command `sleep 60`. Press ++ctrl+c++ to quit the command early. +8. Run the command `sleep 15 &` to run `sleep` in the background. Run the `jobs` command to verify the background command is still running. Wait for 15 seconds and run the `jobs` command again to verify that the job is no longer executing in the background. +9. Run the command `sleep 600 &` to run the `sleep 600` command in the background. You will be shown the PID of the background process. Keep a note of this for the next steps. + 1. Verify the PID exists using the command `ps aux | grep PID` where `PID` is the PID from earlier. + 2. Use the `kill -15 PID` command where `PID` is the PID from earlier to send a `SIGTERM` command to that process. + 3. Run the `jobs` command to verify your background process was terminated. +10. Run the command `sleep 444 &` to run the `sleep 444` command in the background. You will be shown the PID of the background process. Keep a note of this for the next steps. + 1. Verify the PID exists using the command `ps aux | grep PID` where `PID` is the PID from earlier. + 2. Use the `kill -9 PID` command where `PID` is the PID from earlier to send a `SIGKILL` command to that process. + 3. Run the `jobs` command to verify your background process was killed. +11. Run the command `sudo yum install epel-release` to install the EPEL repository. +12. Run the command `sudo yum install nginx` to install the nginx webserver. Press ++y++ if prompted. +13. Run the command `sudo systemctl status nginx` to see the status of the nginx webserver. It should show inactive or dead. +14. Run the command `sudo systemctl start nginx` to start the nginx webserver. +15. On your local workstation, open a web browser and navigate to `http://127.0.0.1:8080`. You should see an nginx test page. +16. Run the command `sudo systemctl stop nginx` to stop the nginx webserver. +17. Try to reload the web page on your local workstation. It should not load this time. +18. Verify the nginx service is not running using the command `sudo systemctl status nginx`. +19. Practice these and other commands until you feel comfortable with them. +20. When finished, use the `exit` command to exit the shell and logout. + +# Configuring hardware [source](https://lsa-i.sudomateo.com/configuring-hardware/) + +1. Drop down to the `root` user using the command `sudo su -`. +2. Verify the `/dev/sdb` and `dev/sdc` devices are attached to your system by running the command `lsblk`. You should see output similar to the following: +``` +[root@lsa-i ~]# lsblk +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT +sda 8:0 0 40G 0 disk +├─sda1 8:1 0 1M 0 part +├─sda2 8:2 0 1G 0 part /boot +└─sda3 8:3 0 39G 0 part + ├─VolGroup00-LogVol00 253:0 0 37.5G 0 lvm / + └─VolGroup00-LogVol01 253:1 0 1.5G 0 lvm [SWAP] +sdb 8:16 0 1G 0 disk +sdc 8:32 0 1G 0 disk +``` +3. Run the command `fdisk /dev/sdb` to begin formatting the device `dev/sdb`. Follow the subtasks below to format the device with 1 partition that takes up all the space: + 1. Type `n` and hit ++enter++ to create a new partition. + 2. Type `p` and hit ++enter++ to make this a primary partition. + 3. Type `1` and hit ++enter++ to make this primary partition the first partition on this device. + 4. Hit ++enter++ to accept the default first sector. + 5. Hit ++enter++ to accept the default last sector. + 6. Type `p` and hit ++enter++ to print the proposed partition changes. You should see the partition `/dev/sdb1`. + 7. Type `w` and hit ++enter++ to write these changes to the device and exit. +4. Verify the `/dev/sdb1` partition was created successfully by running the command `lsblk`. You should see output similar to the following: +``` +[root@lsa-i ~]# lsblk +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT +sda 8:0 0 40G 0 disk +├─sda1 8:1 0 1M 0 part +├─sda2 8:2 0 1G 0 part /boot +└─sda3 8:3 0 39G 0 part + ├─VolGroup00-LogVol00 253:0 0 37.5G 0 lvm / + └─VolGroup00-LogVol01 253:1 0 1.5G 0 lvm [SWAP] +sdb 8:16 0 1G 0 disk +└─sdb1 8:17 0 1023M 0 part +sdc 8:32 0 1G 0 disk +``` +5. Run the command `mkfs.xfs /dev/sdb1` to create an XFS file system on the `/dev/sdb1` partition. +6. Run the command `lsblk -f` to list the UUID and file system type of the `/dev/sdb1` partition. You'll need this information for the `/etc/fstab` file. +7. Run the command `mkdir /mnt/exercise01` to create a directory to use for mounting the `/dev/sdb1` partition. +8. Add an entry to the `/etc/fstab` file to mount your `/dev/sdb1` device to the `/mnt/exercise01` directory. Your new entry should be similar to the following: +``` +UUID= /mnt/exercise01 xfs defaults 0 2 +``` +9. Run the command `mount -a` to read the `/etc/fstab` file and mount all currently unmounted devices. +10. Verify the `/dev/sdb1` partition was mounted successfully by running the `lsblk` command. You should see output simiar to the following: +``` +[root@lsa-i ~]# lsblk +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT +sda 8:0 0 40G 0 disk +├─sda1 8:1 0 1M 0 part +├─sda2 8:2 0 1G 0 part /boot +└─sda3 8:3 0 39G 0 part + ├─VolGroup00-LogVol00 253:0 0 37.5G 0 lvm / + └─VolGroup00-LogVol01 253:1 0 1.5G 0 lvm [SWAP] +sdb 8:16 0 1G 0 disk +└─sdb1 8:17 0 1023M 0 part /mnt/exercise01 +sdc 8:32 0 1G 0 disk +``` +11. Run the command `df -h` to see the current disk usage of the system. Take note of the value in the Used column for `/dev/sdb1`. My output is below. +``` +[root@lsa-i ~]# df -h +Filesystem Size Used Avail Use% Mounted on +/dev/mapper/VolGroup00-LogVol00 38G 823M 37G 3% / +devtmpfs 910M 0 910M 0% /dev +tmpfs 920M 0 920M 0% /dev/shm +tmpfs 920M 8.5M 911M 1% /run +tmpfs 920M 0 920M 0% /sys/fs/cgroup +/dev/sda2 1014M 63M 952M 7% /boot +tmpfs 184M 0 184M 0% /run/user/1000 +/dev/sdb1 1020M 33M 988M 4% /mnt/exercise01 +``` +12. Run the command `dd bs=1M count=50 if=/dev/urandom of=/mnt/exercise01/myfile` to create a file /mnt/exercise01/myfile with a size of around 50 MiB. This command may take a few seconds to run. +13. Run the command `df -h` to see the current disk usage of the system. Take note of the value in the Used column for `/dev/sdb1`. Notice how the value has increased by roughly 50 MiB. My output is below. +``` +[root@lsa-i ~]# df -h +Filesystem Size Used Avail Use% Mounted on +/dev/mapper/VolGroup00-LogVol00 38G 823M 37G 3% / +devtmpfs 910M 0 910M 0% /dev +tmpfs 920M 0 920M 0% /dev/shm +tmpfs 920M 8.5M 911M 1% /run +tmpfs 920M 0 920M 0% /sys/fs/cgroup +/dev/sda2 1014M 63M 952M 7% /boot +tmpfs 184M 0 184M 0% /run/user/1000 +/dev/sdb1 1020M 83M 938M 9% /mnt/exercise01 +``` +14. Run the command `fdisk /dev/sdc` to begin formatting the device `/dev/sdc`. Follow the subtasks below to format the device with 2 partitions with 256 MiB and 512 MiB respectively: + 1. Type `n` and hit ++enter++ to create a new partition. + 2. Type `p` and hit ++enter++ to make this a primary partition. + 3. Type `1` and hit ++enter++ to make this primary partition the first partition on this device. + 4. Hit ++enter++ to accept the default first sector. + 5. Type `+256M` and hit ++enter++ to give the partition a size of 256 MiB. + 6. Type `p` and hit ++enter++ to print the proposed partition changes. You should see the partition `/dev/sdc1`. + 7. Type `n` and hit ++enter++ to create another new partition. + 8. Type `p` and hit ++enter++ to make this a primary partition. + 9. Type `2` and hit ++enter++ to make this primary partition the second partition on this device. + 10. Hit ++enter++ to accept the default first sector. + 11. Type `+512M` and hit ++enter++ to give the partition a size of 512 MiB. + 12. Type `p` and hit ++enter++ to print the proposed partition changes. You should see the partition `/dev/sdc2`. + 13. Type `w` and hit ++enter++ to write these changes to the disk and exit. +15. Verify the `/dev/sdc1` and `/dev/sdc2` partitions were created successfully by running the command `lsblk`. You should see output similar to the following: +``` +[root@lsa-i ~]# lsblk +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT +sda 8:0 0 40G 0 disk +├─sda1 8:1 0 1M 0 part +├─sda2 8:2 0 1G 0 part /boot +└─sda3 8:3 0 39G 0 part + ├─VolGroup00-LogVol00 253:0 0 37.5G 0 lvm / + └─VolGroup00-LogVol01 253:1 0 1.5G 0 lvm [SWAP] +sdb 8:16 0 1G 0 disk +└─sdb1 8:17 0 1023M 0 part /mnt/exercise01 +sdc 8:32 0 1G 0 disk +├─sdc1 8:33 0 256M 0 part +└─sdc2 8:34 0 512M 0 part +``` +16. Run the command `mkfs.ext4 /dev/sdc1` to create an EXT4 file system on the `/dev/sdc1` partition. +17. Run the command `mkfs.xfs /dev/sdc2` to create an XFS file system on the `/dev/sdc2` partition. +18. Run the command `lsblk -f` to list the UUIDs and file system types of the `/dev/sdc1` and `/dev/sdc2` partitions. You'll need this information for the `/etc/fstab` file. +19. Run the command `mkdir /mnt/small` to create a directory to use for mounting the `/dev/sdc1` partition. +20. Run the command `mkdir /mnt/large` to create a directory to use for mounting the `/dev/sdc2` partition. +21. Add two entries to the `/etc/fstab` file to mount your `/dev/sdc1` and `/dev/sdc2` devices to the `/mnt/small` and `/mnt/large` directories respectively. Your new entries should be similar to the following: +``` +UUID= /mnt/small ext4 defaults 0 2 +UUID= /mnt/large xfs defaults 0 2 +``` +22. Run the command `mount -a` to read the `/etc/fstab` file and mount all currently unmounted devices. +23. Verify the `/dev/sdc1` and `/dev/sdc2` partitions were mounted successfully by running the `lsblk` command. You should see output simiar to the following: +``` +[root@lsa-i ~]# lsblk +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT +sda 8:0 0 40G 0 disk +├─sda1 8:1 0 1M 0 part +├─sda2 8:2 0 1G 0 part /boot +└─sda3 8:3 0 39G 0 part + ├─VolGroup00-LogVol00 253:0 0 37.5G 0 lvm / + └─VolGroup00-LogVol01 253:1 0 1.5G 0 lvm [SWAP] +sdb 8:16 0 1G 0 disk +└─sdb1 8:17 0 1023M 0 part /mnt/exercise01 +sdc 8:32 0 1G 0 disk +├─sdc1 8:33 0 256M 0 part /mnt/small +└─sdc2 8:34 0 512M 0 part /mnt/large +``` +24. Practice these and other commands until you feel comfortable with them. You'll need to run `vagrant destroy` and then `vagrant up` to reset your virtual machine if you wish to do these exercises over. +25. When finished, use the exit command to exit the shell and logout. diff --git a/classes/prerequisite.md b/modules/prerequisite/readme.md similarity index 100% rename from classes/prerequisite.md rename to modules/prerequisite/readme.md diff --git a/classes/qualifying.md b/modules/qualifying/readme.md similarity index 100% rename from classes/qualifying.md rename to modules/qualifying/readme.md diff --git a/classes/resources.md b/modules/resources/readme.md similarity index 100% rename from classes/resources.md rename to modules/resources/readme.md diff --git a/personal.md b/personal.md deleted file mode 100644 index f377788..0000000 --- a/personal.md +++ /dev/null @@ -1,10 +0,0 @@ -## Follow up of personal project - -* **Id:** personal_project.followup -* **Effort:** 2.0 - -## Presentation of personal projects - -* **Id:** personal_project.presentation -* **Effort:** 1.0 - diff --git a/readme.md b/readme.md index e5fec34..b33a72d 100644 --- a/readme.md +++ b/readme.md @@ -1,300 +1,7 @@ ---- +# Bruxelles Formation - Linux course -# Prerequisite Modules -* **Note:** Not part of the reference but essential for the course. -* **Id:** prerequisite -* **Effort:** 3.5 +This repository houses all documentation for the linux course organized by Bruxelles Formation at IRISIB. +The course runs for about six [months](https://taskjuggler.86thumbs.net), is divided into three main [modules](modules) and aims at passing three [certificates](certificates). +Each student also has to complete a [personal project](personal_project). -## Classes -* **Id:** prerequisite.theory -* **Effort:** 1.8 - -### Overview of communication channels -* **Note:** Account creation for gitea, matrix etc -* **Id:** prerequisite.theory.communication -* **Effort:** 0.5 - -### Introduction to markdown for notekeeping -* **Note:** markdown syntax -* **Id:** prerequisite.theory.markdown -* **Effort:** 0.3 - -### Short introdution to git for notekeeping -* **Note:** git tutorial -* **Id:** prerequisite.theory.git -* **Effort:** 1.0 - ---- - -# Resource Modules -* **Note:** Modules part of the resource curriculum. -* **Id:** resources -* **Effort:** 30.4 - -## Networking -* **Id:** resources.networking -* **Effort:** 15.5 - -### MR03/R61 Introduction to centralized administration of networking services -* **Id:** resources.networking.services -* **Effort:** 6.8 - -### Classes -* **Id:** resources.networking.services.theory -* **Effort:** 2.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 - -## MR04/R71 Introduction to linux -* **Note:** Introduction to the history and usage of Linux as an OS with both graphical and shell interfaces. -* **Id:** resources.linux -* **Effort:** 5.0 - -### Classes -* **Id:** resources.linux.theory -* **Effort:** 3.0 - -### History of unix/linux and Debian -* **Id:** resources.linux.theory.intro -* **Effort:** 0.5 - -### Quick dive into a GUI installation -* **Id:** resources.linux.theory.gui -* **Effort:** 0.5 - -### Introduction to the shell -* **Note:** Based on Ryan's tutorials -* **Id:** resources.linux.theory.cli -* **Effort:** 1.0 - -### Introduction to vim -* **Note:** complete vimtutor and create a custom vimrc -* **Id:** resources.linux.theory.vimtutor -* **Effort:** 0.5 - -### Very brief introdution to bandit and SSH -* **Note:** bandit -* **Id:** resources.linux.theory.bandit -* **Effort:** 0.5 - -## MR05/XX Introduction to hardware components of servers and clients -* **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:** 6.0 - -### Classes -* **Id:** resources.hardware.theory -* **Effort:** 2.5 - -### Breakdown of IT internals and externals -* **Id:** resources.hardware.theory.breakdown -* **Effort:** 0.5 - -### Overview of computer architectures -* **Id:** resources.hardware.theory.architectures -* **Effort:** 0.3 - -### ARM vs x86 -* **Id:** resources.hardware.theory.rpi -* **Effort:** 0.3 - -### Introduction to compiled languages and compilation targets -* **Id:** resources.hardware.theory.compilation -* **Effort:** 0.3 - -### Comparison of platforms vs protocols -* **Id:** resources.hardware.theory.protocols -* **Effort:** 0.3 - -### Group deployment of RPI clients and headless servers -* **Id:** resources.hardware.theory.deployment -* **Effort:** 1.0 - ---- - -# Qualifying Modules -* **Note:** Modules part of the qualifying curriculum. -* **Id:** qualifying -* **Effort:** 67.0 - -## MQ06/QB2 Install, deplay, configure and maintain client machines -* **Id:** qualifying.clients -* **Effort:** 5.0 - -### Classes -* **Id:** qualifying.clients.theory -* **Effort:** 2.0 - -### TODO -* **Note:** TODO -* **Id:** qualifying.clients.theory.sub1 -* **Effort:** 2.0 - -### Labo -* **Id:** qualifying.clients.practice -* **Effort:** 2.0 - -### Labo one -* **Note:** TODO -* **Id:** qualifying.clients.practice.supervised -* **Effort:** 1.0 - -## MQ03/QB4 Conceive and improve networking architecture -* **Note:** Deep dive into networking and the securisation of exposed services. -* **Id:** qualifying.networking -* **Effort:** 21.3 - -### Classes -* **Id:** qualifying.networking.theory -* **Effort:** 11.5 - -### iptables and fail2ban -* **Id:** qualifying.networking.theory.firewall -* **Effort:** 1.0 - -### Introduction to cryptography -* **Id:** qualifying.networking.theory.crypto -* **Effort:** 1.0 - -### Theory and application of OpenWRT -* **Id:** qualifying.networking.theory.openwrt -* **Effort:** 1.0 - -### Exposing local services to the internet -* **Note:** Theory and application of VPN, nginx reverse proxy, SSH, DNS and dynamic DNS -* **Id:** qualifying.networking.theory.exposing_services -* **Effort:** 3.5 - -## Linux server machines -* **Id:** qualifying.servers -* **Effort:** 26.8 - -### MQ07/QE7 Installation and configuration of a Linux server -* **Note:** Installation and configuration of Debian and Redhat servers. -* **Id:** qualifying.servers.deployment -* **Effort:** 9.1 - -### Classes -* **Id:** qualifying.servers.deployment.theory -* **Effort:** 6.0 - -### The Debian OS -* **Note:** Follows the Debian System Administrator handbook -* **Id:** qualifying.servers.deployment.theory.debian -* **Effort:** 4.0 - -### Redhat as an alternative -* **Id:** qualifying.servers.deployment.theory.redhat -* **Effort:** 2.0 - -### Labo -* **Id:** qualifying.servers.deployment.practice -* **Effort:** 3.0 - -### Deployment of Debian on hardware and VM -* **Note:** TODO -* **Id:** qualifying.servers.deployment.practice.debian -* **Effort:** 2.0 - -### Test -* **Note:** Test through certificate -* **Id:** qualifying.servers.deployment.test -* **Effort:** 0.1 - -### Linux Professional Institute LPIC-1 -* **Note:** https://www.lpi.org/our-certifications/lpic-1-overview -* **Id:** qualifying.servers.deployment.test.certificate -* **Effort:** 0.1 - -### MQ08/QE8 Administrate, exploit and maintain a Linux server -* **Note:** More in depth usage of the command line and an introdution to scripting in BASH and python3. -* **Id:** qualifying.servers.maintenance -* **Effort:** 17.6 - -### Classes -* **Id:** qualifying.servers.maintenance.theory -* **Effort:** 14.0 - -### Deep dive into CLI tools -* **Note:** Focus on essential tools such as tmux, zsh, ohmyzsh, vim -* **Id:** qualifying.servers.maintenance.theory.tools -* **Effort:** 3.0 - -### Advanced system management -* **Note:** Focus on systemd, dbus, udev, apt, pip3 -* **Id:** qualifying.servers.maintenance.theory.debian -* **Effort:** 4.0 - -### Introduction to scripting in BASH and python3 -* **Id:** qualifying.servers.maintenance.theory.scripting -* **Effort:** 5.0 - -### Advanced python scripting -* **Id:** qualifying.servers.maintenance.theory.advanced_python -* **Effort:** 2.0 - -### Labo -* **Id:** qualifying.servers.maintenance.practice -* **Effort:** 3.5 - -### Tools and system maintenance in practice -* **Id:** qualifying.servers.maintenance.practice.general -* **Effort:** 2.5 - -## MQ09/XX Administrate, exploit and maintain a virtual environnement -* **Note:** Extends on the general knowledge built up throughout the coarse but adds freenas as a platform to deploy VM's -* **Id:** qualifying.vm -* **Effort:** 6.0 - -### Classes -* **Id:** qualifying.vm.theory -* **Effort:** 2.5 - -### General configuration of VM's -* **Id:** qualifying.vm.theory.general -* **Effort:** 0.5 - -### Freenas as a platform to deploy VM's and docker instances -* **Id:** qualifying.vm.theory.freenas -* **Effort:** 2.0 - -### Labo -* **Id:** qualifying.vm.practice -* **Effort:** 2.5 - -### Deployment of diverse VM's via Windows, Debian and Freenas -* **Id:** qualifying.vm.practice.supervised -* **Effort:** 0.5 - ---- - -# Personal project -* **Note:** Research, write and present an expose on a relevant topic of choice. -* **Id:** personal_project -* **Effort:** 7.0 - -## Follow up of personal project -* **Id:** personal_project.followup -* **Effort:** 2.0 - -## Presentation of personal projects -* **Id:** personal_project.presentation -* **Effort:** 1.0 - ---- - -# Certificates -* **Id:** certificates -* **Effort:** 11.0 - -## In class followup for certifications with supervision -* **Id:** certificates.supervised -* **Effort:** 3.0 - -## Passing the certificate -* **Id:** certificates.test -* **Effort:** 1.0