kicks|装在笔记本里的私有云环境:准备篇( 三 )


除此之外,还有两个可以参考的选择。
复古党的选择:KickStart很早之前,Ubuntu 官方就在 WIKI 中分享了一个方案:Kickstart
The Ubuntu installer supports automating installs using Kickstart files, as designed by Red Hat for use in their Anaconda installer. This method is not as flexible as the preconfiguration file method above, but it requires less knowledge of how the installer works.
不过,随着 Ubuntu 版本的更新迭代,在适合 Kickstart 使用的官方镜像下载页面,你会收到旧版镜像停止维护的提示。国外有一位同学记录和分享了他在过程中遇到的问题。所以是否继续使用这个方案,你可以自行确定。
紧跟时代的选择:Cloud-InitCloud Init 在 Ubuntu 18.04 中被实装,官方在文档中有提到它该如何使用。不过不得不吐槽,官方 YAML 看起来简洁,但是一套配置下来,快赶上 K8S 配置文件了。
但是好处是,几乎你知道的云服务商,都可以和它配合使用。
额外的细节处理:vm-agent有一个小细节,如果你使用的是 ESXi,它会自动帮你在安装的时候安装 VM-Tools,而如果是 PVE,则需要自行安装 qemu-guest-agent,虚拟机中的这个 agent 软件还是蛮有用的,能够帮你正确的处理关机,以及实时提供虚拟机网络状态。
网络地址固定在虚拟机系统安装完毕之后,可以先整理一下虚拟机的地址,方便我们后续的操作。
kicks|装在笔记本里的私有云环境:准备篇
文章插图

在路由器中,使用 DHCP 分配的 IP 地址会随着设备停止使用而被回收,所以为了稳定使用,我们还需要进行网络地址固定,绑定的方式有两种,你可以使用 DHCP 配置来声明对于指定 MAC 地址要分配的 IP 地址。
kicks|装在笔记本里的私有云环境:准备篇
文章插图

也可以随遇而安,路由分配什么地址,给他手动分配绑定死了就行。
kicks|装在笔记本里的私有云环境:准备篇
文章插图

Base 虚拟机设置前文中提到了,我将一台机器作为 “Base”,提供一些基础服务,比如 APT 软件缓存、SSO 等,所以为了方便后续其他服务使用,我先在 DHCP 中将一些域名指向配给了这台机器。
address=/base.lab.com/10.11.12.189
address=/.lab.com/10.11.12.189
address=/*.lab.com/10.11.12.189
在这台机器上,我目前只运行了一些简单的应用:
a87d66da9689dist.lab.com0.00%7.316MiB / 3.844GiB0.19%2.06kB / 0B6.47MB / 0B3
e1ff56206ca3traefik0.03%17.2MiB / 3.844GiB0.44%1.19GB / 1.19GB63.1MB / 0B999c5f8430237sso-traefik-forward-auth-10.00%1.785MiB / 3.844GiB0.05%1.78kB / 0B7.99MB / 0B477e914ee4d3elogin.console.lab.com0.00%16.07MiB / 3.844GiB0.41%1.78kB / 0B39.8MB / 0B7d5db9d9a6f47docker.lab.com0.00%3.633MiB / 3.844GiB0.09%3.33kB / 0B61.4kB / 0B39d0474ecbb86docker-registry.lab.com0.05%10.3MiB / 3.844GiB0.26%8.72kB / 2.42kB19.3MB / 0B9e3d01fa870cdcache.lab.com0.00%229.9MiB / 3.844GiB5.84%6.11MB / 1.19GB240MB / 16.4kB4
上面的程序中,包含一个能够提供服务发现的 traefik 网关、一个用于提供静态资源下载的 Nginx 服务、一套 SSO 认证程序、一个 APT 软件包缓存服务、一套容器仓库。
这里部分内容,我曾在之前的文章中提到过。至于完整的部署细节,我将在后续的文章中逐步展开。
快速初始化其他虚拟机不论你选择使用什么方式进行系统安装,系统安装完毕之后,我们需要对它们进行一些初始化操作,安装一些基础运行环境,以及常用软件。
相比较安装过程中的解压缩、配置等本地计算过程,远程下载会浪费非常多时间。所以这里可以通过一个小技巧,来节约时间,提升使用体验:《使用容器搭建 APT Cacher NG 缓存代理服务》。
在搭建完毕第一台虚拟机系统之后,你便可以选择在 Cloud-Init、Kickstart 安装过程中配置脚本、软件源,或者也可以采取在系统安装完毕之后,使用 SSH 批量远程执行类似下面的脚本。