注:
- Oracle 提供的免费实验室环境中提供了此教程。
- 它对 Oracle Cloud Infrastructure 身份证明、租户和区间使用示例值。完成实验室后,请用特定于您的云环境的实验室值替换这些值。
Oracle Cloud Infrastructure 基础知识入门
简介
本教程的目标是演示 Oracle Cloud Infrastructure (OCI) 的基本功能,并允许学员开始思考使用云基础设施的创新方法。在此教程中,将展示在 OCI 中部署单实例 Web 应用程序环境是多么简单。应用需要安全的虚拟云网络 (VCN)、计算实例和附加的块存储卷存储。我们将为 Web 服务器安装和配置开源 Apache。成功部署系统后,我们将说明如何轻松地从初始实例重新使用引导卷和块存储卷。在灾难恢复或扩展计算和存储资源方面,类似的体系结构很有用。
在本教程中,您将学习:
- 创建虚拟云网络
- 在云中部署基于 Linux 的虚拟机
- 将块存储卷存储连接到实例
- 通过安全连接远程登录
- 安装和配置简单的 Web 应用程序
- 终止实例并将引导卷和块存储卷传输到其他实例
创建 VCN
-
从“OCI 服务”菜单中,选择网络 > 虚拟云网络。
-
在创建 VCN 之前,您需要有权创建资源的区间中。在列表范围部分中,找到区间下拉字段并使用加号展开根选择,直到找到分配的区间为止。您的根区间和租户可能不同于后面的屏幕抓图。如果您使用 Oracle 提供的免费动手实验室,请选择为您创建的区间,名称将以单词 luna 开头。注: 您无法在根、Luna-Labs 或 ManagedCompartmentForPaaS 区间中创建任何资源。
-
单击 Start VCN Wizard 按钮。注 验证是否选择了正确的区间。
-
选择单选按钮以创建 VCN 和 Internet 连接,然后从弹出式屏幕底部再次选择启动 VCN 向导按钮。
-
使用以下信息填写配置表单:(应该已填写默认 CIDR 块。接受此实验的默认值。 )
字段 推荐信息 VCN 名称: oci-basics-vcn 区间: 确保已选择区间 VCN CIDR 块: 为整个网络提供 CIDR 块 (10.0.0.0/16) 公共子网 CIDR 块: 为面向公众的网络提供 CIDR 块 (10.0.0.0/24) 专用子网 CIDR 块: 为专用内部网络提供 CIDR 块 (10.0.1.0/24) DNS 解析: 选中“Use DNS Hostnames in this VCN(在此 VCN 中使用 DNS 主机名)” - 单击下一步
-
查看信息并单击创建按钮。注意: 请务必警惕一下,一两次单击即可创建多少网络基础设施。几秒钟之内即可完成子网、网关、安全列表、公共访问、DNS 标签等创建工作。这种东西过去需要数小时或数天时间。
-
您已创建具有以下组件的虚拟云网络 (VCN):
- VCN
- 1 个公共子网
- 1 个专用子网
- Internet 网关
- NAT 网关 (NAT)
- 服务网关
- DNS 域信息
- 安全列表和路由信息
-
工作流完成后,单击查看虚拟云网络以显示 VCN 详细信息。
下一步,我们将 VCN 安全列表和开放端口 80 更改为 Internet。这将允许 http 流量传递给将在实例上部署的应用。
-
从 VCN 屏幕左侧的资源部分中,选择安全列表,然后选择 **
** 的默认安全列表 -
单击入站规则下的添加入站规则。
-
使用表中的信息添加有状态入站规则:
字段 推荐信息 无状态 离开标志未选中 来源类型: CIDR(默认值) 源代码: 0.0.0.0/0 IP 协议: TCP(默认) 源端口范围: ALL(默认) 目的地端口范围: 80 -
单击对话框底部的添加入站规则按钮。注: 此规则告知网关允许来自任何位置 (0.0.0.0/0) 的流量使用 TCP 协议堆栈通过端口 80 (http) 传输信息。您现在已创建安全规则,以允许通过 http 流量传入 VCN。
在下一步中,您将创建和配置计算实例并部署简单的 Web 应用。
启动计算实例
为了让客户运行其业务应用,他们需要计算资源。Oracle 提供了多种不同类型的计算实例,以帮助客户满足其应用和性能需求。Oracle 提供的裸金属和虚拟机 (VM) 实例类型具有不同的 CPU 和内存配置(称为配置)。在此部分中,您将了解如何使用简单的 Web 服务器应用部署虚拟计算实例。这是云计算的基础。
-
从 OCI 服务菜单中,依次单击计算和实例以显示“创建计算实例”部分
-
单击创建实例按钮。
创建计算实例对话框中有多个部分。通常,这些部分是实例信息,包括名称和区间。位置和硬件,包括可用性域位置、容错域、映像类型和配置。接下来是网络,您可以在其中选择之前创建的网络配置。此部分介绍如何添加 SSH 密钥以及引导卷选项。还有一个“高级选项”部分,您可以在其中选择容错域、添加要在引导时执行的脚本等。我们不会使用本实验中的高级选项,但可以自行探索。
使用下表中的信息填写“创建计算实例”表单:
-
输入计算实例名称,选择区间,然后选择可用性域。
字段 推荐信息 在区间中创建 选择区间 可用性域 广告 1 -
在下一步中,选择要用于 VM 实例的操作系统映像。单击更改图像按钮。
-
选择 Oracle 映像选项卡。注:有 5 页的 Oracle 映像。单击页箭头,直到找到 Oracle Cloud Developer Image 。选中它并单击底部的复选框以接受条款和限制,然后单击选择图像按钮。
对于计算实例部分,查看提供的信息。配置大小应默认为 VM.Standard2.1。接受默认值。
-
在配置网络部分中,您将接受默认值,但请注意不同的选项。选择选择现有虚拟云网络按钮,并确认之前创建的 VCN 已列出。选择选择现有子网并确认显示 VNC 中的公共子网。请勿选择使用网络安全组,并确认已选中分配公共 IP 地址的单选按钮
字段 推荐信息 网络 选择现有虚拟云网络 虚拟云网络 选择您之前创建的 VCN 子网 选择现有子网 子网 验证是否已选择区间中的公共子网 使用网络安全组控制流量 保持未选中状态 分配公共 IP 地址 选择单选按钮 接下来是添加 SSH 密钥部分。SSH 密钥是与您要创建的实例建立安全连接的要求。此部分最近进行了更改,以允许您直接从 OCI 控制台生成所需的 SSH 密钥。此过程与从客户机操作系统生成密钥略有不同。客户可以使用自己的密钥,从系统加载,或者复制并粘贴自己的密钥。为方便起见,我们将使用 OCI 控制台。您需要创建并粘贴 SSH 密钥,以便可以安全地访问新实例。
-
在添加 SSH 密钥部分中,选择生成 SSH 密钥的单选按钮。我们将允许 OCI 生成密钥对,节省一点时间。然后单击保存专用密钥按钮,然后单击保存公共密钥按钮。您应该会在浏览器底部看到这两项下载。它们可以位于主机系统的 "Downloads"(下载)文件夹中。
-
在引导卷部分中,默认情况下不要选中相应的框。
-
单击创建按钮以创建实例。
实例将开始预配。您应当会看到实例详细信息屏幕,其中包含橙色图标,表示其处于预配状态。等待一段时间。完成后,该图标将变为绿色并进入 running 状态。
-
等待实例进入正在运行状态。检查“实例信息”屏幕中的信息。确定分配的容错域、专用和公共 IP 地址以及其他重要信息。请注意,您可以使用停止、重新引导和更改配置按钮控制实例。如果您忘记了如何连接到实例,可以单击连接到正在运行的实例,以获得有关如何连接到云实例的文档的链接。
连接到实例
-
在实例详细信息屏幕中,找到包含公共 IP 地址的字段。单击 Copy(复制)链接将 IP 地址复制到剪贴板。链接将短暂更改为 copied 以指示成功。或者,您可以右键单击/拖动,然后根据需要复制 IP 地址。下一步是连接到实例时需要 IP 地址。
-
从主桌面应用程序菜单中打开 Terminal Emulator(终端仿真器)。
-
使用 Linux 文件系统导航命令,导航到 Downloads 文件夹。终端可能会默认为用户起始目录,下载目录应直接位于您的路径中。
cd ~/Downloads
SSH 密钥需要具有特殊权限才能安全使用。在使用密钥之前,需要更改所下载密钥的权限。
-
使用 Linux
chmod
命令将权限更改为仅针对 root 进行 rw。chmod 600 *.key
chmod 600 *.pub
现在,您可以安全地使用密钥,而不会出现错误。
-
在终端窗口中,输入以下 SSH 命令。确保您所在的目录与 SSH 密钥相同。在 -i 开关中,您可以指定私钥的名称,后面是以默认管理员用户名 opc 和 @ 符号开头的计算实例的 IP 地址。对有关接受身份并添加到已知主机列表的提示回答 yes 。
ssh -i <private key file> opc@<public_ip_address>
警告!可能会要求您提供口令短语。您没有机会提供此口令短语,因此应该使用简单的 SSH 身份命令来处理此问题。如果要求您提供口令短语,请使用 ssh-add 命令将标识添加到密钥中。键入以下命令,后跟专用密钥名称:
ssh-add <private key file>
然后尝试使用步骤 5 中的 ssh 命令重新登录。
ssh -i <private key file> opc@<public_ip_address>
您已成功创建实例并通过 SSH 登录。如果您有时间浏览,可以随时了解实例环境。如果你不熟悉 Linux 或命令行,有很多方法和基本的 Linux 教程可用。在下一部分中,我们将外部块存储添加到应用数据存储的实例。
创建和挂载块存储
OCI 提供三种类型的存储,为客户应用提供不同级别的性能、访问和冗余。块存储基于在物理存储介质(即 SSD(固态磁盘)上组织的物理块,并通过文件系统进行组织。块存储通过通常称为 SAN(Storage Area Network,存储区域网络)的专用存储网络进行访问。块存储限制为磁盘或磁盘阵列的物理大小,但它也被认为是大多数应用程序的最高性能选项。它非常适合数据库和任务关键型应用。对象存储是将数据作为对象进行管理的数据存储体系结构。对象存储具有巨大的容量和存储非结构化数据的功能。对象存储通常用于灾难恢复、文档存储和分析数据。第三种类型为文件存储。文件存储本质上是一种通过网络共享的 OS 文件系统,通常称为 NAS(Network Attached Storage,网络连接存储)。文件存储是基本的 Unix 功能,并且作为称为 NAS 设备的硬件文件存储系统进行了商业化。
您将为此简单的应用程序练习创建块存储。
-
从 OCI 服务菜单中,单击块存储,然后从弹出菜单中选择块存储卷。
-
确保位于正确的区间中,然后单击创建块存储卷按钮。使用以下信息填写表单。
注: 对于卷大小和性能,默认大小为 1024 GB,大约等于 1 TB。以下步骤将需要格式化的已挂载文件系统,因此我们需要将此大小减小到 50GB 以保持实验室简单而简单。将默认大小更改为 Custom 并将大小更改为 50GB。
字段 推荐信息 名称 您选择的名称 在区间中创建 选择区间 可用性域 在实例所在的 AD 中创建 大小 自定义 - 50 GB 备份策略的区间 选择区间 备份策略 无需选择 卷性能 保留为“Balanced(平衡)”,但请注意,如果愿意,您可以更改它 加密 默认为 Oracle 托管密钥 -
单击 Create Block Volume 按钮。卷图标将颜色变为橙色并进入预配状态。稍后,它将变为绿色并进入 Available (可用)状态。现在可以将其用于您的实例。
在下一步中,我们将块存储卷连接到计算实例。您可以从控制台的实例部分或控制台的块存储卷部分连接块存储卷。
-
在 "Block Volume" 信息屏幕中,单击 Resources 部分下的 Attached Instances 。
-
单击附加到实例按钮,然后使用以下信息填写生成的对话框:
字段 推荐信息 附件类型 半虚拟化 访问类型 READ/WRITE 选择实例 选中 选择实例 选择您之前创建的实例 设备名称 从下拉列表中选择第一个可用路径。 注: 半虚拟化是一种更快的连接方法,这可能导致性能更低。iSCSI 连接是一种更直接的路径,但需要执行更多连接步骤。为简化本实验,您将使用半虚拟化。
-
单击附加。稍后,您将收到块存储卷已连接的确认消息。
注意: 在本示例中,我们选择了半虚拟化连接,因为它既快速又简单。半虚拟化连接是一种技术,在此技术中,来宾操作系统会利用虚拟机管理程序 API 直接访问远程存储,就像它是本地设备一样。挂载存储非常快速且简单。利用半虚拟化块存储卷,可能存在性能问题,因此您可能还需要熟悉直接通过 iSCSI 挂载存储。有关通过 iSCSI 将存储挂载到实例的说明,请参阅 OCI 文档。以下是博客的链接,其中解释了这些差异。
现在,您应该已经确认块存储卷已连接到实例。在下一步中,我们将切换回 SSH 会话,验证块存储卷是否已连接,设置其格式,创建文件系统并将其挂载到实例。
-
返回到终端窗口。如有必要,再次登录到实例。当 opc 用户发出
lsblk
命令以验证半虚拟化块存储卷已挂载并确认设备路径。在这种情况下,我们使用控制台选择 /dev/sdb ,并将其大小调整到 50GB,以便可以验证设备是否已挂载。 -
设置卷的格式以供操作系统使用。在终端窗口中键入以下命令。
sudo fdisk /dev/sdb -l
-
使用 ext4 文件系统在卷上创建文件系统并命名卷“数据”。我们正在使用整个磁盘,因此在提示输入单个分区时输入 Y 。键入以下命令:
sudo mkfs.ext4 -L data /dev/sdb
-
创建挂载点。挂载块存储卷,并验证它是否已挂载到系统中。键入以下三个命令。
sudo mkdir -p /mnt/www/html
sudo mount /dev/sdb /mnt/www/html
lsblk
您已成功格式化并装载了外部块存储卷。下一步,安装并配置一个简单的 Web 应用程序。
安装和配置 Web 应用程序
在下面的部分中,我们将安装 Apache Web 服务器并对其进行配置以用于我们的简单应用程序。
-
安装 httpd 服务器,在连接到 OCI 云实例的终端窗口中输入以下命令:
sudo yum install httpd -y
在前面的步骤中,我们添加了一个安全规则来允许通过虚拟云从 Internet 到端口 80 的流量 network.You 还需要配置标准 Linux 防火墙来允许实例本身上的流量。
-
在实例防火墙上打开端口 80 以允许 http 流量。
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload
启动 Web 服务并安装简单的 html 应用程序。
-
启动 httpd 服务。在终端中输入以下命令。(注:此命令没有输出。)
sudo systemctl enable httpd --now
-
下载预构建的应用程序并安装它。从 opc 用户起始目录运行以下命令。
wget https://github.com/snafuz/oci-quickstart-lab/archive/master.zip
-
将文件解压缩到 opc 用户主目录中,并将 Web 应用程序结构复制到 Web 服务器文档根目录中。
unzip master.zip
sudo cp -R oci-quickstart-lab-master/static/* /mnt/www/html/
-
接下来,需要使用应用程序位置修改服务器配置文件 (httpd.conf)。使用 vi 或您喜爱的 Linux 文本编辑器并修改 Web 服务器配置文件
/etc/httpd/conf/httpd.conf
。您将编辑此文件,以将存储 Web 应用程序文件的默认位置从位于系统驱动器的 /var/www/html 更改为位于我们为服务器创建的块存储卷上的 /mnt/www/html 。注意: 最好创建扩展名为 .bak 的配置文件的副本,以防出现任何错误或意外损坏文件。
注:从终端窗口启动 vi 。 vi 是标准文本编辑器,在 Unix 和 Linux 操作系统的每个版本中都可用。 vi 可以是有些人有点尴尬,所以如果你不熟悉它,在网上搜索一个 vi cheatsheet 或使用 Luna 实验室的资源部分中的那个。Linux 中有许多可用的文本编辑器。您可以使用 gedit 或您可能熟悉的任何 Unix/Linux 编辑器。您可以从终端使用 nano 、 vim 、 emacs 或 gedit (在 Luna 桌面或启动菜单中可用)。下面的示例将使用 vi 进行说明。
sudo vi /etc/httpd/conf/httpd.conf
-
搜索字符串 /var/www 并将其替换为 /mnt/www 。您将进行三个替换,一个是注释,如果不想编辑注释,则不需要编辑注释。对 cgi-bin 目录有三个引用。你不需要改变这些。
请务必保存更改。(提示:在 vi 中,为
:wq!
) -
更改应用程序子目录的安全上下文并重新启动 httpd 服务器。输入以下命令:
sudo chcon -R --type=httpd_sys_rw_content_t /mnt
sudo systemctl restart httpd
-
在浏览器窗口中,导航回实例的计算实例详细信息。查找并复制 IP 地址。
-
在浏览器中,打开一个新的窗口或选项卡。在“URI 定位器”字段中,在“URI”字段中输入“http://”和计算实例的公共 IP。
http://<COMPUTE_INSTANCE_PUBLIC_IP>
您应该在浏览器中看到简单的 http 应用程序表单。
祝贺您!应用程序在 OCI 上启动并运行!
到目前为止,您已经创建了云网络、启动了实例、创建并连接了块存储、配置了 Web 服务器并创建了简单应用程序。在下一部分中,您将删除第一个计算实例。然后,您将使用为第一个实例创建的引导卷和块存储卷启动新的计算实例,从而保留第一个实例的配置信息。
将引导卷和块存储卷重用于新实例
在本部分中,我们将分离块存储卷并终止实例。然后,您将使用现有引导卷启动新的计算实例。您将重新连接块存储。此类操作对于具有灾难恢复或构建“黄金映像”的客户很有用,这有助于在云中重复使用资源并简化操作。
-
通过 SSH 连接到实例并卸载块存储卷。输入以下命令,从实例添加设备路径。
sudo umount /dev/<VOLUME_NAME>
-
打开 OCI 控制台窗口,导航到计算实例页面,然后单击您创建的实例。单击“资源”部分中的附加的块存储卷 (1) 。单击右侧的省略号,然后从简短菜单中选择分离。
-
您将收到有关分离 iSCSI 目标的警告。这是一个重要的警告,但我们已经卸载了卷。单击继续分离。
-
为了进一步说明卸载实时数据卷可能会导致错误和丢失数据,请单击“是否确定要分离此卷”消息上的确定。
等待块存储卷完全分离。
-
在实例信息屏幕中,单击停止按钮来停止计算实例。
阅读警告消息,然后单击停止实例以确认您的选择。
-
实例将开始关闭,该图标将变为橙色并显示停止。关闭将需要几分钟时间。进入 Stopped 状态后,从 "Resources"(资源)部分中选择 Boot Volume ,单击省略号(操作菜单)并选择 Detach 。单击确定确认所做的选择。
-
单击 Detach Boot Volume 确认分离。
稍后,引导卷将报告它已分离。下一步,终止计算实例。
-
从实例详细信息页顶部的更多操作下拉菜单中,单击终止以终止实例。
注在确认对话框中, DO NOT 选中 "Permanently delete the attach Boot Volume" 对应的框。
-
在实例终止后,向下滚动到“Boot Volume”(显示分离的引导卷)部分,然后单击“Boot Volume”(引导卷)链接来查看引导卷详细信息。还可以使用最右侧的操作菜单省略号并选择查看引导卷详细信息。
-
在 "Boot Volume Details" 窗口中,单击顶部的 Create Instance 按钮。
-
使用以下信息创建新的计算实例:
注意 该信息在很大程度上与先前实例相同,但您不必选择操作系统映像,因为它已安装在引导映像上。您不必指定 SSH 密钥,因为它们已安装在实例引导卷上。
字段 推荐信息 为实例命名: oci-basics-instance-02 选择操作系统或映像源: 默认值为 Boot Volume 可用性域: 选择可用性域 实例配置: VM.Standard2.1 虚拟云网络区间: 选择区间 虚拟云网络: 选择先前创建的 VCN 子网区间: 选择区间。 子网: 选择公共子网 使用网络安全组控制流量: 保持未选中状态 分配公共 IP 地址: 检查此选项 添加 SSH 密钥: 无 SSH 密钥 -
单击创建。
-
实例进入“正在运行”状态后,使用“资源”部分中的附加的块存储卷对话框将块存储卷连接到此新实例。在该对话框中,为卷连接类型选择 Paravirtualized 。从下拉菜单中选择之前创建的块存储卷 oci-basics-bv 。从设备路径下拉列表中选择 oraclevdb ,然后单击 Attach 。
-
等待块存储卷完全连接。
-
附加完卷后,使用新 IP 地址打开终端窗口并用 SSH 连接到计算实例。使用您在实验室前面讲解的步骤挂载块存储卷。
-
从实例详细信息屏幕中找到实例的 IP 地址。您将拥有一个新的 IP,因为它是一个不同的实例。
-
打开终端窗口并通过 SSH 连接到实例。键入 Yes 确认指纹。
ssh -i <your SSH key-name> opc@<your ip address>
-
输入以下命令以挂载块存储卷并重新启动 Web 服务器:
lsblk
sudo mount /dev/sdb /mnt/www/html
sudo systemctl restart httpd
-
使用 Web 浏览器并打开一个新的窗口或选项卡。在 URI 定位器中输入 http://<your compute instance’s public IP address> 。下面的 IP 地址就是例子。
http://10.10.0.1
您应该会看到之前创建的 Web 应用程序的简单表单。您已成功重用附加到另一实例的引导卷和块存储卷,并且保留了所有数据。此简单的示例可用于更改计算配置、创建可重复使用的黄金映像,以及可移植实例可能便于使用的任何解决方案。
祝贺您!您已完成 OCI 基础知识教程。您已创建云计算实例和云网络。您已连接块存储,安装了简单的 http 应用程序,并将引导和块存储迁移到新实例。
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或在 Oracle Learning YouTube 频道上访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Get started with Oracle Cloud Infrastructure basics
F39033-03
October 2022
Copyright © 2022, Oracle and/or its affiliates.