조금 더 간단한 오라클 인스턴스 생성 자동화 방법 (생성확인 완료)
좀전에 theb1ue 님이 올려주신 오라클 서버 생성 방법 따라해보다가..
패키지도 잘 안깔리고... 뭔가 캡처 하고 수정하기도 만만찮고.. 해서...
예전에 찾아봣던 방법 공유 해볼까 합니다.
기재된 모든 내용은 아래 쭈니파파 님 유튜브 정리한 내용입니다
위 내용 정독 해 보시면 좋을거 같구요.
영상에는 시놀로지 기준이지만 저는 Oracle 인스턴스에서 작업 했습니다.
현재 서울 리전 free tier 로 100g AMD 서버 생성 해놓고
나머지 100G 부분을 Arm A1 서버용으로 생성 스크립트를 만듭니다.
1. API 추가 및 키 다운로드
이 부분은 아래 내용의 1번 부분 그대로 따라 하시면 됩니다.
https://svrforum.com/cloud/318836
pem 파일과 기본 정보는 추후 테라폼에 기재되니 잘 보관 하시기 바랍니다.
2. 컴퓨트 인스턴스 스택 저장 및 다운로드
여기서는 원하시는 내용으로 이름/구획/이미지/구성 등 적용 하시면됩니다.
SSH 키 추가쪽은 저의 경우 항상 공용키 붙여 넣기로 하고 있습니다.
별도 키파일 관리 안해도 되서 이쪽이 편한거 같습니다.
모든 정보를 입력 하였으면 생성 버튼이 아닌 스택으로 저장을 눌러 해당 내용을 저장 합니다.
저장 후 스택으로 이동 하여 저장된 내용을 다운로드 받습니다.
다운 받은 zip 파일을 풀어보면 main.tf 라는 파일이 있습니다.
이 파일을 아까 받은 pem 파일과 같은 경로에 저장 하고 잘 보관 합니다.
이제 oci 화면에서 할 작업은 끝났습니다.
리눅스 서버에 접속 후 2개 파일을 적당한 위치에 복사합니다.
저의 경우 ubuntu home 밑에 oci-creater 폴더를 만들었습니다.
해당 폴더에서 테라폼을 설치 합니다.
https://www.terraform.io/downloads
여기에서 각 시스템에 맞는 테라폼 zip url 을 확인 합니다.
저의 경우 현재 작업 시스템이 amd ubuntu 서버니까 리눅스 > ubuntu > amd64 로 하면 되겠네요
url 을 복사해서 해당 zip 파일을 다운 받습니다.
$ wget https://releases.hashicorp.com/terraform/1.2.2/terraform_1.2.2_linux_amd64.zip
$ wget https://releases.hashicorp.com/terraform/1.0.11/terraform_1.0.11_linux_amd64.zip
(버전을 타는거 같습니다. 1.0.11 버전으로 해주세요)
압축을 풀어 줍니다. 영상에서 7zip 으로 하라니까... 그대로 해줍니다.
$ sudo apt install p7zip-full
$ 7z x terraform_1.2.2_linux_amd64.zip
$ 7z x terraform_1.0.11_linux_amd64.zip
압축해제후 /usr/bin 폴더로 이동시킵니다.
$ sudo mv ./terraform /usr/bin
잘 되는지 확인 하라니까.. 확인해봅니다.
$ terraform -v
Terraform v1.2.2
on linux_amd64
위와 같이 나오면 잘 나온거겟죠.
이제 테라폼 실행 하기전에 아까 준비한 main.tf 파일을 수정 합니다.
vi main.tf
위의 provider "oci" 부분을 수정 할 겁니다.
맨 처음 api 키를 받을때 별도로 기재한 정보를 이용해서 해당 부분을 채워 줍니다.
provider "oci" {
tenancy_ocid = "ocid1.tenancy.oc1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
user_ocid = "ocid1.user.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
fingerprint = "8d:21:67:f0:0b:0dxxxxxxxxxxxx:xx:Xx:xx:xxx:Xx"
private_key_path = "/home/ubuntu/oci-creater/pem파일 경로 및 파일명.pem"
region = "ap-seoul-1"
}
해당 부분을 모두 수정 하고 저장 하시면
이제 plan 생성 하시면 됩니다.
$ terraform init
$ terraform plan -out="/home/ubuntu/oci-creater/oracle.plan"
뭔가 여러가지 화면이 지나가고 해당 폴더에 oracle.plan 이라는 파일이 생성 되었습니다.
이제 screen 패키지를 설치 하고 해당 oracle.plan 파일을 돌립니다.
$ sudo apt install screen
$ vi autocreate.sh
#!/bin/bash
wait="5s"
plan="/home/ubuntu/oci-creater/oracle.plan"
while true; do
terraform apply -auto-approve "${plan}"
if [ $? -eq 0 ]; then
echo "Succeeded"
exit 0
else
echo "Waiting for ${wait}"
sleep "$wait"
fi
done
exit
$ chmod +x ./autocreate.sh
위 스크립트는 해당 oracle 플랜을 5초마다 한번씩 실행 하게 됩니다.
실행 합니다.
$ screen -s /home/ubuntu/oci-creater/autocreate.sh
잘 돌아가는군요.
이 작업을 계속 생성 할때 까지 반복 합니다.
추가로 나중에 다시 접속 해서 작업 진행이 잘 되고 있는지 보고 싶으시면
screen 생성 : # screen -S 이름
screen detach : Ctrl + a + d
screen attach : # screen -list 스크린 이름 검색 후
# screen -r 이름
사실 이게 잘 작동하는지는.. 만들어지지 않아서.. 저도 확신은 못합니다.
다만 로그에는 out of host capacity 라고 나오는게 맞는거 같습니다.
이후에 제데로 생성이 되면 다시 한번 공유 하도록 하겠습니다.
(생성확인 했습니다. 시간이 걸리지만 생성됩니다.)
마지막으로 좋은 동영상 올려주신 쭈니파파님께 감사드립니다. (__)
문제되는 부분 있으시면 연락 주세요.
바로 글 내리겠습니다.

와 이 방법도 좋네요!!
와 이 글이나 쭈니파파님 영상을 미리 봤다면 더 좋았겠네요

내려받은 크레덴셜은 별도 입력 없이 ~/.oci/config 파일에 저장만 해도 될 겁니다. 키 경로는 지정해야겠지만요.

와.. 이런방법도있군요..ㅎㅎ 능력자분들은 정말 대단하신것같습니다.. 이것도 공지로..!

다시보니 5초마다 시도하네요 ㄷㄷㄷ 저도 그러면 더 빠른 주기로 ㅋㅋ
저는 안되네요.. 첫 실행 이후에 Saved plan is stale이라면서 막혀버림.. ㅎㅎㅎ
그냥 php로 돌리러갑니당..

최초로 인스턴스 생성 시도는 한 번 해주셔서 서브넷 등의 자원을 생성해줘야 합니다.
그 상태에서 스택을 만들어야지, 안그러면 서브넷이 생성되어버려서 생성 계획이 변경되었기 때문에 plan is stale 메시지가 표시되는 것은 정상입니다.

저도 이부분 관련해서 질문이 있습니다. 제가 이해하기로는
오라클 인스턴스에서 생성 시도를 한번 한 이후에 -> 이걸 스택으로 만들어서 테라폼에 사용하는것인지요?
처음 1회에는 제대로 시도가 되는데 그 이후로는 동일하게 Saved plan is stale으로 저도 나오거든요.

네, 중복 생성 등의 문제가 있어서 최초 1회는 인스턴스 생성 시도하시고 이후에 스택 만들어야 다른 리소스 영향이 없습니다.
추가정보입니다.
어제 서버 생성되었네요.
거의 한달 걸리는군요.
확실히 작동은 됩니다.
ㅠㅠ;; proxmox 계정으로 저의 아이드를 만들어서 돌려볼려고 했더니.. 마지막 실행 시 ubuntu / oci.... 라는곳에 파일을 자동으로 찾는군요 ㅠㅠ
계정을 ubuntu 로 새로 만들어서 폴더하고 동일하게 만든다음 실행해야 겠네요... ㅎㅎㅎ. 그냥 개인 리눅스에서 일반적으로 사용한다고 생각하면
오류 팍팍 나오네요 ㅠㅠ;
아니네요 제가 그냥 팍 붙혀넣기 해서 그렇군요 ㅠㅠ ;;
autocreate.sh 에 경로지정이 있었군요 에휴~ ㅠㅠ;;
------ 막혔나 봅니다 ㅠㅠ;; 한번 실행 후 아래와 같이 나오네요 .. ㅎ.
----- 에러 원인을 찾았네요 ㅠㅠ;;
terraform 의 버전이 원인이었습니다. 지원해주는 버전이 1.0.x 인데 최신버전을 설치를 한것이 원인이었군요.
1.0.11 버전을 다운받아서 실행을 하니 정상적으로 등록하는 모습이 보였습니다.
이제 시간과의 전쟁이군요.. 기대됩니다. ㅎ.
덕분에 4core 24ram 춘천에서 생성완료했습니다.
테라폼도 한번 사용해볼 수 있어서 재미있었네요
cmt alert