Hi all,
My name's Wojtek and I own business called 'WOJST Usługi Informatyczne Wojciech Stańczyk' with a website https://wojst.pl
I write my thoughts, tips and another IT notes on the blog, which can be found at https://wojst.pl/blog
Today (29-04-2023) I've started the #100DaysOfLinux challenge. My goal is to finish all courses I have purchased but haven't yet completed and complete many labs during this time.
Update: Today (06-08-2023) I've finished this challenge :)
I aspire to be a Linux Administrator, which is my main goal, and I'm also considering the possibility of working in DevOps or SysOps.
Additionaly, I'm a firefighter in Państwowa Straż Pożarna, where we work 24-hour shifts every three days. During my shifts I will try found a few minutes to read or watch something related to this challenge.
So, let's get started :)
--
var ASL = course 'Administracja Serwerami Linux' by Grupa ADM
var ADL = course 'Akademia Debugowania Linuksa' by Jakub ‘unknow’ Mrugalski
var Proxmox Lab = https://wojst.pl/webhosting-lab-w-oparciu-o-proxmox/
Git
- work with git (create remote repo and push commits)
https://wojst.pl/github-repozytoria-zdalne-i-pull-requesty-git/
ebook '77 zadań dla adminów' by Jakub ‘unknow’ Mrugalski - user management - exercises about users management in Linux (performed on Ubuntu running in Docker)
Docker
- watch a film on YT from IT conference - "how Docker work inside"
ebook '77 zadań dla adminów' by Jakub ‘unknow’ Mrugalski - file management
- exercises about file management in Linux (performed on Ubuntu running in Docker)
ebook '77 zadań dla adminów' by Jakub ‘unknow’ Mrugalski - Apache
- configure the web server (Apache), which is running on Ubuntu as a virtual machine in VirtualBox
- read news and articles about Linux
NGINX
- "nginx in a hour" course by Jakub ‘unknow’ Mrugalski - I used virtual machine with Red Hat as the lab system
ebook '77 zadań dla adminów' by Jakub ‘unknow’ Mrugalski - Nginx
- configure the web server (NGINX), which is running on Red Hat as a virtual machine in VirtualBox
ebook '77 zadań dla adminów' by Jakub ‘unknow’ Mrugalski - Nginx
- I'm finishing yesterday's nginx excercises
- listen podcasts about Linux
Ansible
- "Ansible in a hour" course by Jakub ‘unknow’ Mrugalski (6 lessons out of 9)
run 3 Ubuntu virtual machines in VirtualBox and manage them with Ansible from a VM with Red Hat
- read articles on redhat.com
Ansible
- "Ansible in a hour" course by Jakub ‘unknow’ Mrugalski (other lessons)
- ebook '77 zadań dla adminów' by Jakub ‘unknow’ Mrugalski - Ansible
run 5 Ubuntu virtual machines in VirtualBox and manage them with Ansible from a VM with Red Hat - create blog post titled "How did my adventure with Linux start?"
https://wojst.pl/jak-zaczela-sie-moja-przygoda-z-linuxem/
Ansible
- continued ebook '77 zadań dla adminów' by Jakub ‘unknow’ Mrugalski - Ansible
- read news about Linux
Ansible
- continued ebook '77 zadań dla adminów' by Jakub ‘unknow’ Mrugalski - Ansible
- watch a film on YT from IT conference - "Vagrant a nauczanie informatyki"
Ansible
- I finished the 'Ansible' section in the ebook '77 zadań dla adminów'. I used ChatGTP during this lab.
All answers added to blog post:
https://wojst.pl/ebook-77-zadan-dla-adminow-odpowiedzi/
OpenVPN [ASL] + pfSense
I installed an OpenVPN server on Red Hat host and an OpenVPN client on RHEL as well. Next, I added 2 pfSense VMs beetwen the VPN hosts. All VMs ran in VirtualBox. I configured an internal network between the 'LAN networks'. On pfSense I configured port forwarding to forward a port from the WAN to the LAN OpenVPN server. Below is a schema of the lab.
Docker
I did 6 (from 11) excercises from the 'Docker' section in the ebook '77 zadań dla adminów' late in the evening.
Docker
Finished 'Docker' section in the ebook.
Routing [ASL]
I configured an RHEL VM as a router for another VMs in VirtualBox. Below is the schema of the lab.
Post on the blog:
https://wojst.pl/linux-jako-router-na-podstawie-rhel/
Disk management [ASL]
Red Hat lab in VirtualBox: add disk to VM, create / remove partition (fdisk), mount created partition (mount, umount, lsblk, /etc/fstab), LVM management.
It wasn't covered in the course, but I wanted to relab RAID (from Red Hat's official documentation): add 2 disks to a VM, create RAID1, simulate failed disk (remove second disk from VM), add new disk and attempting to repair the RAID.
Proxmox - install and add to jFrog
I intend to create a project with a lot of VMs (HA with KeepAlived, nginx + 2 versions of PHP as a web serwer, Redis to storing sessions, NFS for storing web files, MariaDB servers with replication, pfsense as gateway to this subnet, monitoring, FTP to upload web files etc).
For this purpose, I have installed Proxmox on an personal computer. To have access from flat I connected it to jFrog. In the next step I installed Debian and Rocky Linux in VMs, which were then converted to templates. I also installed pfSense in a VM and created an internal network.
Proxmox Lab
Created and configured 2 VMs (from templates) for MariaDB servers with replications: master using RockyLinux, slave using Debian.
On the blog I created a post in which I describe the progress of work on the project. This post will be updated as work progresses.
https://wojst.pl/webhosting-lab-w-oparciu-o-proxmox/
[ASL]
- management of services (systemctl, create own service)
- syslogs
Proxmox Lab
Created a NFS server to store web files (based on RockyLinux). In addition, I added two disks that I connected with RAID (mirroring) to this VM. On them I will store the data made available by NFS.
[ASL]
Management logs with journalctl.
- watch a film on YT: "DevOps - kim jest i czym siÄ™ zajmuje?"
Samba [ASL]
Samba server installation and configuration, creating new shares.
Outside of the course, I set up Samba as a domain controller with roaming profiles.
SELinux [ASL]
An introdution to SELinux.
Proxmox Lab
I installed nginx on two VMs (Debian and RockyLinux) and mounted NFS share to /var/www/html on both servers. On pfSense, I forwarded SSH ports to manage all servers from the outside.
Proxmox Lab
I installed two versions of php (7.4 and 8.1) as fpm on both web servers. Additionaly, I created NFS share with vhost configurations and mount as RO on web servers.
Proxmox Lab
Installation and configuration of SFTP serwer (proftpd).
I have installed proftpd and disabled access for anonymous. Additionaly, I have added local users (as homedir directory from NFS mounted share, shell false). The servers has been configured to work as SFTP only. I have modified the configuration to allow only users from the ftp_users group (to which I added both users).
Hardening systemd [ASL]
Proxmox Lab
Adding a service in which a Python script works to change the owner of new files uploaded via FTP. I explained this in a blog post.
ProxySQL
Theoretical introduction to the ProxySQL
ProxySQL
I watched on YouTube films about 'how ProxySQL works'.
Proxmox Lab
I installed ProxySQL on a VM with Debian and added both database servers to it. Next, I uploaded files from the backup of my main webpage via FTP, restored the database from a copy and started cloning of wojst.pl. I also had to install php-mysqli.
Security + backup [ASL]
This module contains penetration tests (with Kali Linux) and creating backup with rsync.
Troubleshooting [ASL]
Introduction to troubleshooting.
Proxmox Lab
Started installation HAProxy with keepalived on two VMs (Debian+Rocky).
Proxmox Lab
I did troubleshoot yesterday's implementation of HAProxy - I typed incorect IP addresses of web servers.
Troubleshooting + bash scripts [ASL]
Continuation of troubleshooting - monitoring. Next, there was an introduction to scripting with bash (only as a reminder).
Prometheus + Grafana
I watched a video on YT about infrastructure monitoring using Prometheus and grafana.
Video on YT: Ciekawe podejście do integracji technologii chmurowych - Piotr Pyciński
Read news and articles about Linux.
Rsyslog [ASL]
Install and configure log server.
Troubleshooting [ASL]
- test hard disk and memory
- DRP
- How to troubleshoot Linux problems (using the example of zabbix_agent)?
Troubleshooting [ASL]
In th 10th module's homework I troubleshooted problems on a VM with CentOS - IP configuration, SSH service and Apache.
Bash scripting [ASL]
Variables in bash scripts.
Review of articles and news.
Automatization [ASL]
- loop IF, functions in bash script
- introdution to Ansible
I wrote an e-book about bash scripting in 2020: https://wojst.pl/wp-content/uploads/2023/01/BONUS-bash_podstawy.pdf
Today I finished a course "Administracja Serwerami Linux" by Grupa ADM.
Strace [ADL]
Introduction to the application's diagnostics with strace.
Review of the job interviewer's questions.
Strace [ADL]
Debugging nginx and apache2 with strace.
[ADL]
Debugging cron and Docker.
Proxmox Lab
On Proxmox CT, I installed Docker and created container inside it with phpMyAdmin (which is linked to ProxySQL). Next, on the web servers, I added a proxy pass from the domain/phpmyadmin to the container.
Repair of a WordPress-based website - virus removal, access restoration and finally protection.
Video on YT about web UI for Ansible.
Running a web UI for Ansible as a Docker container - as seen in yesterday's video.
Configuration an Ansible Semaphore.
I watched videos on YT about working as a sysadmin and about Cloudflare.
[ADL]
A review of the process content in the /proc directory and an introduction to the 'Out of memory killer' mechanism.
Lab
- Create a local environment in VirtualBox to test Ansible's playbooks before committing it to the repo.
- Create an Ansible playbook for the installation and configuration unattended updates on all VMs.
[ADL]
- debugging a bash scripts,
- compile and install programs from source,
- recovery mysqld root password
Proxmox Lab
Create an Ansible playbook for the installation and configuration fail2ban - blocks sshd.
[ADL]
Apache performance tuning - configurate MPM.
[ADL]
- problems with ssh connections
- problems with disk space
Proxmox Lab
I installed Redis on VM with RockyLinux.
Video on YT: Linux Interview Questions nad Answers
Review news about Linux - It's FOSS news.
Overview of ideas for lab projects
[ADL]
Disk management: copy the partition layout on second disk
Proxmox Lab
- reconfigure backups of VMs (keep the last one, delete the backup 'clean_os'),
- add Redis VM to an Ansible Semaphore,
- install and configure Redis WordPress plugin
Proxmox Lab
I've created an Ansible playbook that set up a website environment (including database, user, vhost configuration, etc.)
Proxmox Lab
- resolve the problem with the mysql.user table on mariadb-slave
- improve yesterday's Ansible playbook
[ADL]
- debugging problems with inodes on disks
- recovering deleted data
[ADL]
An Introduction to Uncomplicated Firewall (UFW).
Review of articles and news.
View video on YT about Kasm Workspaces.
[ADL]
- How work with disk backup in the file?
- additional files attributes
[ADL]
- disk load check
- working with a lot of files
Docker
I've create an environment to practice ProxySQL: 2 containers of MariaDB with replication, 2 containers of phpMyAdmin (to manage data in dbs) and a container with ProxySQL.
VPS
I created a bash script to clean backups (removing all files older than 20 days).
Video on YT: Poczta w dzisiejszych czasach i podejście w stylu "devops" (SysOps / DevOps Polska)
[ADL]
Working with RAID arrays and LVM.
[ADL]
- How to troubleshoot network issues?
- debugging DNS problems
Watch the film about HA on YT.
Watch the film about awesome Linux terminal tools on YouTube.
[ADL]
- working with routing
- ssl certs
Prometheus & Grafana - video tutorial on YT.
Proxmox Lab
I've installed monitoring using Prometheus & Grafana.
Proxmox Lab - Prometheus & Grafana
- installed the Node Exporter on the monitoring VM
- added it to the Prometheus targets
- imported the dashboard 'Node Exporter Full'
- created Ansible playbook which install the Node Exporter on servers
Proxmox Lab
- created Docker container with dnsmasq
- added targets (with hostnames) to Prometheus
[ADL]
Accessing Linux with a forgotten root password.
[ADL]
Usefull apps - HTOP, XARGS.
Review of articles and news.
[ADL]
- SSH tunneling
- troubleshooting email issues
- nethogs
[ADL]
- Usefull apps - netcat, iptraf-ng
- Extending SWAP space
- Gather server information
- Backup of a full disk to another host
[ADL]
I've troubleshooted and repaired "zjebanos" (by Jakub ‘unknow’ Mrugalski).
Today I finished a course "Akademia Debugowania Linuksa" by Jakub ‘unknow’ Mrugalski.
Article: "Syslog: The Complete System Administrator Guide"
Article: "Monitoring Linux Logs with Kibana and Rsyslog"
I practiced HAProxy with Keeaplived, using nginx as the backend. Everything ran as Docker containers.
Review news about Linux.
Testing the MIKR.US VPS.
Video on YT: "Administracja ElasticSearch dla poczÄ…tkujÄ…cych"
Video on YT: "Tworzenie środowiska HA. Narzędzia i przykłady"
Proxmox Lab
Run an NTP server as a Docker container.
Configure a Galera Cluster with MariaDB inside Docker containers with Debian.
Video on YT: "Popular Linux interview questions for DevOps interviews"
Review news about Linux.
Linux Containers vs Docker - What is the difference?
Video on YT about "How to run HomeAssistant in Proxmox"
Proxmox Lab
Create an Ansible playbook for configuring hosts as NTP clients.
Proxmox Lab
Installation and configuration of the rsyslog server on the 'monitoring' VM.
Video on YT: "Proxmox virtual machine automation in Terraform"
Proxmox Lab
Configure hosts as rsyslog clients using Ansible playbook.
A deeper look into Systemd.
Finished courses during this challenge:
-
"NGINX w godzinę" - Jakub ‘unknow’ Mrugalski
-
"Ansible w godzinę" - Jakub ‘unknow’ Mrugalski
-
"Administracja Serwerami Linux" - Grupa ADM
-
"Akademia Debugowania Linuksa" - Jakub ‘unknow’ Mrugalski
-
ebook '77 zadań dla adminów' by Jakub ‘unknow’ Mrugalski