预配,配置和删除资源
使用 Terraform 在云中有效地部署、更改和删除您的资源。
关于 Terraform 状态文件
Terraform 存储用于跟踪托管基础结构资源的状态信息,将已部署的资源映射到您的配置,跟踪元数据,并改善大型基础结构部署的性能。
默认情况下,terraform.tfstate
文件存储在本地主机上。在 IT 环境中,此默认行为并非最佳,在这种情况下,多个用户需要创建和销毁在给定配置中定义的资源。要控制在多用户环境中部署和管理资源,请将 Terraform 状态文件存储在 Oracle Cloud Infrastructure 对象存储中,并在所有用户之间共享状态文件和锁定文件。
创建资源
在 terraform.tfvars
文件中设置变量之后,使用 Terraform CLI 部署 Terraform 配置中定义的资源。
Apply complete! Resources: 33 added, 0 changed, 0 destroyed.
Outputs:
admin_private_ip = 10.0.1.10
bastion_public_ip = 203.0.113.101
kubeconfig = export KUBECONFIG=generated/kubeconfig
ocirtoken = <sensitive>
ssh_to_admin = ssh -i /home/joe/.ssh/id_rsa -J opc@203.0.113.101 opc@10.0.1.10
ssh_to_bastion = ssh -i /home/joe/.ssh/id_rsa opc@203.0.113.101
kubeconfig
输出显示可用于在本地主机上设置KUBECONFIG
环境变量的命令。如果要使用本地主机中的kubectl
CLI 管理 Kubernetes 群集,请运行此命令。该命令将KUBECONFIG
设置为文件generated/kubeconfig
,该文件在应用配置时 Terraform 会创建该文件。ssh_to_admin
输出显示可用于连接管理主机的ssh
命令。ssh_to_bastion
输出显示可用于连接到基础主机的ssh
命令。
注:
通过运行命令terraform output
,可以随时查看此 Terraform 输出允许管理主机管理资源
要允许管理主机管理区间中的资源,可以将其指定为实例主用户。如果您打算运行 CLI 命令或从管理主机调用 API 来管理拓扑中的资源,请使用此功能。
注:
任何可以使用 SSH 连接到计算实例的用户都会继承授予实例的实例委派权限。决定是否将管理主机指定为实例主用户时,请考虑这一点。可以随时关闭或打开此功能,而不会对管理主机造成任何影响。-
要将管理主机指定为实例主用户,请在
terraform.tfvars
中设置以下内容,然后运行terraform apply
。admin_instance_principal = true
管理主机将成为动态组的成员,并且会创建一个策略语句以允许动态组管理区间中的所有资源。
-
要从管理主机撤销实例主用户权限,请在
terraform.tfvars
中设置以下内容,然后运行terraform apply
。admin_instance_principal = false
启用或禁用基本主机的通知
应用更新或 Oracle Ksplice 检测到已知的 exploit 尝试时,您可以使用 Oracle Cloud Infrastructure Notification 服务从 bastion 主机接收状态消息。
注:
此解决方案中的 Terraform 代码仅在使用默认 Oracle Autonomous Linux 映像时配置通知。-
要为基础主机启用通知,请在
terraform.tfvars
中设置以下变量:bastion_notification_enabled = true bastion_notification_endpoint = "email_address" bastion_notification_protocol = "EMAIL" bastion_notification_topic = "topic_name"
下面是
terraform.tfvars
的一个示例以及定义的与通知相关的变量。bastion_notification_enabled = true bastion_notification_endpoint = "joe@example.com" bastion_notification_protocol = "EMAIL" bastion_notification_topic = "bastion"
- 如果已创建基础主机并且要立即启用通知,请设置这些变量,然后再次运行
terraform apply
。- 所需的策略是为了允许基础主机发布通知而定义的。
- 此时将创建通知主题,指定的电子邮件地址将订阅该主题。
- Bastion 主机已配置为发送通知。
创建资源后,您将收到一封电子邮件,提示您确认订阅。
-
要禁用通知,请在
terraform.tfvars
中设置以下信息,然后运行terraform apply
。bastion_notification_enabled = false admin_notification_enabled = false