ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

90DaysOfDevOps 第 14 天:用 HashiCorp Vagrant 在 VirtualBox 中一键搭建 Ubuntu Linux 桌面虚拟机

90DaysOfDevOps 第 14 天:用 HashiCorp Vagrant 在 VirtualBox 中一键搭建 Ubuntu Linux 桌面虚拟机 文档/教程【免费下载链接】90DaysOfDevOpsThis repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.项目地址https://gitcode.com/gh_mirrors/90/90DaysOfDevOps点击查看免费下载本文是 90DaysOfDevOps 学习路线中 Linux 专题的开篇Day 14核心解决一个问题为什么 DevOps 工程师离不开 Linux以及如何用 HashiCorp Vagrant 以基础设施即代码的方式在 VirtualBox 上通过一条vagrant up命令自动创建并登录 Ubuntu 20.04 桌面虚拟机。读完你将掌握 VAGRANTFILE 的编写与参数含义、Box 与 Provider 的概念、NAT 网络与 SSH 登录机制为后续 7 天的 Linux 命令行实战搭建一个可重复复现的实验环境。DevOps 与 Linux为什么运维工程师绕不开 Linux在 90DaysOfDevOps 的学习地图中Linux 是贯穿始终的基础设施底座。文档从宏观视角给出了几个关键判断文化与理念同源Linux 与 DevOps 拥有非常相似的文化和观点两者都聚焦于定制化Customization与可扩展性Scalability这两点恰恰是 DevOps 工程实践的核心诉求。技术源头在 Linux大量技术栈——尤其是与软件开发、基础设施管理相关的技术——都诞生于 Linux 平台。工具链天然面向 Linux许多开源项目特别是 DevOps 工具从设计之初就明确以 Linux 为首要运行环境。运维角色以 Linux 为主无论从 DevOps 还是任何运营角色的视角看日常打交道的大概率是 Linux 服务器WinOps 有其存在空间但绝大多数时间你管理、部署的都是 Linux 服务器。文档作者还分享了亲身经历他多年日常使用 Linux但主力桌面一直是 macOS 或 Windows转入云原生Cloud Native岗位后才下定决心让笔记本完全基于 Linux、作为日常主力机即便部分工作应用和音视频设备仍需 Windows 支撑。这种强制自己日常使用 Linux 桌面的做法能倒逼你更快地学会在 Linux 上解决问题——这也是本专题 7 天计划的教学思路。为什么选择 Vagrant 而不是手动安装 ISO要开始 Linux 学习最朴素的路线是下载 VirtualBox 和 Ubuntu ISO手工完成安装与配置。但文档明确指出那不太 DevOps。因为手动安装过程不可重复、不可版本化而 DevOps 的核心之一就是把环境描述为代码。本专题 7 天的实验方案是在 Windows 主机的 VirtualBox 中部署一台桌面版Linux 发行版虚拟机现实中你要管理的多数 Linux 服务器是无 GUI、纯 shell的桌面版更多是为了完整的学习体验学习过程从 Vagrant 入手把虚拟机定义写成文件随时可重建、可迁移。选择Ubuntu作为发行版的理由也写得很清楚绝大多数 Linux 发行版免费且开源在不考虑移动设备与企业级 RedHat Enterprise 服务器的前提下Ubuntu 是部署最广泛的发行版之一对照 CentOS 的演进历史Ubuntu 的流行度与简洁性都极具优势。HashiCorp Vagrant 入门安装与生态Vagrant 是 HashiCorp 出品的命令行工具用于管理虚拟机的完整生命周期——从创建、配置、启动到销毁都能通过命令完成。它的关键特性是多平台 Provider 支持Provider说明VirtualBox本教程使用的虚拟化平台跨 Windows / macOS / LinuxvSphere面向 VMware 虚拟化/云基础设施Hyper-V微软虚拟化平台Docker容器运行时可作为轻量级机器提供者安装分两步两者都相当简单且有成熟社区支持安装 Vagrant从 HashiCorp 下载页获取对应操作系统的二进制文档作者在 Windows 上直接下载并安装。安装 VirtualBox跨平台支持Windows、macOS、Linux 均有对应安装包。补充提示仓库英文原版文档中有一条来自社区 issue 的备注——使用 M1 芯片的 macOS 用户可以考虑用 [Multipass] 替代 Vagrant VirtualBox 组合。如果你的宿主机是 Apple Silicon Mac这是更顺滑的起点。第一个 VAGRANTFILE把虚拟机环境写成代码VAGRANTFILE 是 Vagrant 的声明式配置文件它描述要部署的机器类型并定义该机器的资源配置与预置Provisioning方式。文档建议的目录组织习惯是把每个 VAGRANTFILE 放在工作区对应的独立文件夹中如下图所示这样既便于切换不同项目也方便日后发行版跳槽distro hopping时反复试验不同 Linux 桌面。仓库中已保存了这份真实可用的 VAGRANTFILE路径为 2022/Days/Linux/VAGRANTFILE内容如下Vagrant.configure(2) do |config| config.vm.box chenhan/ubuntu-desktop-20.04 config.vm.provider :virtualbox do |v| v.memory 8096 v.cpus 4 v.customize [modifyvm, :id, --vram, 128] end end逐行拆解这段配置Vagrant.configure(2)声明使用 Vagrant 配置 API 的v2 版本这是当前主流语法config.vm.box chenhan/ubuntu-desktop-20.04指定要使用的Box。Box 可以理解为预打包好的系统镜像——既可能是社区公开镜像也可能是私有构建。Vagrant 公共 Box 目录app.vagrantup.com中可以检索到海量公开 Boxconfig.vm.provider :virtualbox do |v|进入 provider 配置块明确告诉 Vagrant 用VirtualBox作为底层提供者v.memory 8096为虚拟机分配8096 MB约 8 GB内存v.cpus 4分配4 个 CPU 核心v.customize [modifyvm, :id, --vram, 128]通过VBoxManage modifyvm指令把**显存VRAM**提升到 128 MB——桌面环境常见显示问题黑屏、花屏、分辨率异常往往靠加大显存解决具体取值取决于宿主机性能。如果你的桌面显示仍有异常可以在此基础上调整显存v.customize [modifyvm, :id, --vram, 256]把值从 128 提高到 256 甚至更高即可这对应着 VirtualBox 的--vram参数单位为 MB。用 vagrant up 拉起虚拟机全流程解读在宿主机终端文档作者使用 Windows 上的 PowerShell进入 VAGRANTFILE 所在目录执行vagrant up首次执行时Vagrant 会自动完成一整套流程输出与下图类似从实际输出可以看到完整的自动化链路Box 获取本地不存在chenhan/ubuntu-desktop-20.04时Vagrant 自动从公共源完成查找、下载与添加虚拟机导入基于 Box 导入并创建新的虚拟机实例NAT 网络配置为虚拟机配置默认的NAT网络模式VirtualBox 的默认网络模式。NAT 是让虚拟机接入家庭/办公网络最简单的一键式方式关于 NAT 的深层原理文档计划在后续 Networking 专题中系统讲解端口转发将宿主机的2222端口转发到虚拟机的22端口SSH 地址显示为127.0.0.1:2222SSH 密钥注入SSH 用户默认为vagrantVagrant 自动生成、替换并配置 SSH 密钥实现免密直连系统启动启动虚拟机比对 VirtualBox Guest Additions 版本并挂载共享文件夹。vagrant up执行完成后网络已就绪、SSH 已配好直接运行vagrant ssh即可一步跳进新虚拟机的终端无需再输入用户名密码注意提示符的变化宿主机 PowerShell 提示符如PS C:\Users\micha\demo\vagrant\ubuntu2004变成了虚拟机内的vagrantvagrant:~$并显示 Ubuntu 20.04 LTS 的欢迎与系统状态信息——说明你已经身处 Linux 环境内部接下来的几天将在这里完成大部分探索。vagrant ssh 登录与默认凭据除了通过vagrant ssh进入终端在 VirtualBox 管理界面选中该虚拟机也会看到图形化的登录提示界面。如果你在阅读过程中一直想问用户名和密码到底是什么答案是Username用户名vagrantPassword密码vagrant这两个默认凭据是 Vagrant 为公开 Box 统一约定的vagrant ssh正是利用这套机制配合自动注入的密钥完成免密登录。登录后文档还预告了后续的开发者工作站定制例如配置非标准终端等个性化设置让这台虚拟机真正成为日常驱动级的 DevOps 实验台。仓库配套Linux 目录中的用户管理脚本除 VAGRANTFILE 外仓库的 2022/Days/Linux 目录还附带了一个用户管理脚本 create-user.sh与虚拟机的用户体系管理直接相关适合在 VM 内创建自定义账户#! /usr/bin/bash if [ -z ${1} ] then echo What is your intended username? read username echo What is your password read password #A user can be passed in as a command line argument echo $username user account being created. #A user is created with the name of command line argument sudo useradd -m $username #A password can be parsed in as a command line argument. sudo chpasswd $username:$password sleep 2 echo If you want to delete the user then pass del and username in command line argument. e.g: ./create-user.sh del username else sudo userdel -rf ${2} sleep 2 echo ${2} user account successfully deleted. exit 0 fi脚本逻辑清晰且实用无参数运行交互式读取用户名与密码然后通过sudo useradd -m创建带主目录的用户再用sudo chpasswd批量设置密码带参数运行传入del username时用sudo userdel -rf强制删除用户及其主目录它演示了 Linux 用户管理的核心命令useradd、chpasswd、userdel正好可以作为本专题动手练习的素材。后续学习路径与免费资源至此你已拥有一台可随时vagrant up拉起、vagrant destroy销毁的 Ubuntu 桌面虚拟机这是后续 Linux 实战的稳定试验场。按照 90DaysOfDevOps 的路线接下来的 Day 15 将正式进入终端命令的学习——正如文档所说终端将成为让一切发生的地方。文档作者还整理了面向初学者的免费学习资源与 Go 语言专题一样刻意保持免费可及Learn the Linux Fundamentals - Part 1Linux 基础入门系列Linux for hackers以攻防视角切入 Linux适合对命令行生态感兴趣的学习者。围绕 Day 14 的核心目标——用代码描述并一键拉起 Linux 环境——本文已经覆盖了从理念DevOps 与 Linux 的关系、工具选型Vagrant VirtualBox Ubuntu到 VAGRANTFILE 逐行解析、vagrant up/vagrant ssh实操全流程的完整闭环。把这份 VAGRANTFILE 保存好你就拥有了可复现、可版本化的 Linux 学习环境。赞分享文档/教程【免费下载链接】90DaysOfDevOpsThis repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.项目地址https://gitcode.com/gh_mirrors/90/90DaysOfDevOps点击查看免费下载相关推荐90DaysOfDevOps 第 14 天用 HashiCorp Vagrant 在 VirtualBox 中一键拉起 Ubuntu Desktop 虚拟机90DaysOfDevOps 第 14 天用 HashiCorp Vagrant 在 VirtualBox 中一键拉起 Ubuntu Desktop 虚拟机文档/教程90DaysOfDevOps 实战用 HashiCorp Vagrant 与 VirtualBox 一键拉起 Ubuntu 桌面虚拟机90DaysOfDevOps 实战用 HashiCorp Vagrant 与 VirtualBox 一键拉起 Ubuntu 桌面虚拟机 本文是 90DaysO文档/教程90DaysOfDevOps 实战用 HashiCorp Vagrant 在 VirtualBox 上部署 Ubuntu 桌面虚拟机90DaysOfDevOps 实战用 HashiCorp Vagrant 在 VirtualBox 上部署 Ubuntu 桌面虚拟机 本篇是 90DaysOf文档/教程上一篇pkNX宝可梦ROM编辑器上手指南10分钟跑通第一次修改与随机化下一篇FlicFlac快速上手3分钟玩转Windows免费音频格式转换创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表