오라클클라우드,GCP,AWS등 정보공유
  • 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
공지

조금 더 간단한 오라클 인스턴스 생성 자동화 방법 (생성확인 완료)

나린이2 4360

4

14

좀전에 theb1ue 님이 올려주신 오라클 서버 생성 방법 따라해보다가.. 

 

패키지도 잘 안깔리고... 뭔가 캡처 하고 수정하기도 만만찮고.. 해서... 

예전에  찾아봣던 방법 공유 해볼까 합니다.

 

기재된 모든 내용은 아래 쭈니파파 님 유튜브 정리한 내용입니다 

 

 

위 내용 정독 해 보시면 좋을거 같구요. 

영상에는 시놀로지 기준이지만 저는 Oracle 인스턴스에서 작업 했습니다.

현재 서울 리전 free tier 로 100g  AMD 서버 생성 해놓고 

나머지 100G 부분을 Arm A1 서버용으로 생성 스크립트를 만듭니다. 

 

 1. API 추가 및 키 다운로드 

이 부분은  아래 내용의 1번 부분 그대로 따라 하시면 됩니다. 

https://svrforum.com/cloud/318836

오라클 A1 인스턴스는 유료 계정에서는 바로 만들 수 있지만 무료 계정에서는 노가다 작업이 좀 필요합니다. 최대 4코어 CPU, 24GB 메모리로 무료 클라우드 서버를 운용할 수...
theb1ue | 2022.06.14

 

image.png.jpg

 

pem 파일과 기본 정보는 추후 테라폼에 기재되니 잘 보관 하시기 바랍니다.

 

2. 컴퓨트 인스턴스 스택 저장 및 다운로드

 여기서는 원하시는 내용으로 이름/구획/이미지/구성 등 적용 하시면됩니다. 

SSH 키 추가쪽은 저의 경우 항상 공용키 붙여 넣기로 하고 있습니다.

별도 키파일 관리 안해도 되서 이쪽이 편한거 같습니다. 

image.png.jpg

 

image.png.jpg

 

모든 정보를 입력 하였으면 생성 버튼이 아닌 스택으로 저장을 눌러 해당 내용을 저장 합니다. 

 

저장 후 스택으로 이동 하여 저장된 내용을 다운로드 받습니다. 

image.png.jpg

 

 

다운 받은 zip 파일을 풀어보면 main.tf 라는 파일이 있습니다.

이 파일을 아까 받은 pem 파일과 같은 경로에 저장 하고 잘 보관 합니다. 

 

이제 oci 화면에서 할 작업은 끝났습니다. 

 

리눅스 서버에 접속 후 2개 파일을 적당한 위치에 복사합니다. 

저의 경우 ubuntu home 밑에 oci-creater 폴더를 만들었습니다. 

해당 폴더에서 테라폼을 설치 합니다. 

https://www.terraform.io/downloads

Terraform is an open-source infrastructure as code software tool that enables you to safely and predi...

 

여기에서 각 시스템에 맞는 테라폼 zip url 을 확인 합니다. 

저의 경우 현재 작업 시스템이 amd ubuntu 서버니까 리눅스  > ubuntu > amd64 로 하면 되겠네요 

image.png.jpg

 

url 을 복사해서 해당 zip 파일을 다운 받습니다. 

$ wget https://releases.hashicorp.com/terraform/1.2.2/terraform_1.2.2_linux_amd64.zip

 

압축을 풀어 줍니다.  영상에서 7zip 으로 하라니까... 그대로 해줍니다. 

$ sudo apt install p7zip-full 

$ 7z x terraform_1.2.2_linux_amd64.zip

 

압축해제후 /usr/bin 폴더로 이동시킵니다. 

$ sudo mv ./terraform /usr/bin

 

잘 되는지 확인 하라니까.. 확인해봅니다. 

$ terraform -v

Terraform v1.2.2
on linux_amd64

 

위와 같이 나오면 잘 나온거겟죠. 

 

이제 테라폼 실행 하기전에 아까 준비한 main.tf 파일을 수정 합니다. 

vi main.tf 

image.png.jpg

 

위의 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"
}

 

image.png.jpg

 

해당 부분을 모두 수정 하고 저장 하시면 

이제 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

image.png.jpg

 

잘 돌아가는군요.

 

이 작업을 계속 생성 할때 까지 반복 합니다. 

 

추가로 나중에 다시 접속 해서 작업 진행이 잘 되고 있는지 보고 싶으시면 

screen 생성  : # screen -S 이름
screen detach : Ctrl + a + d
screen attach  : # screen -list 스크린 이름 검색 후 

                               # screen -r 이름

 

 

사실 이게 잘 작동하는지는.. 만들어지지 않아서.. 저도 확신은 못합니다. 

다만 로그에는 out of host capacity 라고 나오는게 맞는거 같습니다. 

이후에 제데로 생성이 되면 다시 한번 공유 하도록 하겠습니다. 

 

마지막으로 좋은 동영상 올려주신 쭈니파파님께 감사드립니다. (__)

 

문제되는 부분 있으시면 연락 주세요.

바로 글 내리겠습니다.

 

신고공유스크랩
14
4명이 추천
profile image 3등
Lamanus 2022.06.15. 00:56

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

profile image
달소 2022.06.15. 09:13

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

u64x 2022.06.20. 18:42

저는 안되네요.. 첫 실행 이후에 Saved plan is stale이라면서 막혀버림.. ㅎㅎㅎ

그냥 php로 돌리러갑니당..

profile image
Lamanus 2022.06.27. 08:43
u64x

최초로 인스턴스 생성 시도는 한 번 해주셔서 서브넷 등의 자원을 생성해줘야 합니다.

그 상태에서 스택을 만들어야지, 안그러면 서브넷이 생성되어버려서 생성 계획이 변경되었기 때문에 plan is stale 메시지가 표시되는 것은 정상입니다.

profile image
냥냥이 2022.07.07. 13:35
Lamanus

저도 이부분 관련해서 질문이 있습니다. 제가 이해하기로는

오라클 인스턴스에서 생성 시도를 한번 한 이후에 -> 이걸 스택으로 만들어서 테라폼에 사용하는것인지요?

 

처음 1회에는 제대로 시도가 되는데 그 이후로는 동일하게 Saved plan is stale으로 저도 나오거든요.

profile image
Lamanus 2022.07.07. 22:21
냥냥이

네, 중복 생성 등의 문제가 있어서 최초 1회는 인스턴스 생성 시도하시고 이후에 스택 만들어야 다른 리소스 영향이 없습니다.

purndal 2022.12.28. 16:00

ㅠㅠ;; proxmox 계정으로 저의 아이드를 만들어서 돌려볼려고 했더니.. 마지막 실행 시 ubuntu / oci.... 라는곳에 파일을 자동으로 찾는군요 ㅠㅠ

 

계정을 ubuntu 로 새로 만들어서 폴더하고 동일하게 만든다음 실행해야 겠네요... ㅎㅎㅎ. 그냥 개인 리눅스에서 일반적으로 사용한다고 생각하면

오류 팍팍 나오네요 ㅠㅠ;

 

아니네요 제가 그냥 팍 붙혀넣기 해서 그렇군요 ㅠㅠ ;; 

 

autocreate.sh 에 경로지정이 있었군요 에휴~ ㅠㅠ;; 

 

------ 막혔나 봅니다 ㅠㅠ;; 한번 실행 후 아래와 같이 나오네요 .. ㅎ. 

화면 캡처 2022-12-28 212217.png.jpg

 

 

----- 에러 원인을 찾았네요 ㅠㅠ;; 

 

terraform 의 버전이 원인이었습니다. 지원해주는 버전이 1.0.x 인데 최신버전을 설치를 한것이 원인이었군요.

1.0.11 버전을 다운받아서 실행을 하니 정상적으로 등록하는 모습이 보였습니다. 

 

이제 시간과의 전쟁이군요.. 기대됩니다. ㅎ. 

very 2024.02.18. 02:26
purndal
안녕하세요, 마지막 $ screen -s /home/ubuntu/oci-creater/autocreate.sh
실행하면 Cannot exec /home/ubuntu/oci-creater/autocreate.sh : (뭔가 깨져 나와 알아 볼 수 없는 문자).. 이렇게 나오면서 안 되네요.

혹시 Terraform 최신버전으로 설치했을 때 저렇게 나오셨나요? 그렇다면 저도 낮은 버전으로 해봐야 할지 ;ㅂ;
참고로 저는 Terraform v1. 7. 3으로 했는데 위와 같은 에러 메시지가 나옵니다.
purndal 2024.02.18. 09:45
very

한글판으로 까셨는데.. 접속하는 ssh 프로그램이 한글을 지원하지 않는가 보군요. utf-8 인가..
그거 적용 안됬을 가능성이 있어 보이네요.. 그건 그렇고..

실행이 안되는 건 아마도 sh 파일의 퍼미션?... 설정이 되어져 있지 않아서 그럴 수 있습니다.

즉 관리자 권한으로 접속하셔서 해보세요..

sudo -i
암호
위치에 가서 실행.

 

== 아... 내 글 다시 읽어보니... 무슨 에러가 있어서 구버전을 사용했는가보군요.. 음.. 

얼마전 다시 oci 계정 등록하려고 했었는데 카드 문제 땜시 기록을 못했는게 아쉬워지는군요. 

그랬으면 자료가 더 많았을 껀디.. ㅠㅠ;; 

 

정 안된다면 구버전으로 다시한번.. ㅎㅎ. 

 

CPR 2024.02.22. 12:35
very
screen -s /home/ubuntu/oci-creater/autocreate.sh 로 바로 입력하지 마시고

screen -S screen명
./home/ubuntu/oci-creater/autocreate.sh
ctrl + a + d 로 스크린 빠져나오시는거로 해보세요
very 2024.02.23. 09:30
CPR

댓글 감사합니다.
autocreate.sh 돌리는 건 성공했습니다.
제가 autocreate.sh를 윈도우 PC에서 만들어서(vi 잘 못 써서 ㅎ) host에 업로드한 후 사용했는데 뭔가 개행문자나 파일 end line 문자가 달라서 그랬던 거였습니다. autocreate.sh를 host 상에서 vi 로 만들어서 돌렸더니 성공했습니다 ㅎ

하나 더 질문해도될까요?

screen 으로 autocreate.sh 를 돌리면 이거 host 에서 빠져나와도(터미널 끄고 나와도) 계속 도는 건가요? instance 생성된 건 어떻게 아는건가요?


그리고 instance 생성되었으면 screen 으로 돌린 거 어떻게 off 하는건지요

 

-> 질문하고 나서 좀 찾아본 후 이해했습니다, 자문자답이네요. gg

 

가끔 접속해도 잘 되었는지 직접 확인하는 방법 외에는 없나요? ㅎ

봇으로 결과 알려주게끔 해서 보시는 분도 계시더군요

 

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story

본 게시판은 서버구축 게시판과 통합되었습니다.

서버구축 게시판 이동하기
분류 제목 글쓴이 날짜 조회 추천
Oracle 공지 조금 더 간단한 오라클 인스턴스 생성 자동화 방법 (생성확인 완료) 14 나린이2 22.06.14.20:09 4360 +4
Oracle 공지 오라클 A1 인스턴스 (최대 4코어 24GB 메모리) 생성 자동화 스크립트 한글 가이드 24 theb1ue 22.06.14.16:05 4095 +6
Oracle 오라클 서울리전 A1 인스턴스 숙청 당했네요 16 theb1ue 22.12.13.16:31 2567 +1
잡담 arm64에서 x86 에뮬레이팅은 못 써먹겠네요.. 7 luna1474 22.12.04.17:49 1035 +1
정보 웹 스토리지 클라우드 추천해주실 수 있으실까요? 4 상방리 22.11.07.14:38 530 +1
Oracle
image
purndal 22.12.29.11:08 1164 0
Oracle
image
FlexD 22.12.15.17:04 483 0
Oracle
image
theb1ue 22.12.13.16:31 2567 +1
Oracle
normal
앨런임더 22.12.10.04:48 949 0
잡담
image
luna1474 22.12.04.17:49 1035 +1
Oracle
normal
luna1474 22.11.29.11:16 1592 0
Oracle
normal
강종 22.11.22.11:15 1085 0
Oracle
image
달소 22.11.18.13:50 1514 0
Oracle
image
콜라 22.11.08.17:17 329 0
Oracle
normal
돌발 22.11.07.22:27 207 0