使用cloud-init快速初始化ubuntu虚拟机

201次阅读
没有评论

一般来说,安装 ubuntu 等系统都是用官方提供的 iso 镜像进行安装。如果是 UbuntuDesktop 还好,图形化界面安装,比较直观。但是 ubuntu server 没有界面,在尝试安装 ubuntu server 版的时候,iso 安装有一堆磨磨唧唧的设置,其实本地虚拟机并不需要那么多精细的选项,只要能用就行。
目前,各大云服务厂商都提供了各种系统的 vps,他们一般是通过所谓 cloud-init 的技术进行快速初始化的。

cloud-image

一台机可以正常启动的机器,可以简单的分成两部分,系统和硬件。linux 系统广泛的兼容各种厂商的硬件(intel amd 等各种硬件配置),并且得益于虚拟化技术以及 linux 内核驱动的完善,各种硬件的区别都被抹平了,以至于完全一样的系统可以运行在各种硬件上。
这样,其实完全可以免去安装的步骤,把安好系统的硬盘插在全新的硬件上,基本上不会有什么问题,直接就能启动。
这样的免安装(预原装)系统镜像,被称为 Cloud Image,其中 ubuntu 提供了各种格式的镜像。可以从这里下载:Ubuntu Cloud Image 或国内 镜像站

cloud-inti

cloud-image 仍存在一些问题,显而易见的,cloud image 系统的密码怎么设置,网络,host 等怎么设置。例如上边的 Ubuntu Cloud Image 下载下来就没有默认密码,所以根本登录不了。再这样的背景下 cloud-inti 应运而生,我们在上面下载的硬盘镜像里,就安装了 cloud-init。
简单地说,支持 cloud-inti 的系统在开机时,会去指定位置找配置文件,根据配置文件配置密码,网络什么的,我们要做的就是生成一个有效的配置文件。

cloud-inti 配置文件

我们自己用,可以挂载一个内含配置文件的 iso。cloud-init 会在开机时自动找到我们的配置文件。把他下载下来,通过 UltraISO 等软件进行编辑,修改成自己想要的密码。网络和主机名在 meta-data 文件里配置,密码在 user-data 里配置,都是 yaml 格式。在然后挂载 iso 到虚拟机上,系统就会自动加载配置文件。

生成配置文件

这里讲的很清楚,我就不在赘述了
https://docs.aws.amazon.com/linux/al2023/ug/seed-iso.html

这里为大家准备了一个配置配好的 iso
https://www.123pan.com/s/3z9rVv-meEHd.html

账号是 ubuntu,密码是 123
也可以用 root,密码也是 123
二者均允许 ssh 登录。

#cloud-config
write_files:
- path: /etc/issue
content: |
\ +---------------------+
\ | User | Password|
\ +---------------------+
\ | root | 123 |
\ | ubuntu | 123 |
\ +---------------------+
IP Address: \4
\
append: true
- path: /etc/ssh/sshd_config
content: |
PermitRootLogin yes
append: true
ssh_pwauth: True
chpasswd:
list: |
root:123
expire: False
timezone: Asia/Shanghai
users:
- name: ubuntu
groups: sudo
sudo: ['ALL=(ALL) NOPASSWD:ALL']
plain_text_passwd: '123'
lock_passwd: false

祖传代码

# ubuntu 切换国内源
sudo sed -i "s@http://.*archive.ubuntu.com@http://mirrors.ustc.edu.cn@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@http://mirrors.ustc.edu.cn@g" /etc/apt/sources.list
# 装上图形界面
sudo apt install ubuntu-desktop
正文完
 0
评论(没有评论)