Vagrant 通用环境打包 - Ubuntu 20.04 Base
Vagrant 通用环境打包 - Ubuntu 20.04 Base
准备:
1. Ubuntu 20.04 安装
创建虚拟机:设置虚拟机名称,选择虚拟机存储路径,选择准备好的镜像
虚拟机名称随意,这里使用的命名规则为
<系统名>-<版本号>-<环境(server/desktop)>-<语言(zh/en)>-prototype
虚拟机存储路径保证拥有足够的空间,可以在创建时修改或者修改全局设置

硬件设置:内存 2G,核心数分配 2 核即可
核心数分配单核也可以,不过部分 Linux 系统会出现出现内核 Panic 无法启动的情况

硬盘设置:动态分配 50G
50G 的空间主要用来安装应用并不承担用户数据负载,实际的数据在使用过程中直接与宿主机共享
❓Windows 与 Linux 虚拟机文件共享时文件系统不一致问题

概览:

启动虚拟机进入系统安装界面
默认英语,直接选择 Install Ubuntu 即可

键盘语言:直接保持默认,English(US) - English(US)

软件预装与更新设置:直接继续就可以了——保持「常规安装」与「安装时下载更新」
这里选择「最小化安装」是为了缩小打包后的环境大小,相应的一些实用的软件就没有了;
不选择「安装时下载更新」可以节省安装时间:大多数时候APT 源能够正常更新,但比较慢;可以在安装完成之后手动换源再去更新

硬盘分区设置:因为我们分配了一个空的硬盘,直接让系统自动配置即可
第二个选项会能够让你自定义硬盘的分区设置,没有特殊要求一般不选

上一步选 「立刻安装」之后会跳出分区表的概览,继续即可
时区选择:Shanghai

用户名密码设置:全都设置为 vagrant
创建 Vagrant 基础环境的话,用户名密码强制为
vagrant;如果只是简单地创建一个虚拟机,随意

等待安装完成之后,重启
安装完成之后可以在
Virtual Box中为当前虚拟机创建一个快照,可以避免误操作导致系统损坏又要重新安装一次
2. 基础环境配置
更换软件源:系统设置 → 关于 → 软件更新 → 选择一个镜像


# 更新软件仓库
sudo apt update安装增强工具:
安装「增强工具」依赖
sudo apt install -y build-essential perl虚拟机菜单栏 → 设备 → 安装增强功能,然后跳出自动安装窗口点击运行

SSH 服务:
# 安装 ssh 服务并启动,设置 ssh 自启
sudo apt install -y ssh
sudo systemctl start ssh
sudo systemctl enable sshVagrant 相关设置(可选):
# 设置 root 密码为(不带引号) 'vagrant'
sudo passwd root
# 设置 vagrant 用户 sudo 不需要密码
# 最后一行追加 vagrant ALL=(ALL) NOPASSWD: ALL
sudo visudo
# 设置 vagrant 用户 ssh 免密登录
cd ~
mkdir .ssh && chmod 0700 .ssh
touch .ssh/authorized_keys && chmod 0600 .ssh/authorized_keys
echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" \
> .ssh/authorized_keys
#echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN1YdxBpNlzxDqfJyw/QKow1F+wvG9hXGoqiysfJOn5Y vagrant insecure public key" > .ssh/authorized_keys
# 设置 ssh 私钥认证
# 删除 PubkeyAuthentication 前面的注释
sudo sed -e "s|^#PubkeyAuthentication|PubkeyAuthentication|g" -i.bak /etc/ssh/sshd_config
# 验证私钥
ssh -Tv -i .\.ssh\id_rsa.vagrant -p2200 vagrant@127.0.0.1
# 清除命令历史
echo '' > ~/.bash_histroy
history -cVagrant 相关设置是作为打包成 Vagrant 环境的必要条件,因此如果需要将当前环境打包为 Vagrant Box 则此步骤不可省略
3. 打包
确保 Vagrant 已正确安装,启动 PowerShell 执行以下命令
—base参数后面跟的是前面创建的虚拟机名称;—output参数为打包输出路径加名称,不带路径的话默认为当前路径
