版本控制、云与虚拟化技术全解析
1. 版本控制与 Git
1.1 版本控制基础概念
版本控制有几个关键要点:
- 版本控制并不要求文件名包含版本号。
- 以下关于版本控制的陈述是正确的:选项 A、C、D 和 E 都包含了关于版本控制的真实陈述,所以它们是正确答案。
1.2 Git 的区域划分
Git 在概念上分为不同的区域:
|区域名称|说明|
| ---- | ---- |
|工作目录|用户实际操作文件的地方|
|暂存区(也称为索引)|用于准备提交的文件区域|
|本地仓库|存储在本地计算机上的仓库|
|远程仓库|存储在远程服务器上的仓库|
1.3 Git 环境设置步骤
首次设置 Git 环境涉及以下步骤:
1. 进行必要的配置。
2. 生成 SSH 密钥(如果需要)。
3. 配置用户名和邮箱。
4. 初始化
.git/
目录。
graph LR
A[开始] --> B[配置相关信息]
B --> C[生成 SSH 密钥]
C --> D[配置用户名和邮箱]
D --> E[初始化.git/目录]
E --> F[结束]
1.4 具体案例分析
娜塔莎设置 Git 环境
娜塔莎在设置 Git 环境时,下一步应该通过
git init
命令在她的工作目录中创建并初始化
.git/
目录。以下是错误做法分析:
-
mkdir
命令用于创建工作目录,她已经完成了这一步,所以选项 A 错误。
-
git config --list
命令用于显示配置数据,应该在
.git/
目录初始化之后进行,所以选项 B 错误。
- 虽然她现在可以设置 GitHub 仓库,但这不是最佳的下一步,所以选项 C 错误。
- 由于她还在设置 Git 环境,开始创建程序文件是不正确的选择,所以选项 E 错误。
布鲁斯的 Git 操作
布鲁斯在设置 Git 配置选项时使用了
--global
选项,这些信息存储在全局
~/.gitconfig
文件中。错误选项分析如下:
- Git 配置信息不存储在 GitHub 上,而且在这种情况下 GitHub 甚至可能不被用作远程仓库,所以选项 A 错误。
- 工作目录的
.git/config
文件是本地文件,不是全局文件,所以选项 C 错误。
-
.git/index
文件和
.git/objects
目录不存储此类数据,所以选项 D 和 E 错误。
布鲁斯的下一步应该是通过
git add GreenMass.sh
命令将他的新脚本添加到暂存区(索引)。错误做法分析:
-
git init
命令用于初始化工作目录中的
.git/
目录,是设置 Git 环境的一部分,所以选项 B 错误。
- 脚本还不能提交到本地仓库,因为它还没有添加到暂存区,所以选项 C 错误。
-
git log
命令用于显示提交历史,此时不适用,所以选项 D 错误。
- 脚本在提交到本地仓库之前不能提交到远程仓库,所以选项 E 错误。
娜塔莎添加文件到暂存区
娜塔莎使用
git add .
命令将工作目录中的所有文件添加到暂存区(索引)。为了保持高效,她应该在工作目录中创建一个
.gitignore
文件,并将她希望排除在索引之外的三个文件的名称添加到该文件中。错误做法分析:
- 将三个文件移出工作目录是一种草率且低效的选择,所以选项 A 错误。
- 逐个将 22 个文件添加到索引也非常低效,创建一个新的工作目录来存放这三个文件也是如此,所以选项 B 和 C 错误。
- 临时删除这三个文件会迫使娜塔莎在其他文件添加到索引后重新创建它们,这也是草率的,所以选项 E 错误。
娜塔莎推送项目到远程仓库
娜塔莎准备将她的项目推送到远程仓库。错误选项分析:
- 虽然她之后可能回家休息,但如果项目要发布给公众,她必须先将其上传到远程仓库,所以选项 A 错误。
- 克隆远程仓库是在有人想要获取所有项目文件以及 VCS 历史记录时进行的,在这种情况下娜塔莎已经有了这些数据,所以选项 B 错误。
- 由于项目已经完成,不需要从远程仓库拉取任何文件,所以选项 D 错误。
-
remote add origin URL
命令用于配置远程仓库的地址(URL),娜塔莎已经完成了这一步,所以选项 E 错误。
分支操作
-
切换分支
:
git checkout testing命令可以让你切换到一个名为testing的新 Git 分支。错误选项分析:-
git branch testing命令用于创建一个名为testing的新分支,而不是切换到该分支,所以选项 A 错误。 -
选项 B 中的命令用于查看由
testing分支管理的任何文件的名称,所以它是错误答案。 -
git branch命令用于显示项目中的当前分支,并通过星号指定当前分支,但它不允许你切换分支,所以选项 C 错误。 -
选项 D 中的命令将执行提交到本地仓库并在日志文件中添加
testing注释,所以选项 D 错误。
-
-
合并分支
:
git merge report命令将按要求将report分支合并到master分支。错误选项分析:-
git merge master命令将尝试将master分支合并到另一个分支,但由于托尼已经在master分支中,这将不起作用(也不是他想要的),所以选项 A 错误。 -
rebase参数将尝试执行变基而不是合并,所以选项 C 和 D 错误。 -
git checkout master命令托尼已经用来进入master分支,所以选项 E 错误。
-
2. 云与虚拟化概念
2.1 云服务类型
公共云服务
公共云服务使用第三方公司托管的服务器,选项 B 正确。
混合云服务
混合云服务利用公司内部和外部第三方位置的服务器,这提供了一种在无需购买自己硬件的情况下增加服务器功能的简单方法。例如,汤姆想要增加服务器能力,混合云服务是一个好选择。错误选项分析:
- 整个私有云都在内部托管,所以汤姆需要购买额外的服务器来支持应用程序,选项 A 错误。
- 公共云完全在第三方网络外部托管,所以汤姆无法使用他当前的云服务器,选项 B 错误。
- Type I 和 Type II 是虚拟机管理程序的类型,不是云服务,所以选项 D 和 E 错误。
云服务类型对比
| 云服务类型 | 说明 |
|---|---|
| 平台即服务(PaaS) | 为客户提供完整的开发环境 |
| 基础设施即服务(IaaS) | 仅提供构建操作系统的硬件 |
| 软件即服务(SaaS) | 提供完整的应用程序,不允许开发自己的应用程序 |
2.2 虚拟机管理程序类型
Type I 虚拟机管理程序
Type I 虚拟机管理程序直接与系统硬件接口,充当中间层,控制来宾虚拟机的资源。
Type II 虚拟机管理程序
Type II 虚拟机管理程序安装在主机操作系统上,并从主机操作系统接收资源。
| 虚拟机管理程序类型 | 特点 |
|---|---|
| Type I | 直接与硬件交互,无需主机操作系统 |
| Type II | 运行在主机操作系统之上 |
2.3 虚拟机器相关文件格式
Open Virtualization Appliance(OVA)文件格式将所有虚拟机配置文件捆绑到一个单一的 tar 文件中进行分发。错误选项分析:
- Open Virtualization Format(OVF)格式定义了几个单独的文件来存储配置值,不是单个文件,所以选项 D 错误。
- XML、JSON 和 YAML 都是配置文件格式,不是捆绑配置文件的方法,所以选项 A、B 和 E 错误。
2.4 容器技术
容器优势
容器将应用程序运行时文件以及运行应用程序所需的任何库文件捆绑在一起,确保应用程序可以在任何环境中运行。错误选项分析:
- 虚拟机管理程序用于管理系统上的虚拟机,不用于部署应用程序,所以选项 B 错误。
- 将应用程序部署到私有云会使应用程序仅在内部网络可用,外部客户无法运行应用程序,所以选项 C 错误。
- 将应用程序部署为虚拟机虽然可以使应用程序一致运行,但要求每个客户在其操作系统上安装相同的虚拟机管理程序包,所以选项 D 错误。
- 将应用程序文件捆绑为 tar 文件不能确保所需的系统库在所有客户工作站上都存在,所以选项 E 错误。
容器工具
Docker 容器包作为主机操作系统上的一个进程运行,并提供一个命令行界面来控制容器。错误选项分析:
- Snap 包提供软件应用程序容器,但不提供命令行界面来控制它们,所以选项 A 错误。
- KVM、XEN 和 VirtualBox 包都是虚拟机管理程序包,不是容器,所以选项 C、D 和 E 错误。
3. 云与虚拟化服务检查
3.1 libvert 库软件集合
关于 libvert 库软件集合,以下陈述是正确的:
- 选项 A、C 和 E 都包含了关于 libvert 库软件集合的真实陈述,所以它们是正确答案。
- 该软件集合不提供完整的虚拟机管理程序应用程序(尽管许多虚拟机管理程序会纳入它),所以选项 B 错误。
- libvert 库也不提供 anaconda 文件,所以选项 D 错误。
3.2 管理虚拟机的实用工具
卡罗尔可以将
virsh
和
virt - install
实用工具纳入她的 Bash 脚本中以管理虚拟机。错误选项分析:
-
virtinst
是一个包文件的名称,它提供诸如
virsh
之类的实用工具,所以选项 B 错误。
-
virt - manage
是一个虚构的实用工具,所以选项 C 错误。
-
setvcpus
是可以与
virsh
实用工具一起使用的参数,而不是一个实用工具本身,所以选项 E 错误。
3.3 系统安装树存储位置
对于系统安装,安装树的存储位置取决于安装类型:
- 对于物理安装,通常使用 kickstart 方法,安装树存储在网络位置或可移动介质(如 USB 闪存驱动器)中,所以选项 A 和 B 正确。
- 对于虚拟机安装,安装树(或 ISO)通常与 kickstart 文件一起存储,所以选项 E 正确。
- AutoYaST 和 preseed 分别是 openSUSE 和 Ubuntu 发行版中 kickstart 的替代方法,所以选项 C 和 D 错误。
graph LR
A[安装类型] --> B{物理安装}
A --> C{虚拟机安装}
B --> D[网络位置]
B --> E[USB 闪存驱动器]
C --> F[与 kickstart 文件一起存储]
3.4 cloud - init 应用
关于 cloud - init 应用,以下陈述是正确的:
- 选项 B、C、D 和 E 都是关于 cloud - init 应用的真实陈述,所以它们是正确答案。
- cloud - init 产品是由 Canonical 创建和维护的,选项 A 错误。
3.5 虚拟机器存储配置
丹弗斯女士的选择
丹弗斯女士最好将三个虚拟机配置为使用精简配置存储。这种方法允许虚拟机立即使用 1 TB 主机磁盘空间中的 600 GB,并根据需要随时间增长(这称为超额配置)。当虚拟机的数据增长时,她可以为她的主机购买额外的磁盘空间并将其添加到逻辑卷中。错误选项分析:
- 没有足够的信息来确定虚拟机的磁盘应该配置为永久还是临时,所以选项 A 和 B 错误。
- 厚配置会导致三个虚拟机分配 1.2 TB 的磁盘空间,而这是不可用的,所以选项 C 错误。
- Blob 存储用于 Microsoft Azure 虚拟机,问题中没有表明丹弗斯女士使用的是这个云提供商环境,所以选项 E 错误。
弗瑞先生的选择
弗瑞先生的编程学生整个学期都在开发一个程序,所以虚拟机存储需要配置为持久存储。这将允许学生在虚拟机上访问和修改他们的程序,而无需每次虚拟机启动时重新创建它。错误选项分析:
- 如果使用临时存储,学生每次虚拟机启动时都需要重新创建他们的程序,所以选项 B 错误。
- 问题中没有讨论厚配置或精简配置存储的需求,所以选项 C 和 D 错误。
- Blob 存储用于 Microsoft Azure 虚拟机,问题中没有表明这是弗瑞先生使用的云提供商环境,所以选项 E 错误。
3.6 网络虚拟化
覆盖网络
覆盖网络是一种网络虚拟化方法,它采用封装和通道带宽隧道技术。错误选项分析:
- 它不是一种存储虚拟化方法,所以选项 A 错误。
- 它不使用页面 blob(这是 Microsoft Azure 平台的存储选项),所以选项 E 错误。
虚拟网卡配置
| 网卡配置类型 | 特点 | 适用场景 |
|---|---|---|
| 桥接适配器 | 虚拟机可以作为主机局域网的节点,获取自己的 IP 地址进行网络通信 | 需要虚拟机与外部网络直接通信的场景 |
| 仅主机配置的 NIC | 只能在主机内部网络通信,无法与外部网络通信 | 测试、开发等不需要外部网络访问的场景 |
| NAT 适配器 | 虚拟机的 IP 地址保持私有,使用主机的 IP 地址进行网络通信 | 需要隐藏虚拟机 IP 地址的场景 |
| 多宿主 | 虚拟机使用多个虚拟网卡 | 需要多网络连接的复杂场景 |
| 双宿主 | 虚拟机使用两个虚拟网卡 | 如防火墙虚拟机的场景 |
卡罗尔的虚拟机要作为主机局域网的节点并获取自己的 IP 地址进行网络通信,需要将它们配置为桥接适配器。错误选项分析:
- 仅主机配置的 NIC 无法在外部网络通信,所以选项 A 错误。
- NAT 适配器不允许虚拟机作为主机网络的节点独立运行,所以选项 C 错误。
- 多宿主和双宿主是描述虚拟机使用网卡数量的,不是这里需要的配置类型,所以选项 D 和 E 错误。
配置为 NAT 适配器的虚拟机会将其 IP 地址保持私有,并使用主机的 IP 地址在主机网络上进行通信。错误选项分析:
- 仅主机配置的 NIC 无法在外部网络通信,所以选项 A 错误。
- 桥接适配器不会保持其分配的 IP 地址私有,所以选项 B 错误。
- 多宿主和双宿主是描述虚拟机使用网卡数量的,所以选项 D 和 E 错误。
尼克的防火墙虚拟机要对其他四个虚拟机起到防火墙作用,需要一个仅主机适配器与本地内部网络上的其他机器通信,还需要一个桥接 NIC 作为主机网络的节点。由于这个防火墙虚拟机有两个虚拟网卡,它被认为是双宿主。错误选项分析:
- NAT 配置类型在这个场景中不需要或未被使用,所以选项 C 错误。
- 由于只需要两个虚拟适配器,不是多宿主(超过两个)配置,所以选项 D 错误。
超级会员免费看
1841

被折叠的 条评论
为什么被折叠?



