运维工程师学习路线

Hexa 记录 发布于 16 天前 21 次阅读


虽然这么些年自己琢磨和使用linux系统,部署各种服务,维护过多台服务器,还自己组装了一台nas,其实很多设备、命令、工具和操作都已经熟悉了,不过想搞运维或者安全运维岗的话仍然还是缺乏系统性的学习。自己学过的知识也主要是面向个人的运维和网络安全,缺乏对一些企业级运维工具,集群管理,现有解决方案的了解,故给自己排一个计划路线,趁25年第一季度时间充裕花时间来学一学,也算是查漏补缺。边学边增减这张表吧,自己记录一下。


1. Linux 系统基础

  • 目标:掌握基本的 Linux 操作,能够熟练使用常见命令。
  • 重点内容
    • 文件和目录操作(ls, cd, cp, mv, rm, touch, mkdir
    • 权限管理(chmod, chown, umask
    • 进程管理(ps, top, kill, jobs, bg, fg
    • 网络命令(ping, netstat, ifconfig, ip
    • 软件安装与包管理(yum, apt, dnf
  • 练习:已掌握

2. 网络服务

  • 目标:熟悉常见网络服务的搭建与配置。
  • 重点内容
    • FTP:搭建 FTP 服务,了解用户权限管理。
    • DNS:熟悉 BIND 配置,了解域名解析流程。
    • SAMBA:文件共享服务。
    • 邮件服务:掌握基础的邮件服务器配置。
    • LAMP/LNMP
      • Apache/Nginx:深入了解配置文件的作用,反向代理、负载均衡。
      • MySQL/PHP:熟悉 PHP 模块,常用配置优化。
    • Tomcat:基础配置和管理。
  • 练习
    • 动手搭建和配置上述服务。
    • 理解编译安装和模块加载的过程。

3. Shell 脚本与其他脚本语言

  • 目标:熟练编写自动化脚本,提高工作效率。
  • 重点内容
    • Shell 脚本:学会写监控 CPU、内存的脚本。
    • Python:建议学习,掌握文件操作、自动化运维和网络请求处理。
    • 正则表达式:结合 Shell 学习。
  • 练习
    • 自行编写系统管理脚本
    • 编写自动化运维和功能处理脚本

4. 文本处理工具

  • 目标:熟练处理文本和日志文件。
  • 重点工具
    • sedawk:用于文本处理和数据过滤。
    • vim:熟练操作vim,熟悉编辑器命令
    • 常用命令:sort, tr, cut, uniq, tee, wc
  • 建议:在日常工作中多实践,结合日志分析使用这些工具。

5. 数据库

  • 目标:熟悉 MySQL 的基本操作,能够完成基础管理任务。
  • 重点内容
    • 增删改查操作。
    • 数据库备份与恢复。
    • MySQL 主从复制和优化基础知识。
  • 练习
    • 搭建一个测试数据库。
    • 实践常用操作并配置主从复制。

6. 防火墙

  • 目标:掌握 iptables 和防火墙规则的配置。
  • 重点内容
    • FILTER 表:常用规则配置。
    • NAT 表:端口映射与转发。
  • 练习
    • 配置简单的防火墙规则,确保网络安全。

7. 监控工具

  • 目标:掌握常见监控工具的安装与配置。
  • 推荐工具
    • Nagios:系统监控,支持自定义脚本。
    • Zabbix:全面的企业监控解决方案。
    • Cacti:以图形化展示性能数据。
  • 练习
    • 安装并配置监控工具。
    • 学习自定义监控脚本。

8. 集群和热备

  • 目标:理解集群和高可用技术。
  • 重点工具
    • LVS:负载均衡。
    • Nginx 集群:配置反向代理。
    • MySQL 主从复制:实现数据库高可用。
  • 练习:参考相关教程和官方文档,实践搭建小型集群。

9. 数据备份

  • 目标:掌握常见备份工具和原理。
  • 工具和内容
    • RAID 的原理和实践。
    • tar, rsync 等工具。
    • 数据库备份(MySQL mysqldump)。
  • 练习
    • 练习使用工具备份和恢复数据。


10. Docker

  • 目标:掌握容器化技术的基础与实践。
  • 重点内容
    • Docker 基础:
      • 安装与环境配置。
      • 镜像管理:拉取、构建、推送(docker pull, docker build, docker push)。
      • 容器管理:启动、停止、删除(docker run, docker stop, docker rm)。
    • Docker Compose:
      • 编写 docker-compose.yml 文件。
      • 实现多容器应用编排。
    • Docker 网络与存储:
      • 自定义网络与挂载卷(docker network, docker volume)。
  • 练习:已掌握

11. Kubernetes (K8s)

  • 目标:理解容器编排技术,掌握基础操作。
  • 重点内容
    • 基础概念:
      • Pod、Service、Deployment、ConfigMap、Secret。
    • K8s 集群搭建:
      • Minikube 或 Kind(轻量化学习环境)。
      • kubeadm(生产环境)。
    • 核心组件:
      • etcd、API Server、Controller Manager、Scheduler。
    • 常用命令:
      • 集群状态查看(kubectl get, kubectl describe)。
      • Pod 调试(kubectl logs, kubectl exec)。
    • 高级主题:
      • 自定义资源(CRD)。
      • Helm(包管理工具)。
      • 网络与存储(CNI, PV, PVC)。
  • 练习
    • 搭建一个 Minikube 环境。
    • 使用 YAML 配置文件部署简单应用。
    • 学习负载均衡和滚动更新。

学习顺序

  1. Linux 基础。
  2. Shell 脚本 + 网络服务。
  3. 数据库。
  4. 防火墙 + 文本处理工具。
  5. 集群、热备和数据备份。
  6. 监控工具。
  7. Docker容器管理
  8. K8S