안녕하세요 ManVSCloud 김수현입니다.
이전에 포스팅한 “[NCP] 네이버 클라우드에서 이미지 백업을 자동화 해보자(WITH. SHELL SCRIPT)” 는 Linux OS에서만 사용이 가능한 가이드였습니다.
오늘은 Windows OS에서 해당 스크립트를 사용하는 방법도 공유드립니다.
Download link
아래는 ncloud cli와 제가 만든 스크립트를 다운로드 할 수 있는 링크입니다.
이 문서에서는 CLI 초기 설정법부터 간단한 이용방법에 대해서 설명합니다.
CLI에 관련된 각 상세 명령…
// "ncloud cli" 다운로드 링크 https://www.ncloud.com/api/support/download/files/26 // manvscloud의 "네이버 클라우드 이미지 백업 스크립트(VPC용)" 다운로드 링크 http://file.manvscloud.com/nCloudimgScript.zip // manvscloud의 "네이버 클라우드 이미지 백업 스크립트(클래식용)" 다운로드 링크 http://file.manvscloud.com/Classic_nCloudimgScript.zip
README
======================================== Updated : 2022-01-19 Maker : 김수현(ManVSCloud) Blog : https://manvscloud.com/ ======================================== ############################# Basic explanation ############################# 1. 00.Config를 가장 먼저 설정해주셔야합니다. 2. 02.selectiveBackup를 사용하기 위해서는 01.getBackupListConfig를 먼저 설정해주어야합니다. 3. 03.allServerBackup은 전체 백업이므로 01.getBackupListConfig 따로 설정해주지 않아도 됩니다. ## 선택 백업 # 00.Config+01.getBackupListConfig+02.selectiveBackup ## 전체 백업 # 00.Config+03.allServerBackup ############################# Version ############################# // 각 스크립트 생성(2022-01-19) 00.Config v0.1 01.getBackupListConfig v0.1 02.selectiveBackup v0.1 03.allServerBackup v0.1 ############################# Function ############################# 00.Config : 이미지 이름 및 백업 보관일을 설정하는 초기 세팅 파일입니다. 01.getBackupListConfig : 백업할 서버를 선택할 수 있습니다. 02.selectiveBackup : 01.getBackupListConfig에서 선택된 서버를 대상으로 이미지 백업을 진행합니다. 03.allServerBackup : 사용하고 있는 모든 서버에 대해 이미지 백업을 진행합니다. ############################# include ############################# Location : ImageBackup/include * List -. allInstanceNo : 사용하는 Server의 인스턴스 No를 불러옵니다. -. backupCheck : 미구현 -. deleteImage : 백업 보관일보다 오래된 이미지를 삭제합니다. -. getInstanceNo : 01.getBackupListConfig 에서 선택된 서버에 대한 인스턴스 No를 불러옵니다. -. imageList : 전체 이미지 리스트를 불러옵니다. ############################# Log ############################# AllBackup.log : 03.allServerBackup 실행 시 생성되는 표준 입/출력,에러 로그 CreateBackup.log : 02.selectiveBackup 실행 시 생성되는 표준 입/출력,에러 로그 DeleteBackup.log : 02,03 Backup 실행 시 include/deleteImage 에서 이미지 삭제 시 생성되는 표준 입/출력,에러 로그 ======================================== ========== Made in ManVSCloud ========== ========================================
A to Z
- 백업 서버를 생성하여 이미지 백업을 관리하는 방법으로 설명 드리도록 하겠습니다.
- Access Key를 사용하는 것은 지양하고 있으므로 A to Z 설명은 Sub Account의 Role을 서버에 적용시키는 방법으로 진행하겠습니다.
- Classic 환경에서는 Sub Account의 Role을 서버에 적용시키는 방법이 불가능하므로 ncloud configure를 통해 AccessKey와 SecretKey를 추가해주어야합니다.
Create Server & Sub Account

- 백업용 서버를 생성했습니다.(물론 기존에 사용하고 있는 서버에도 적용할 수 있습니다.)

- Sub Account를 이용하여 위 생성한 서버에 Role(역할)을 부여할 수 있습니다.[A 서버][B 역할] (VPC Server 서비스에 대한 모든 권한)(A서버에게 B역할을 부여하면 A서버는 B역할”VPC Server 서비스를 컨트롤 할 수 있는 권한”을 얻게 된다.)

- 우선 역할 이름을 생성 해줍니다.

- 생성한 역할로 들어가 [정책] 부분에서 해당 역할에 정책을 [추가]합니다.서버와 이미지 리스트만 보는 것이 아니라 이미지 생성 및 삭제도 필요하므로 “NCP_VPC_SERVER_MANAGER” 정책을 추가했습니다.

- [Role 소유 리소스]에서 이제 위에서 만든 리소스(서버)를 추가합니다.(해당 등록한 서버에 이 역할을 주는 것)
Git Install
윈도우 환경에서 bash 및 sh을 사용하기 위해 git을 설치하기로 했습니다.

- Portable
(“thumbdrive edition”) 64-bit Git for Windows Portable 로 설치하였습니다.

Windows 에서 ncloud cli(cmd가 아닌 sh로 실행되도록)를 사용할 수 있도록 설정
ncloud_cli에서 압축을 풀면 cli_linux와 cli_win이 생성됩니다.
※ 쉘 스크립트에서는 ncloud를 sh를 통해 실행하는데 cli_win에서는 ncloud.cmd로 실행되어 스크립트가 정상 실행되지 않습니다.
cli_linux와 cli_win의 차이는 ncloud.sh 또는 ncloud.cmd 그리고 java가 파일이 다릅니다. windows에서 cli_linux의 ncloud를 실행하게되면 java 문제로 실행이 되지않습니다.
1. C:\Users\Administrator\cli_linux\jre8 를 C:\Users\Administrator\cli_linux\jre8_org 로 이름 변경
2. C:\Users\Administrator\cli_win\jre8 를 C:\Users\Administrator\cli_linux\jre8 로 복사
3. C:\Users\Administrator\cli_linux\ncloud 를 C:\Users\Administrator\cli_linux\ncloud_org 로 백업
4. C:\Users\Administrator\cli_linux\ncloud를 아래와 같이 수정
(뒤에 ncloud-api-cli-1.1.6-SNAPSHOT-jar-with-dependencies.jar의 버전이 바뀌는 경우가 있으므로 C:\Users\Administrator\cli_linux\lib 에서 이름 잘 확인해줄 것)
#!/bin/bash #./jre8/bin/java -jar ./lib/ncloud-api-cli-1.1.6-SNAPSHOT-jar-with-dependencies.jar "$@" ~/cli_linux/jre8/bin/java -jar ~/cli_linux/lib/ncloud-api-cli-1.1.6-SNAPSHOT-jar-with-dependencies.jar "$@"
아래 단계로 넘어가기 전에 위에서 다운 받은 ImageBackup 스크립트가 아래 경로로 되어있는지 확인
C:\Users\Administrator\ImageBackup
C:\Users\Administrator\PortableGit\git-bash 실행하여 기본 세팅 진행

1) 00.Config를 수정해줍니다.
- 수정해줘야할 부분
imgName=””
(이미지 생성 시 제일 앞에 붙는 이름입니다.)
saveDay=“”
(이미지 백업 보관 기간입니다.)
#!/bin/bash ## 경로 설정 CLI=~/cli_linux/ncloud b_HOME=~/ImageBackup b_INCLUDE=$b_HOME/include ## 이미지 이름 설정 # * 이미지 생성 시 최대 30 자 제한으로 imgName에는 10자 이하로 설정해주세요. # * 알파벳 문자로 시작해야합니다. # * 특수문자 "-" 순서에 따라 백업 보관일을 감지하므로 영문+숫자로만 사용해주세요. # * 최종 이미지 생성 시 "imgName-instanceNo-생성일자"의 이름으로 생성됩니다. imgName="wintest" ## 백업 보관일 설정 # * 일단위 설정입니다. ex) "14" (14일) saveDay="14" config() { echo $saveDay > $b_HOME/tmp/saveDay.txt echo $imgName } config
2) 원하는 서버만 선택해서 백업을 원하실 경우 01.getBackupListConfig, 02.selectiveBackup 를 실행하며 따로 선택없이 전체 서버를 대상으로 백업을 하실 경우 03.allServerBackup 만 사용하게 됩니다.

환경 변수 등록
- 시스템 – 고급 시스템 설정 – [고급] 탭에서 ‘환경 변수’를 설정합니다.

위와 같이 환경 변수 설정 후 cmd에서 아래와 같이 확인이 가능합니다.

작업 스케줄러 등록(자동 백업)

1) 작업 스케줄러 – 동작 – 기본 작업 만들기
이름, 시간 등을 다음과 같은 예시와 같이 정해줍니다.




2) 실행 파일 및 인수 추가 설정
- 프로그램/스크립트
C:\Users\Administrator\PortableGit\bin\sh.exe - 인수 추가
위 환경 변수에서 추가한 값 추가


3) 스케줄러 등록된 부분을 다음과 같이 확인할 수 있습니다.
또한 우클릭하여 수동으로 실행해볼 수 있습니다.


최종 확인

위 A to Z를 따라 잘 따라오셨다면 위와 같이 정상적으로 이미지가 생성될 것입니다.
Personal Comments
따라해보시고 문제가 발생하는 부분이나 고쳐졌으면 하는 점이 있으실 경우 댓글로 남겨주시면 참고하도록 하겠습니다.
긴 글 읽어주셔서 감사합니다.

No Comments