关于在 Windows 系统上配置 Terraform
要使用 Terraform 创建 Oracle Cloud Infrastructure 组件,必须下载并安装 Terraform。您还将下载 Terraform 模块,以创建要使用的配置文件,从而创建所需的基础结构组件。
安装 Terraform 并存储 Teraform 模块的系统可以在内部部署环境或云中。为方便起见,我们将此称为本地系统或本地主机。
在运行 Terraform 之前:
-
生成允许您访问计算实例的 SSH 密钥对
-
生成用于验证 Terraform 所执行的 API 调用的 API 签名密钥
-
设置 Terraform 用于验证访问和执行计划的环境变量
完成这些步骤后,您可以应用 Terraform 配置文件在 Oracle Cloud Infrastructure 上创建基础结构组件。
生成访问堡垒主机的 SSH 密钥对
使用 SSH 密钥对可以安全地访问在公共子网中创建的实例。可以在本地主机上生成 SSH 密钥对。然后,Terraform 模块将 SSH 公共密钥添加到堡垒主机。如果需要通过公共互联网连接到堡垒主机,请提供 SSH 私钥以验证访问。
可以使用 PuTTYgen 生成 SSH 密钥对。请勿为 SSH 密钥设置密码短语。
生成访问其他实例的 SSH 密钥对
堡垒主机用于启用 SSH 转发到其他没有公共 IP 地址且不允许通过公共互联网访问的实例。要从堡垒主机安全访问其他实例,请使用 SSH 密钥对,其中存储在专用子网中的实例上的公钥与本地计算机上存储的私有密钥匹配。
用于启用从堡垒主机到其他实例的访问的 SSH 密钥对必须使用 OpenSSL 或 ssh-keygen. 等实用程序生成。您无法使用 PuTTY 在 Windows 上生成的 SSH 密钥对,因为 Oracle Linux 或其他类似 UNIX 的操作系统不支持 PuTTY 使用的 .ppk 格式。请记住,堡垒主机(将 SSH 通信转发到其他实例)使用 Oracle Linux 映像。
生成 API 登录密钥
必须以隐私增强型邮件 (Privacy Enhanced Mail, PEM) 格式提供 RSA 密钥对,才能使用 Oracle Cloud Infrastructure 验证 Terraform 脚本。请注意,此 API 签名密钥与用于访问实例的 SSH 密钥对不同。您可以在 Git Bash 中使用 OpenSSL 生成此密钥对。您应该已在本地系统上安装 Git Bash。
- 启动 Git Bash。
- 创建用于存储 PEM 密钥的隐藏文件夹。您可以将 PEM 密钥存储在任何位置,但为了简单起见,请在 Terraform 模块所在的文件夹下创建此文件夹。确保记录存储密钥对的位置。导航到该位置,然后输入:
mkdir ./.oci - 要创建 API 签名密钥,请输入:
openssl genrsa -out ./.oci/key_name.pem 2048 - 更改私有密钥的权限以确保只有您可以读取私有密钥。输入:
chmod go-rwx ./.oci/key_name.pem - 接下来,要生成给定私有密钥的公共密钥,请输入:
openssl rsa -pubout -in ./.oci/key_name.pem -out ./.oci/key_name_public.pem
使用控制台上载 API 签名密钥
生成 API 签名密钥后,必须在 Oracle Cloud Infrastructure 中为关联用户上载公钥。第一次上载 API 签名密钥时,必须使用控制台。随后,您还可以使用该 API 上载 API 密钥。
- 登录 Oracle Cloud Infrastructure 控制台。
- 单击身份,然后单击用户。
- 单击要为其添加 API 签名密钥的用户。
- 在用户详细信息页面上,单击添加公共密钥。
- 在本地系统上,启动 Git Bash。导航到存储 API 签名密钥对的文件夹。
- 要复制公共密钥,请输入:
cat ./key_name_public.pem.显示公共密钥值。复制此值,包括行-----BEGIN PUBLIC KEY-----和-----END PUBLIC KEY-----. - 在控制台中,粘贴公共密钥值,然后单击添加。