UNIX-Like 시스템에 Terraform 구성 정보
Terraform을 사용하여 Oracle Cloud Infrastructure 구성요소를 생성하려면 Terraform을 다운로드하여 설치해야 합니다. 또한 필요한 기반 구조 구성 요소를 생성하는 데 사용할 구성 파일을 생성하는 Terraform 모듈을 다운로드합니다.
Terraform을 설치하고 Teraform 모듈을 저장하는 시스템은 온프레미스나 클라우드에서 사용할 수 있습니다. 편의를 위해 이 이름은 로컬 시스템 또는 로컬 호스트로 제공됩니다.
Terraform을 실행하기 전에 다음을 수행합니다.
-
컴퓨트 인스턴스 액세스를 허용하는 데 사용되는 SSH 키 쌍을 생성합니다.
-
Terraform에서 적용한 API 호출을 인증하는 데 사용되는 API 서명 키 생성
-
Terraform에서 액세스를 인증하고 해당 계획을 실행하는 데 사용되는 환경 변수 설정
이러한 단계를 완료한 후 Oracle Cloud Infrastructure 에서 기반 구조 구성요소를 생성할 Terraform 구성 파일을 적용할 준비가 되었습니다.
Terraform 모듈 다운로드
Terraform을 사용하여 Oracle Cloud Infrastructure 에서 인프라 구성요소 생성을 시작하려면 Terraform 모듈을 다운로드합니다.
Bastion 호스트에 액세스하기 위한 SSH 키 쌍 생성
SSH 키 쌍은 공용 서브넷에 생성된 인스턴스에 안전하게 액세스할 수 있도록 하는 데 사용됩니다. 로컬 호스트에 SSH 키 쌍을 생성합니다. 그런 다음 Terraform 모듈이 SSH 공용 키를 기본 호스트에 추가합니다. 공용 인터넷을 통해 기본 호스트에 접속해야 하는 경우 액세스를 인증할 SSH 전용 키를 제공합니다.
ssh-keygen
유틸리티를 사용하여 SSH 키 쌍을 생성할 수 있습니다. SSH 키에 대해 문장암호를 설정하지 마십시오.
다른 인스턴스에 액세스하기 위한 SSH 키 쌍 생성
배달 호스트는 공용 IP 주소가 없는 다른 인스턴스로 SSH 전송을 사용으로 설정하고 공용 인터넷을 통한 접근을 허용하지 않는 데 사용됩니다. 기본 호스트에서 다른 인스턴스에 안전하게 액세스하려면 전용 서브넷의 인스턴스에 저장된 공용 키가 로컬 시스템에 저장된 전용 키와 일치하는 SSH 키 쌍을 사용합니다. 보안 모범 사례로 이 SSH 키 쌍은 기본 호스트에 액세스하는 데 사용되는 SSH 키 쌍과 동일하면 안됩니다.
로컬 호스트의 ssh-keygen
를 사용하여 다른 SSH 키 쌍을 생성합니다. 이 SSH 키 쌍을 저장할 위치를 기록해 둡니다.
API 서명 키 생성
Oracle Cloud Infrastructure 에서 Terraform 스크립트를 인증하려면 PEM (Privacy Enhanced Mail) 형식으로 RSA 키 쌍을 제공해야 합니다. 이 API 서명 키는 인스턴스에 액세스하는 데 사용하는 SSH 키 쌍과 동일하지 않습니다. OpenSSL
를 사용하여 이 키 쌍을 생성할 수 있습니다.
- 홈 영역에 숨겨진 디렉토리를 생성하여 PEM 키를 저장합니다. 다음을 입력합니다.
mkdir ~/.oci
- OpenSSL 를 사용하여 전용 키를 생성합니다. 전용 키를 생성할 때 2048비트 이상을 지정해야 합니다. 다음을 입력합니다.
openssl genrsa -out ~/.oci/key_name.pem 2048
- 전용 키만 읽을 수 있도록 전용 키에 대한 권한을 변경합니다. 다음을 입력합니다.
chmod go-rwx ~/.oci/key_name.pem
- 그런 다음 OpenSSL 를 사용하여 제공된 전용 키에 대한 공용 키를 생성합니다. 다음을 입력합니다.
openssl rsa -pubout -in ~/.oci/key_name.pem -out ~/.oci/key_name_public.pem
콘솔을 사용하여 API 서명 키 업로드
API 서명 키를 생성한 후에는 Oracle Cloud Infrastructure 에서 연관된 사용자에 대한 공용 키를 업로드해야 합니다. API 서명 키를 처음 업로드할 때는 콘솔을 사용해야 합니다. 나중에 API를 사용하여 API 키를 업로드할 수도 있습니다.
환경 변수 설정
여기에 제공된 Terraform 모듈을 사용하면 텍스트 파일에 필요한 값을 지정하여 환경 변수를 설정할 수 있습니다. 그런 다음 파일의 소스를 지정하여 필요한 환경 변수가 모두 적절하게 설정되어 있는지 확인할 수 있습니다.
시작하기 전에 Oracle Cloud Infrastructure 콘솔에 로그인합니다. 콘솔을 사용하여 다음 정보를 찾을 수 있습니다.
-
OCID (테넌시 Oracle Cloud Infrastructure ID)
-
사용자 OCID
-
사용할 API 서명 키의 지문
-
지역
-
구획 OCID
또한 API 서명 키 및 SSH 키 쌍이 로컬 시스템에 저장되는 위치를 알고 있어야 합니다.
- 로컬 시스템에서 Terraform 모듈이 있는 디렉토리로 이동합니다.
- 텍스트 편집기에서
env-vars
파일을 엽니다. env-vars
파일에는 네 개의 섹션이 있습니다. 인증 세부정보 섹션으로 시작합니다.- 테넌시 OCID를 입력합니다. Oracle Cloud Infrastructure 콘솔의 하단에서 테넌시 ocd를 찾을 수 있습니다.
ocid1.tenancy.oc1..aaaaa...
와 유사한 문자열입니다. 이 값을env-vars
파일에 붙여넣습니다. - 사용자 OCID를 입력합니다. 사용자 OCID를 찾으려면 Oracle Cloud Infrastructure 콘솔에서 id 를 누르고 사용자 를 누릅니다. 사용자 OCID와 함께 사용자 목록이 표시됩니다. 필요한 사용자 OCID를 복사하려면 사용자 이름 아래에 있는 복사 를 누릅니다. 이 값을
env-vars
파일에 붙여넣습니다. - API 서명 키 지문을 입력합니다. Oracle Cloud Infrastructure 콘솔의 [사용자 ] 페이지에서 사용자를 눌러 사용자 세부 정보 페이지를 표시합니다. API 키 섹션에 나열된 키에서 API 키 지문을 복사합니다. 이 값을
env-vars
파일에 붙여넣습니다. - 로컬 시스템에 있는 API 전용 키의 전체 경로 및 파일 이름을 입력합니다.
- 테넌시 OCID를 입력합니다. Oracle Cloud Infrastructure 콘솔의 하단에서 테넌시 ocd를 찾을 수 있습니다.
env-vars
파일의 영역 섹션에서 기반 구조 구성 요소를 생성할 영역을 입력합니다. 현재 보고 있는 영역이 Oracle Cloud Infrastructure 콘솔의 맨 위에 표시됩니다. 콘솔을 사용하여 액세스 권한이 있는 다른 영역을 찾을 수도 있습니다.env-vars
파일의 구획 섹션에서 기반 구조 구성요소를 생성하려는 구획의 구획 OCID를 입력합니다. 이전에 지정한 사용자가 여기에서 지정한 구획에 대한 필수 권한을 가진 그룹에 속하는지 확인하십시오. 구획 OCID를 찾으려면 Oracle Cloud Infrastructure 콘솔로 이동하십시오. Id 를 누른 다음 구획 을 누릅니다. 구획 OCID와 함께 구획 목록이 표시됩니다. 필요한 구획 OCID를 복사하려면 구획 이름 아래에 있는 복사 를 누릅니다. 이 값을env-vars
파일에 붙여넣습니다.env-vars
파일의 공용/전용 키 섹션에 있는 기본 호스트 및 기타 인스턴스의 경우 로컬 시스템에 있는 해당 SSH 공용 및 전용 키의 전체 경로 및 파일 이름을 입력합니다. 전용 키는openssh
형식이어야 합니다.- 모든 값을 올바르게 입력했는지 확인합니다. 값을 생략하면 Terraform을 실행할 때 입력하라는 메시지가 표시됩니다. 잘못된 값을 제공한 경우 Terraform에서 오류가 발생합니다. 모든 값이 정확하면
env-vars
파일을 저장하고 닫습니다. env-vars
파일에 지정된 환경 변수를 설정하려면 터미널을 열고 Terraform 모듈이 있는 디렉토리로 이동합니다. 다음을 입력합니다.source ./env-vars