Ubuntu Administration
4-day intensive course
Introduction to the Course
This course is designed to transform beginners into proficient administrators of one of the most popular Linux distributions: Ubuntu. Through hands-on sessions, interactive lectures, and real-world scenarios, you'll learn the ins and outs of managing, securing, and optimizing Ubuntu systems.
Whether you're aiming to manage a personal project, a corporate server, or cloud infrastructure, this course will equip you with the essential skills needed to navigate the command line, deploy applications, and maintain a robust and secure environment. Prepare to dive deep into the world of Linux administration, where we'll explore everything from basic system management to advanced services like Docker and Nginx web servers.
Get ready to embark on a journey that will unlock new opportunities and enhance your technical prowess!
Learning Outcomes
By the end of this course, participants will be able to:
- Understand Linux and Ubuntu Basics: Familiarize with the Linux filesystem, command-line utilities, and the Ubuntu operating system's core concepts.
- Master User and Group Management: Manage users and groups, understand file permissions, and implement security best practices.
- Configure and Use SSH: Securely connect to remote servers using SSH, manage keys, and customize SSH configurations for enhanced security.
- Manage Packages and Dependencies: Use apt-get and other package managers to install, update, and manage software packages.
- Automate Tasks with Shell Scripting: Write basic shell scripts to automate repetitive tasks and simplify system management.
- Configure Networking and Firewall Settings: Understand basic networking concepts, configure firewall settings using UFW, and troubleshoot common network issues.
- Deploy and Manage Docker Containers: Install Docker, manage Docker images and containers, and deploy applications within containers.
- Set Up and Configure Web Servers with Nginx: Install and configure Nginx as a web server and reverse proxy, and secure it with SSL/TLS.
- Monitor and Optimize System Performance: Utilize system monitoring tools, analyze performance metrics, and implement optimization techniques.
- Troubleshoot Common System Issues: Diagnose and resolve common system and network problems, ensuring smooth operation of Ubuntu systems.
Prerequisites
- Internet Access: Unrestricted and stable access to the internet is mandatory.
- Terminal application: Any terminal application (PowerShell, cmd, terminal, ConEmu etc) will suffice as long as SSH is enabled.
- IDE: Although any IDE would suffice, VS Code is the choice of IDE that is recommended and shall be used by the instructor.
- Containers: For windows users, WSL2 is recommended but not mandatory.
- Basic Computer Skills: Comfortable with operating a computer, managing files, and browsing the internet.
- Familiarity with Command Line Interface (CLI): Prior exposure to any CLI environment is beneficial but not mandatory.
- Understanding of Networking Fundamentals: Basic knowledge of IP addressing, DNS, and networking concepts is helpful.
- No Prior Linux Experience Required: This course is designed for absolute beginners to Linux and Ubuntu.
Course Outline
This outline is a comprehensive coverage and will use a mixture of lectures and hands-on. HOwever, please note that the sequence fill not be as per the modules listed. An agile methodology of training shall be implemented.
- Introduction to Linux and Ubuntu
- History and Philosophy of Linux
- Ubuntu Distribution: Overview and Features
- Installing Ubuntu (Dual Boot and Virtual Machines)
- Navigating the Ubuntu Desktop and Terminal
- Command Line Mastery
- Basic Terminal Commands (ls, cd, cp, rm, nano/vim)
- Filesystem Hierarchy and Path Navigation
- File and Directory Operations
- Advanced Command Line Tools and Utilities
- Package Management
- Understanding Repositories
- Using apt-get for Installing and Managing Software
- Managing Software Dependencies and System Updates
- Configuring Software Sources and Third-party Repositories
- User and Group Management
- Creating and Managing User Accounts
- Understanding File Permissions and Ownership
- Groups and Access Control Lists (ACLs)
- Implementing Best Practices for System Security
- Networking and Firewall Configuration
- Basic Networking Tools (ifconfig, netstat, ping, traceroute)
- Configuring IP Addresses and Networking
- Introduction to UFW (Uncomplicated Firewall)
- Securing Ubuntu with Firewall Rules
- SSH: Secure Shell
- SSH Basics: Securely Connecting to Remote Systems
- Generating and Managing SSH Keys
- SSH Configurations and Troubleshooting
- SSH Tunnels and Port Forwarding
- Automating Tasks with Shell Scripting
- Basics of Shell Scripting
- Writing Your First Shell Script
- Scripting for Automation: Backup Scripts and Cron Jobs
- Best Practices in Shell Scripting
- Docker: Containerization
- Introduction to Containers and Docker
- Installing Docker on Ubuntu
- Managing Docker Images and Containers
- Deploying a Simple Application in Docker
- Web Servers and Nginx
- Web Server Basics: HTTP Protocol and Web Hosting
- Installing and Configuring Nginx on Ubuntu
- Setting Up a Simple Website with Nginx
- Implementing SSL/TLS with Let's Encrypt
- System Monitoring and Optimization
- Monitoring Tools (top, htop, vmstat)
- Analyzing System Logs for Troubleshooting
- Performance Tuning and Resource Management
- Disk Usage and Management Tools (df, du, fdisk)
- Advanced Topics and Troubleshooting
- Kernel and System Updates
- Recovering from Boot and System Failures
- Networking Troubleshooting Techniques
- Security Best Practices and System Hardening
- Project: Setting Up a Complete Web Server
- Reviewing and Applying Course Knowledge
- Deploying a Web Application using Docker and Nginx
- Implementing Security Measures and Optimizations
- Documentation and Best Practices for Maintenance
This intensive 4-day course is packed with knowledge, practical exercises, and real-world applications, ensuring you leave with the skills needed to confidently administer Ubuntu systems. Get ready to dive deep into the world of Ubuntu administration and unlock new opportunities in the field of IT!
Practical, connected learning
My wider training approach brings hands-on implementation and systems thinking together, connecting technology with real operational needs.