kvm

去年初时,我曾在 Twitter 上发过一推:

现在,你所看到的内容便是我当初设想的完整呈现。KVM 即 Kernel-based Virtual Machine,也就是基于 Linux 内核的虚拟机。这项自由、开源的虚拟化技术目前堪称云计算的基本动力。AWS、Google Cloud、DigitalOcean、OpenStack 等全都使用 KVM 虚拟化技术。通过本书,我在介绍为何要构建 QEMU/KVM、Libvirt、Packer、Vagrant 这套工具链组合的同时,主要探讨了下列主题:

  • 自动化的虚拟机生命周期管理,包括创建、启动、关闭及销毁。
  • 自动化安装客户机操作系统,例如:Debian、Ubuntu、CentOS、Alpine Linux、OpenBSD 等等,并创建虚拟机镜像模板。
  • 自动化部署各种应用和服务开发环境,包括 LEMP(Linux、NGINX、MariaDB、PHP)栈、Git 源代码管理服务器、文件同步共享服务器、CI/CD(持续集成/持续交付)系统等案例。

总之,我们尽可能将 KVM 虚拟机的管理工作流自动化,以便避免枯燥乏味的重复性工作,从而最大化我们的工作效率。

目录

第 1 章 虚拟化工具链概述

  1. 我们的期望和目标
  2. 虚拟化工具链架构
  3. 准备虚拟化工具链
  4. 小结

第 2 章 使用 Packer 创建系统镜像

  1. 了解 Packer 的术语
  2. 剖析 Packer 的模板文件
    1. 变量(variables)
    2. 构建器(builders)
  3. 执行构建
  4. 供应者(provisioners)
    1. 定义供应者
    2. Shell 供应脚本
    3. 构建系统镜像
  5. 后期处理(post-processors)
  6. 疑难解答
  7. 常用 Packer 模板示例
    1. Ubuntu 19.10
    2. Fedora 31
    3. CentOS 8.1
    4. Arch Linux
    5. Gentoo
    6. Alpine Linux 3.11
    7. openSUSE 15.1
    8. NixOS 19.09
    9. FreeBSD 12.1
    10. OpenBSD 6.6
  8. 小结