本书针对Linux运维的初学者,讲解Linux运维的基础知识。本书在讲解时,脉络清晰,语言简洁,实战大于理论。运维重在实践,本书对Linux系统运维管理分类清晰,通过本书可以让读者快速熟悉大规模批量处理的简单方法。
全书共9个章节,其中,第1章讲解Linux运维的环境搭建,为后续学习作好铺垫;第2章讲解Linux运维常用的命令工具;第3章讲解Shell相关知识,包括正则表达式、文本处理工具、Shell编程语法;第4章讲解Linux内核的编绎安装及内核模块的管理;第5章讲解Linux中常用的网络服务;第6章讲解运维中常用的集中化运维工具:Ansible与SaltStack;第7章是讲解系统监控工具Zabbix;第8章讲解了Linux防火墙,营造一个安全的网络环境;第9章讲解了近年发展迅猛的KVM虚拟化技术。
本书适合作为高等院校本、专科计算机相关专业的教材使用,也可作为Linux爱好者的参考书自学使用。
一、覆盖面广
与市面其它Linux运维书籍相比,本书覆盖的内容更为广泛,除了运维手段与工具,本书还讲解了Linux的基础命令、脚本相关知识,以及营造安全网络环境,而且进一步介绍了近几年发展迅速的虚拟化技术。
二、实战性强
运维可以简单概括为对工具的使用,本书的操作性很强,各种工具的安装、配置、使用均模拟实际运维工作来完成。
三、知识讲解呈模块化
本书在知识架构时,布局由易到难且呈模块化,每章的知识既相互关联又相对具有一定独立性。总的来说它可以分为六大模块,Linux基础环境与命令、网络服务、脚本运维、集中化运维工具、系统监控、网络安全。读者在学习时,更容易阶段性进行。
四、教材、资源、服务三合一,高效学习
为了便于老师备课,本教材配备了精美的PPT、教学视频和源代码等资源。本书还有配套题库可以根据需求自由组卷,方便老师考察学生的学习情况。
第1章 Linux系统简介与环境搭建 1.1 Linux系统简介 1.1.1 Linux系统的起源与发展 1.1.2 GNU与GPL 1.1.3 Linux系统版本 1.1.4 Linux系统的应用领域 1.2 安装Linux系统 1.2.1 安装虚拟机软件 1.2.2 下载CentOS 1.2.3 安装CentOS 1.3 Linux系统启动流程 1.4 网络配置 1.4.1 网络模式 1.4.2 模式更改 1.4.3 网络配置 1.4.4 访问测试 1.5 目录结构 1.6 远程终端访问 1.7 SFTP远程文件管理 1.8 本章小结 1.9 本章习题 第2章 Linux命令与工具 2.1 Linux命令格式 2.2 用户与用户组管理 2.2.1 用户管理 2.2.2 用户组管理 2.2.3 用户切换 2.3 文件管理 2.3.1 文件操作 2.3.2 查看文件 2.3.3 文件搜索 2.3.4 权限管理 2.3.5 压缩解压 2.4 存储管理 2.4.1 磁盘分区 2.4.2 格式化 2.4.3 挂载 2.4.4 LVM逻辑卷管理 2.4.5 RAID磁盘阵列 2.4.6 创建RAID 2.5 进程管理 2.5.1 进程状态 2.5.2 进程管理命令 2.6 服务管理 2.7 软件包管理 2.7.1 RPM软件包管理 2.7.2 YUM软件包管理 2.7.3 YUM源管理 2.8 文本编辑器 2.9 本章小结 2.10 本章习题 第3章 Shell 3.1. Shell概述 3.1.1 什么是Shell 3.1.2 Shell的分类 3.1.3 Shell的使用技巧 3.2 Shell中的变量 3.2.1 本地变量 3.2.2 环境变量 3.2.3 位置变量 3.2.4 特殊变量 3.3 Shell中的符号 3.3.1 引号 3.3.2 通配符 3.3.3 连接符 3.4 正则表达式 3.4.1 正则表达式的概念 3.4.2 元字符 3.5 文本处理工具 3.5.1 grep 3.5.2 sed 3.5.3 awk 3.6 Shell脚本 3.6.1 判断结构 3.6.2 循环结构 3.6.3 break与continue 3.6.4 Shell脚本的基本元素与执行方式 3.7 脚本运维实例 3.7.1 模拟用户登录 3.7.2 监控系统运行情况 3.7.3 备份MySQL数据库 3.8 本章小结 3.9 本章习题 第4章 内核编译与管理 4.1 Linux内核 4.1.1 内核概述 4.1.2 内核的开发与更新 4.1.3 内核版本 4.2 内核的编译安装 4.2.1 获取内核源码 4.2.2 编译与安装 4.3 内核模块管理 4.3.1 内核模块概述 4.3.2 查看内核模块 4.3.3 加载与卸载 4.3.4 修改内核参数 4.4 本章小结 4.5 本章习题 第5章 网络服务 5.1 计算机网络基础 5.1.1 协议与体系结构 5.1.2 数据传输流程 151 5.1.3 IP地址与端口号 5.1.4 子网掩码 5.1.5 协议与服务 5.2 DHCP服务 5.2.1 DHCP常用术语 5.2.2 DHCP的工作流程 5.2.3 安装配置DHCP 5.3 DNS服务 5.3.1 DNS简介 5.3.2 安装DNS 5.3.3 BIND配置文件详解 5.3.4 部署主从DNS服务器 5.4 电子邮件服务 5.4.1 电子邮件服务概述 5.4.2 电子邮件协议 5.4.3 基于Postfix的邮件发送 5.4.4 基于Dovecot的邮件收取 5.5 FTP服务 5.5.1 FTP概述 5.5.2 VSFTP简介 183 5.5.3 配置匿名FTP服务器 186 5.5.4 禁止指定用户登录 190 5.6 本章小结 191 5.7 本章习题 191 第6章 集中化运维工具—Ansible和SaltStack 6.1 运维概述 6.1.1 什么是运维 6.1.2 传统的运维面临的问题 6.2 Ansible 6.2.1 Ansible简介 6.2.2 YAML简介 6.2.3 Ansible的安装 6.2.4 配置SSH无密码登录 6.2.5 主机目录 6.2.6 Ansible常用模块 6.2.7 playbook 6.2.8 playbook的基本语法 6.2.9 role(角色) 6.3 SaltStack 6.3.1 SaltStack简介 6.3.2 SaltStack的安装配置 6.3.3 远程命令 6.3.4 模块方法 6.3.5 grains组件 6.3.6 pillar 6.3.7 state 6.3.8 部署LAMP环境 6.4 本章小结 6.5 本节习题 第7章 监控系统 7.1 监控系统简介 7.2 监控软件简介 7.3 Zabbix的安装与配置 7.3.1 Web环境搭建 7.3.2 Server端安装配置 7.3.3 Agent端安装配置 7.3.4 连通性测试 7.4 如何使用Zabbix 7.4.1 创建Zabbix用户 7.4.2 添加Host 7.4.3 配置Item 7.4.4 创建Trigger 7.4.5 设置Action 7.5 数据可视化 7.5.1 图表的使用 7.5.2 分屏的实现 7.6 Zabbix中的模板 7.6.1 新建Template 7.6.2 关联Template 7.7 Zabbix中的宏 7.8 本章小结 7.9 本章习题 第8章 网络安全与防火墙 8.1 网络安全 8.1.1 网络安全简介 8.1.2 威胁网络安全的因素 8.2 网络攻击与防御 8.2.1 常见的网络攻击类型 8.2.2 常用的防御措施 8.3 防火墙 8.3.1 防火墙概述 8.3.2 防火墙的分类 8.3.3 防火墙技术 8.4 IDS 8.4.1 IDS概述 8.4.2 IDS分类 8.5 IPS 8.6 iptables 8.6.1 iptables简介 8.6.2 iptables状态检测 8.6.3 iptables的规则编写 8.7 firewalld 8.7.1 firewalld简介 8.7.2 命令行管理方式 8.7.3 图形界面管理方式 8.8 本章小结 8.9 本章习题 第9章 KVM虚拟化技术 9.1 虚拟化简介 9.1.1 虚拟化概述 9.1.2 软件虚拟化和硬件虚拟化 9.1.3 半虚拟化与全虚拟化 9.1.4 主流虚拟化产品 9.2 KVM虚拟化原理与架构 9.2.1 系统虚拟化原理 9.2.2 KVM虚拟化原理与架构 9.3 搭建KVM虚拟化环境 9.3.1 硬件环境要求 9.3.2 KVM安装配置 9.4 KVM核心配置 9.4.1 CPU配置中的基本概念 9.4.2 CPU配置 9.4.3 内存虚拟化 9.4.4 内存配置 9.5 Libvirt 9.5.1 Libvirt概述 9.5.2 Libvirt域的XML配置文件 9.5.3 virsh 9.5.4 virt-manager 9.6 本章小结 9.7 本章习题