About Me
- I am Mohammed Daoudi AKA iduoad
- I am a DevOps engineer
- weCanTalkAbout([π§, π³, π¦, β¦])
- More about me here !
Disclaimers
- Work in progess
- Subjective
- Interactive
Prerequisites
- Good English (or not)
- Programming
- Problem Solving
- Googling
- Prompt engineering
Day 1
- Get a linux box
- Use a VM
- Donβt use VBox/VMware WS
- Vagrant is better
- SSH into the machine
- Picnic 101 (file manipulation, power management, search, pagers, text editors β¦)
- Install a something (e.g. nginx).
- Package Management 101 (apt, yum, pacman)
- Service Management 101 (systemd)
- Expose 80 port to your machine.
- Access the something (nginx).
Bonus
- Read a book about DevOps.

Day 2
- Read about UNIX, shells, POSIX,β¦
- Write your first script.
- Learn bash basics (variables, conditionals, loops, args, β¦)
- Git 101
- git init
- git add
- git commit
- git log/show
Homework
- Version you script and push it to gitlab/github
- git init/clone
- git remote
- git push/pull
Bonus
- Watch some Geeksblablaβs episodes about Linux and DevOps β¦
Day 3
- RegEx 101
- Unix Filters: pick a file and play
grep
: get a [dictionary](english corpus inurl:gist.github.com)(/usr/share/groff/1.22.4/eign)cut
/paste
: get a csv file- sort, uniq, tr, head, tail, wc, split, tee β¦
- learn pipes and redirections
Bonus

Bonus

Day 5
- Picnic 102
- User management (CRUD, config files, β¦)
- File permission and access control (
chmod
, chown
, sudo
β¦)
Bonus
- Follow some people and communities in Social Media.
Day 6
- Learn about the kernel
- What is it ?
- What is does ?
- Where is it ?
- How to play with it?
Day 7
- Learn about Linux processes
- What is a process
- Linux process table (
/proc/
, /sys/proc
β¦) - Process states, priority, nice, ulimit β¦
- Manage you processes (
ps
, top
, htop
, kill
, pkill
, pgrep
β¦)
Day 9
- Learn about the LFS (Linux FileSystem)
/etc
, /dev/
, /proc
, sys
, /tmp
, /home
β¦
- Learn about linux filesystems
ext4
, xfs
, btrfs
, zfs
(on Linux), β¦- Learn the features.
Homework
- Read some config files, and tinker with them.
- Learn about volume management (LVM, Btrfs, ZFS)
- Pick a database (SQLite, PostgreSQL, MySQL) and practice SQL basics in SQLBolt
Bonus
- Learn about storage hardware. Good Intro in the videos here.
Day 10
- Figure out how to add a disk to your machine.
- vagrant: you should use provider or plugin
- cloud: easy but can cost some money (not if you are using free tier).
- Partition your new disk (
lsblk
, *fdisk
, parted
) - Format your partitions (
mkfs
) - Start using them (
mount
, umount
, df
, du
, fstab
β¦)
Homework
- LVM 101
- RAID 101 with mdadm
- Add a new disk
- Explore RAID level (at least 0 and 1) with mdadm
Day 11: It is NETWORKING day π
- Watch this (13/13)
- Make sure you understand IP and TCP and all the mentioned protocols
- Read about OSI
- Install wireshark on your host machine.
- Did you see that ?
- Profile some protocols
Homework
- Read some RFCs
- Play with the protocols using common servers and clients:
- http: nginx with firefox network tools.
- dns: Bind DNS server
- tls: Setup a PKI using OpenSSL.
- ftp, ntp, arp, β¦
Bonus

Day 12: Mooore networking π
- Learn about addressing and subnetting
- Practice! Practice!
- Use Cloud !
Homework
- Create networks and subnets.
- vagrant: netmask
- Use Cloud !
Bonus
- Learn IAC and use it to manage your cloud resources (Terraform, CDK, Pulumi β¦)
Day 13: Mooooore networking π
- Learn about Linux Networking
Homework
- Learn about Linux network interfaces
- Learn about Linux firewalls
- Implement your own protocol on top of TCP using Linux Sockets.
Day 14: Letβs be our sysadmins
- LAMP stack is a very good start
- Install Apache2, PHP and Mysql
- Configure them all (you remember
/etc
?)
- Install vsftpd.
- Install and configure as much things as you can (LDAP, DNS, Media β¦)
- DO community blog is a good friend here!
Homework
- UFW 101
- Cronjobs 101: Cron or systemd-timers
Bonus
- Xavki: Good and extensive French content, if you need to learn about some DevOps tools.
Day 15: Containers 101
- Take this or this (longer and better)
- Install Docker or Podman
- Docker pull
- Docker images
- Docker run
- Docker ps
- Docker exec
- Enjoy your new superpowers !!
Homework
- Create your own containers and have fun!
Day 16: Container 102
- Learn more about container internals (Namespaces, Cgroups, Overlay filesystems, β¦)
- Learn about OCI (Open Container Initiative)!
Homework
- Make your own container engine !
Day 17
Container 103
- READ A LOT OF DOCKERFILES!!!!
- Create you own! it is so easy now!
Homework
- Learn multi-stage builds
- Learn about kaniko and buildah
Bonus
- Learn about System containers (LXC/LXD, Incus, Systemd-nspawn, β¦)
Day 18
Compose is so easy!
- Read as many compose files as you can.
- Run examples.
- Make your own.
Homework
- Redo Day 14 with compose!
Day 20
Git 102
- Pick a stack and a project (java, javascript, python β¦)
git clone
-> rm -rf .git
-> git init
- Push the code into gitlab
- Practice (branching, Merge Requests, β¦)
Day 21
- Create a CI/CD pipeline for your project.
- Test the code, build it and package it.
Homework
- Create a deploy job to deploy to a PAAS.
- Optimize your pipelines.
Day 21 -
There still more things to learn, maybe next time!
Thank you
Letβs be friends! π€