Advanced DevOps Hands-On Tasks
Linux & System Administration
- Create a restricted SFTP user that can only access a specific directory using chroot jail.
- Configure log rotation for a custom application log located in
/var/log/myapp.log.
- Identify and terminate a process consuming 90% CPU without restarting the server.
- Configure a daily automated backup of
/var/www to a remote server using rsync.
- Create a script that monitors disk usage and sends an alert if usage exceeds 85%.
- Mount a new disk and configure it to automatically mount on reboot.
- Configure Linux firewall rules to allow only ports 22, 80, and 443.
- Create a systemd service for a custom application.
Networking Tasks
- Identify which process is using port 8080 and stop it.
- Configure static IP networking on an Ubuntu server.
- Analyze network path latency to an external server using traceroute.
- Identify network connectivity issues between two servers.
- Capture network traffic on port 80 using tcpdump.
DNS Tasks
- Configure a domain to point to a server using an A record.
- Create a CNAME record for a subdomain.
- Verify DNS propagation using dig.
- Troubleshoot a domain resolving incorrectly.
- Configure reverse DNS lookup for a server.
Apache / Nginx Tasks
- Configure two websites on the same server using virtual hosts.
- Enable HTTPS using Let's Encrypt SSL certificates.
- Redirect HTTP traffic to HTTPS automatically.
- Configure Apache logs for each virtual host.
- Troubleshoot a 502 Bad Gateway error.
Docker Tasks
- Create a Dockerfile for a Node.js or Python application.
- Build and run a Docker container exposing port 3000.
- Debug a container that exits immediately after starting.
- Persist application data using Docker volumes.
- Create a multi-container setup using Docker Compose.
- Limit container CPU and memory usage.
- Push a Docker image to Docker Hub.
CI/CD Tasks
- Create a CI pipeline that builds and deploys an application.
- Configure automated testing in the pipeline.
- Trigger deployment only when code is pushed to the main branch.
- Configure rollback if deployment fails.
- Secure pipeline credentials using environment variables.
Monitoring & Logging
- Install and configure Prometheus for server monitoring.
- Create dashboards in Grafana to visualize CPU and memory usage.
- Configure alerts for high CPU usage.
- Centralize logs from multiple servers.
- Identify a memory leak using monitoring tools.
Security Tasks
- Disable root SSH login and enforce key-based authentication.
- Configure fail2ban to block repeated SSH login attempts.
- Restrict server access using firewall rules.
- Audit server users and remove unused accounts.
- Rotate SSH keys securely.
Real Production Troubleshooting
- Troubleshoot a website accessible via IP but not via domain.
- Identify why a server becomes slow every day at midnight.
- Fix a containerized application failing due to missing environment variables.
- Investigate why a CI/CD pipeline fails during deployment.
- Resolve disk space exhaustion on a production server.