리소스 프로비전, 구성 및 제거
Terraform를 사용하여 클라우드의 리소스를 효율적으로 배치, 변경 및 제거할 수 있습니다.
Terraform 상태 파일 정보
Terraform는 관리 기반 구조 리소스를 추적하고, 배치된 리소스를 구성에 매핑하고, 메타 데이터를 추적하고, 대형 기반 구조 배치의 성능을 향상시키기 위한 상태 정보를 저장합니다.
기본적으로 terraform.tfstate
파일은 로컬 호스트에 저장됩니다. 이 기본 동작은 여러 사용자가 제공된 구성에 정의된 리소스를 만들고 삭제해야 하는 IT 환경에서 최적화되지 않습니다. 다중 사용자 환경에서 리소스 배치 및 관리를 제어하려면 Terraform 상태 파일을 Oracle Cloud Infrastructure Object Storage에 저장하고 모든 사용자 간에 상태 파일과 잠금 파일을 공유합니다.
리소스 생성
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 클러스터를 관리하려면 이 명령을 실행합니다. 이 명령은 Terraform가 구성을 적용하는 동안 생성하는generated/kubeconfig
파일에KUBECONFIG
를 설정합니다.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
Bastion 호스트에 대한 통지 사용 또는 사용 안함
Oracle Cloud Infrastructure Notification Service를 사용하여 업데이트가 적용되거나 Oracle Ksplice에서 알려진 폭발을 감지한 경우 기본 호스트에서 상태 메시지를 수신할 수 있습니다.
주:
이 솔루션의 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
를 다시 실행하십시오.- 필요한 정책은 기본 호스트가 통지를 게시할 수 있도록 정의됩니다.
- 통지 항목이 생성되고 지정한 전자메일 주소가 항목에 가입되어 있습니다.
- 기본 사항 호스트는 통지를 전송하도록 구성되었습니다.
리소스가 생성되면 가입을 확인하도록 요구하는 전자 메일이 수신됩니다.
-
통지를 사용 안함으로 설정하려면
terraform.tfvars
에서 다음을 설정하고terraform apply
를 실행합니다.bastion_notification_enabled = false admin_notification_enabled = false