-
General resources
-
Linux System Administration
- Linux:
- Web articles:
- Linux basics:
- Shell:
- Networking:
- 7 Linux networking commands that every sysadmin should know |
Red Hat (ip, ifconfig, mtr, tcpdump, netstat, nslookup, ping) - Network Configuration | Ubuntu
- How to Configure Network Settings on CentOS 7 Using the
Terminal | phoenixNAP
- 7 Linux networking commands that every sysadmin should know |
- Disk Management:
- Directory structure:
- Permissions:
- Linux Users and Groups | Linode (id, groups, usermod, useradd,
passwd, adduser, userdel, visudo, newgrp, chmod, chown) - Linux File Permissions and Ownership Explained with Examples |
Linux Handbook (chmod, chown) - Sticky Bit, SUID and SGID in Linux with Examples | LinOxide
(chmod) - Sudo Command in Linux | Baeldung (sudo, su)
- Linux Users and Groups | Linode (id, groups, usermod, useradd,
- Package management:
- Udemy courses:
- Linux:
- Bash:
- YouTube channels/playlists/videos:
- Books:
- UNIX and Linux System Administration Handbook – Trent R. Hein, Evi
Nemeth, Garth Snyder, Ben Whaley, Dan Mackin - The Practice of System and Network Administration – Thomas A.
Limoncelli, Christina J. Hogan, Strata R. Chalup - How Linux Works – Brian Ward
- Linux Phrasebook – Scott Granneman
- The Linux Command Line: A Complete Introduction – William E. Shotts, Jr.
- Linux Pocket Guide – Daniel J. Barrett
- Wicked Cool Shell Scripts – Dave Taylor
- Bash Pocket Reference – Arnold Robbins
- UNIX and Linux System Administration Handbook – Trent R. Hein, Evi
- Web articles:
- Firewall:
- Official documentation/manuals:
- Web articles:
- Udemy courses:
- YouTube channels/playlists/videos:
- DNS setup – BIND:
- Official documentation/manuals:
- Web articles:
- Udemy courses:
- Domain registration and transfer, SSL certificate generation:
- Official documentation/manuals:
- Web articles:
- Udemy courses:
- Databases – MySQL and PostgreSQL:
- Official documentation/manuals:
- Web articles:
- How To Install MySQL on Ubuntu 20.04 | DigitalOcean
- How To Install MySQL on CentOS 7 | DigitalOcean
- How To Set Up Replication in MySQL | DigitalOcean
- How To Set Up Physical Streaming Replication with PostgreSQL 12 on Ubuntu 20.04 | DigitalOcean
- OmarElgabry’s Blog | medium.com
- Databases Guides | Linode
- Udemy courses:
- Web server setup – LAMP, LEMP; website deployment and migration:
- Official documentation/manuals:
- Web articles:
- Udemy courses:
- YouTube channels/playlists/videos:
- Java application deployment:
- Official documentation/manuals:
- Web articles:
- Udemy courses:
- Backup system:
- Official documentation/manuals:
- Web articles:
- https://crontab.guru/ (useful for setting cron jobs)
- Udemy courses:
- YouTube videos:
- Mail server and mail delivery optimization:
- Official documentation/manuals:
- Web articles:
- Udemy courses:
- YouTube videos:
- Ansible playbooks creation for LEMP stack setup:
- Official documentation/manuals:
- Web articles:
- Udemy courses:
- YouTube videos:
- Linux:
-
Cloud
-
DevOps
- General introduction to DevOps:
- Official documentation/manuals:
- https://aws.amazon.com/devops/what-is-devops/
- https://docs.gitlab.com/ee/ci/
- https://docs.docker.com/get-started/overview/
- https://kubernetes.io/docs/concepts/overview/
- https://www.terraform.io/intro/index.html
- https://www.ansible.com/overview/how-ansible-works
- https://www.atlassian.com/devops/what-is-devops/devops-engineer
- Web articles:
- https://www.mindk.com/blog/devops-strategy/
- https://git-scm.com/book/en/v2/Getting-Started-What-is-Git%3F
- https://www.edureka.co/blog/what-is-jenkins/
- https://medium.com/devgurus/continuous-code-quality-and-automated-code-review-tools-aa911dd1b263
- https://www.bmc.com/blogs/kubernetes-helm-charts/
- https://www.simplilearn.com/tutorials/aws-tutorial/aws-cloudformation
- https://en.wikipedia.org/wiki/Don%27t_repeat_yourself
- Udemy courses:
- Introduction to Devops – 90 Minute Crash Course | Udemy
- DevOps , CI/CD(Continuous Integration/Delivery for Beginners | Udemy
- Introduction to Continuous Integration & Continuous Delivery | Udemy
- Gitlab CI Pipelines, CI/CD and DevOps for Beginners Tutorial | Udemy
- Learn DevOps: Docker, Kubernetes, Terraform and Azure DevOps | Udemy
- The DevOps Essentials – The Handbook | Udemy
- Official documentation/manuals:
- Git/GitFlow, CI/CD, Jenkins:
- Official documentation/manuals:
- https://www.jenkins.io/doc/book/installing/linux/
- https://www.jenkins.io/doc/book/glossary/
- https://www.jenkins.io/doc/book/managing/plugins/
- https://www.jenkins.io/doc/book/pipeline/getting-started/
- https://www.jenkins.io/doc/book/using/using-credentials/
- https://docs.cloudbees.com/docs/cloudbees-ci/latest/cloud-secure-guide/injecting-secrets
- Web articles:
- https://medium.com/@navo.galagedara/what-is-git-in-short-and-sweet-ab68bfdb48b6
- https://guides.github.com/introduction/git-handbook/
- https://git-scm.com/docs/gittutorial
- https://linuxkamarada.com/en/2019/07/14/using-git-with-ssh-keys/#.Y6V3oadByo4
- https://www.atlassian.com/git/tutorials/comparing-workflows
- https://medium.com/@gustavo.guss/jenkins-starting-with-pipeline-doing-a-node-js-test-72c6057b67d4
- https://dzone.com/articles/jenkins-03-configure-master-and-slave
- https://java2blog.com/freestyle-projects-jenkins/
- Udemy courses:
- Official documentation/manuals:
- CI/CD, GitLab, CI/CD as code. Containerization:
- Official documentation/manuals:
- https://docs.gitlab.com/ee/user/project/working_with_projects.html
- https://docs.gitlab.com/ee/user/project/settings/index.html
- https://docs.gitlab.com/runner/
- https://docs.gitlab.com/runner/install/linux-manually.html
- https://docs.gitlab.com/runner/best_practice/index.html
- https://docs.gitlab.com/ee/ci/ and sub-pages
- https://docs.gitlab.com/ee/ci/variables/predefined_variables.html
- https://docs.gitlab.com/ee/ci/yaml/includes.html
- Web articles:
- https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-gitlab-on-ubuntu-18-04
- https://github.com/jenkinsci/pipeline-examples/blob/master/declarative-examples/jenkinsfile-examples/mavenDocker.groovy
- https://gist.github.com/merikan/228cdb1893fca91f0663bab7b095757c
- https://github.com/DataDog/documentation/blob/master/.gitlab-ci.yml
- https://www.baeldung.com/cs/virtualization-vs-containerization
- https://medium.com/@saschagrunert/demystifying-containers-part-i-kernel-space-2c53d6979504
- https://en.wikipedia.org/wiki/Cgroups
- https://en.wikipedia.org/wiki/Linux_namespaces
- https://en.wikipedia.org/wiki/Seccomp
- Udemy courses:
- Official documentation/manuals:
- Docker. Creating Environments: Linux Best Practice:
- Official documentation/manuals:
- https://docs.docker.com/engine/install/
- https://docs.docker.com/engine/install/ubuntu/
- https://docs.docker.com/engine/install/linux-postinstall/
- https://docs.docker.com/registry/insecure/
- https://docs.docker.com/storage/storagedriver/select-storage-driver/
- https://docs.docker.com/engine/reference/commandline/docker/ and subpages
- https://docs.docker.com/engine/reference/commandline/pull/
- https://docs.docker.com/engine/reference/commandline/run/
- https://docs.docker.com/engine/reference/commandline/ps/
- https://docs.docker.com/engine/reference/commandline/top/
- https://docs.docker.com/engine/reference/commandline/logs/
- https://docs.docker.com/engine/reference/commandline/exec/
- https://docs.docker.com/engine/reference/commandline/inspect/
- https://docs.docker.com/engine/reference/commandline/rm/
- https://docs.docker.com/engine/reference/commandline/images/
- https://docs.docker.com/engine/reference/commandline/build/
- https://docs.docker.com/engine/reference/builder/
- https://docs.docker.com/develop/develop-images/multistage-build/
- https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
- https://docs.fedoraproject.org/en-US/quick-docs/understanding-and-administering-systemd/
- Web articles:
- https://dzone.com/articles/docker-layers-explained
- https://www.freecodecamp.org/news/an-introduction-to-docker-tags-9b5395636c2a/
- https://snyk.io/blog/10-docker-image-security-best-practices/
- https://runnable.com/blog/9-common-dockerfile-mistakes
- https://www.ecloudcontrol.com/mistakes-to-avoid-in-docker-images-with-reason-and-solution/
- https://dzone.com/articles/how-to-reduce-docker-image-size
- https://ralph.blog.imixs.com/2020/10/23/how-to-set-timezone-and-locale-for-docker-image/
- https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/
- https://betterprogramming.pub/docker-tips-access-the-docker-daemon-via-ssh-97cd6b44a53
- https://geekflare.com/container-security-scanners/
- https://askubuntu.com/questions/18654/how-to-prevent-updating-of-a-specific-package
- https://www.thegeeksearch.com/how-to-rotate-systemd-journald-log-in-centos-rhel-7/
- https://www.shubhamdipt.com/blog/how-to-create-a-systemd-service-in-linux/
- https://avcourt.github.io/tiny-cluster/2019/08/01/systemd.html
- https://ma.ttias.be/auto-restart-crashed-service-systemd/
- Udemy courses:
- Official documentation/manuals:
- Web applications:
- Official documentation/manuals:
- https://nginx.org/en/docs/http/configuring_https_servers.html
- https://docs.nginx.com/nginx/admin-guide/security-controls/terminating-ssl-tcp/
- https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/
- https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-subrequest-authentication/
- https://www.nginx.com/blog/rate-limiting-nginx/
- https://docs.nginx.com/nginx/admin-guide/security-controls/controlling-access-proxied-tcp/
- https://docs.nginx.com/nginx/admin-guide/security-controls/securing-http-traffic-upstream/
- https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
- https://nginx.org/en/docs/http/ngx_http_realip_module.html
- https://docs.nginx.com/nginx/admin-guide/load-balancer/using-proxy-protocol/
- https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
- Web articles:
- https://www.ssllabs.com/ssltest/index.html
- https://github.com/nginxinc/nginx-prometheus-exporter
- https://www.tecmint.com/configure-custom-access-and-error-log-formats-in-nginx/
- https://serverfault.com/questions/45353/nginx-access-logs-ignore-certain-requests
- https://webdock.io/en/docs/how-guides/security-guides/how-to-configure-security-headers-in-nginx-and-apache
- https://securityheaders.com/
- https://www.tecmint.com/limit-file-upload-size-in-nginx/
- https://ubiq.co/tech-blog/increase-request-timeout-nginx/
- https://www.nginx.com/blog/nginx-caching-guide/
- https://www.tecmint.com/cache-content-with-nginx/
- Udemy courses:
- Official documentation/manuals:
- Terraform:
- Official documentation/manuals:
- https://www.terraform.io/docs/language/settings/backends/configuration.html
- https://www.terraform.io/docs/language/providers/configuration.html
- https://www.terraform.io/docs/language/settings/index.html
- https://www.terraform.io/docs/cli/commands/index.html
- https://registry.terraform.io/browse/providers
- https://www.terraform.io/docs/language/values/variables.html
- https://www.terraform.io/docs/language/values/outputs.html
- https://www.terraform.io/docs/language/data-sources/index.html
- https://www.terraform.io/docs/language/resources/syntax.html
- https://www.terraform.io/docs/language/resources/behavior.html
- https://www.terraform.io/docs/language/modules/develop/index.html
- https://www.terraform.io/docs/language/meta-arguments/depends_on.html
- https://www.terraform.io/docs/language/meta-arguments/lifecycle.html
- https://www.terraform.io/docs/language/meta-arguments/for_each.html
- https://www.terraform.io/docs/language/meta-arguments/count.html
- https://www.terraform.io/docs/language/meta-arguments/resource-provider.html
- https://www.terraform.io/docs/language/functions/index.html and subpages
- https://www.terraform.io/docs/extend/best-practices/index.html
- https://www.terraform.io/docs/language/state/remote-state-data.html
- Web articles:
- https://dev.to/loujaybee/what-is-terraform-used-for-the-3-main-use-cases-462e
- https://k21academy.com/terraform-iac/terraform-beginners-guide/
- https://blog.gruntwork.io/terraform-tips-tricks-loops-if-statements-and-gotchas-f739bbae55f9
- https://www.hashicorp.com/blog/zero-downtime-updates-with-terraform
- Udemy courses:
- Official documentation/manuals:
- Ansible:
- Official documentation/manuals:
- https://www.ansible.com/use-cases
- https://docs.ansible.com/ansible/latest/user_guide/basic_concepts.html
- https://docs.ansible.com/ansible/latest/reference_appendices/glossary.html
- https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html
- https://docs.ansible.com/ansible/latest/user_guide/intro_dynamic_inventory.html
- https://docs.ansible.com/ansible/2.8/user_guide/playbooks_best_practices.html
- https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html
- https://docs.ansible.com/ansible/latest/user_guide/playbooks_vars_facts.html
- https://docs.ansible.com/ansible/latest/user_guide/playbooks_intro.html
- https://docs.ansible.com/ansible/latest/user_guide/playbooks_delegation.html
- https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html
- https://docs.ansible.com/ansible/latest/user_guide/playbooks_conditionals.html
- https://docs.ansible.com/ansible/latest/user_guide/playbooks_templating.html
- https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html
- https://docs.ansible.com/ansible/latest/user_guide/playbooks_checkmode.html
- https://docs.ansible.com/ansible/latest/user_guide/playbooks_blocks.html
- https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html
- https://docs.ansible.com/ansible/latest/user_guide/playbooks_handlers.html
- https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse.html#playbooks-reuse
- https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html
- Web articles:
- https://www.redhat.com/en/blog/system-administrators-guide-getting-started-ansible-fastextIdCarryOver=true&sc_cid=701f2000001OH7YAAW
- https://blog.ippon.tech/ansible-tips-and-tricks/
- https://ansible-tips-and-tricks.readthedocs.io/en/latest/ansible/commands/
- https://www.quora.com/What-are-the-disadvantages-of-Ansible
- https://ansible-tips-and-tricks.readthedocs.io/en/latest/os-dependent-tasks/variables/
- Udemy courses:
- Official documentation/manuals:
- Deployments: Methodologies. Pure linux deployments:
- Web articles:
- https://thenewstack.io/deployment-strategies/
- https://www.nginx.com/blog/nginx-unit-updating-apps-with-100-percent-uptime/
- https://softjourn.com/blog/article/8-best-practices-for-a-smooth-web-project-deployment
- https://www.linkedin.com/pulse/service-recovery-rolling-back-vs-forward-fixing-mohamed-el-geish/
- https://deploybot.com/blog/10-mistakes-developers-make
- https://docs.rightscale.com/cm/designers_guide/cm-designing-and-deploying-high-availability-websites.html
- Udemy courses:
- Web articles:
- Kubernetes:
- Official documentation/manuals:
- https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
- https://kubernetes.io/docs/concepts/overview/components/
- https://kubernetes.io/docs/reference/glossary/?fundamental=true
- https://kubernetes.io/docs/reference/access-authn-authz/authentication/
- https://kubernetes.io/docs/reference/access-authn-authz/authorization/
- https://kubernetes.io/docs/reference/access-authn-authz/rbac/
- https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/
- https://kubernetes.io/docs/concepts/architecture/nodes/
- https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
- https://kubernetes.io/docs/concepts/policy/pod-security-policy/
- https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
- https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
- https://kubernetes.io/docs/tasks/tools/install-kubectl/
- https://kubernetes.io/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/ + interactive lesson
- https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands
- https://kubernetes.io/docs/reference/kubectl/cheatsheet/
- https://kubernetes.io/docs/concepts/policy/limit-range/
- https://kubernetes.io/docs/concepts/policy/resource-quotas/
- https://kubernetes.io/docs/concepts/configuration/configmap/
- https://kubernetes.io/docs/concepts/configuration/secret/
- https://kubernetes.io/docs/concepts/workloads/pods/
- https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/
- https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
- https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
- https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
- https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
- https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/
- https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/
- https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
- https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-initialization/
- https://kubernetes.io/docs/tasks/debug-application-cluster/debug-running-pod/
- https://kubernetes.io/docs/concepts/services-networking/service/
- https://kubernetes.io/docs/tasks/debug-application-cluster/debug-application-introspection/
- https://kubernetes.io/docs/reference/glossary/?all=true
- https://kubernetes.io/docs/concepts/workloads/controllers/deployment
- https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/
- https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/
- https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
- https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
- https://kubernetes.io/docs/concepts/workloads/controllers/job/
- https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/
- https://kubernetes.io/docs/concepts/workloads/controllers/ttlafterfinished/
- https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/
- https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
- https://kubernetes.io/docs/tasks/run-application/configure-pdb/
- https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/
- https://kubernetes.io/docs/concepts/storage/volumes/
- https://kubernetes.io/docs/concepts/storage/persistent-volumes/
- https://kubernetes.io/docs/concepts/storage/volume-snapshots/
- https://kubernetes.io/docs/concepts/storage/storage-classes/
- https://kubernetes.io/docs/concepts/storage/dynamic-provisioning/
- https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/
- https://kubernetes.io/docs/concepts/services-networking/ingress/
- https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/
- https://kubernetes.github.io/ingress-nginx/how-it-works/
- Web articles:
- https://thenewstack.io/do-i-really-need-kubernetes/
- https://hackernoon.com/why-and-when-you-should-use-kubernetes-8b50915d97d8
- https://www.digitalocean.com/community/tutorials/architecting-applications-for-kubernetes
- https://platform9.com/blog/kubernetes-enterprise-chapter-2-kubernetes-architecture-concepts/
- https://blog.mayadata.io/openebs/the-story-of-the-pod-manifest-to-running
- https://github.com/jamiehannaford/what-happens-when-k8s
- https://starkandwayne.com/blog/kubernetes-deployments-statefulsets-and-daemonsets/
- https://operatorhub.io/
- Udemy courses:
- Official documentation/manuals:
- Helm:
- Official documentation/manuals:
- https://helm.sh/docs/glossary/
- https://helm.sh/docs/intro/quickstart/
- https://helm.sh/docs/intro/install/
- https://helm.sh/docs/topics/rbac/
- https://helm.sh/docs/intro/using_helm/
- https://helm.sh/docs/topics/architecture/
- https://helm.sh/docs/topics/plugins/
- https://helm.sh/docs/topics/charts/
- https://helm.sh/docs/chart_best_practices/conventions/
- https://helm.sh/docs/chart_best_practices/values/
- https://helm.sh/docs/chart_best_practices/templates/
- https://helm.sh/docs/chart_best_practices/dependencies/
- https://helm.sh/docs/chart_best_practices/labels/
- https://helm.sh/docs/chart_best_practices/pods/
- https://helm.sh/docs/chart_best_practices/rbac/
- https://helm.sh/docs/topics/charts_hooks/
- https://helm.sh/docs/topics/library_charts/
- https://helm.sh/docs/chart_template_guide/getting_started/
- https://helm.sh/docs/chart_template_guide/builtin_objects/
- https://helm.sh/docs/chart_template_guide/values_files/
- https://helm.sh/docs/chart_template_guide/functions_and_pipelines/
- https://helm.sh/docs/chart_template_guide/function_list/
- https://helm.sh/docs/chart_template_guide/control_structures/
- https://helm.sh/docs/chart_template_guide/variables/
- https://helm.sh/docs/chart_template_guide/named_templates/
- https://helm.sh/docs/chart_template_guide/accessing_files/
- https://helm.sh/docs/chart_template_guide/notes_files/
- https://helm.sh/docs/chart_template_guide/subcharts_and_globals/
- https://helm.sh/docs/chart_template_guide/helm_ignore_file/
- https://helm.sh/docs/chart_template_guide/debugging/
- https://helm.sh/docs/chart_template_guide/yaml_techniques/
- https://helm.sh/docs/topics/provenance/
- https://helm.sh/docs/chart_best_practices/custom_resource_definitions/
- https://helm.sh/docs/howto/charts_tips_and_tricks/
- Web articles:
- Udemy courses:
- Official documentation/manuals:
- General introduction to DevOps:
-
When preparing for the interview will be useful:
- Understanding the structure and purpose of Linux directories, the general
structure and components of the OS. - Understanding of user privileges, groups and access rights settings.
- Skills of working with text, files, processes, service management, network configuration, time, working with disks, basics of Bash.
- Skills of working with Centos/Ubuntu package managers, installing packages
from source code. - Understanding of the principles of the web.
- Practical skills in installing and configuring Nginx/Apache web servers.
- Experience in installing popular CMS websites: WordPress/Joomla/Drupal.
- Understanding of the purpose, principles of operation and organisation of the
DBMS MySQL/PostgreSQL, SQL queries, database backup/restore. - Understanding the principles of mail, the purpose of mail protocols.
- Practical experience in setting up Postfix/Exim+Dovecot+Roundcube mail
communication. - Knowledge of the principles of DNS, types of resource records and their
functions.
- Understanding the structure and purpose of Linux directories, the general