사용하기 전에

Q. 네이버 클라우드 플랫폼 Init-Script이 무엇인가요?

  • Init-Script는 사용자가 미리 작성해 둔 스크립트를 서버 생성 시 자동으로 실행시킬 수 있는 기능으로, 서버의 초기 환경 구축 시 편리하게 활용할 수 있습니다.

Q. Init-Script 생성 및 사용은 어떻게 하나요?

  • 콘솔에 접속한 후 다음의 단계를 통해 쉽게 Init-Script를 생성 및 사용할 수 있습니다.

step

  1. 콘솔 접속 : 네이버 클라우드 플랫폼에서 제공하는 콘솔에 접속합니다.
  2. Script 생성 : 생성하고자 하는 Script 이름, OS 선택, Script를 작성한 후 생성합니다.
  3. 수정 및 삭제 : 생성한 Script를 수정 및 삭제가 가능합니다.
  4. 서버 생성 시 Init-Script 이용 : 생성한 Script는 서버 생성 시 적용하여 수행하도록 합니다. 단, 서버 이미지나 유사 서버로 서버를 생성할 경우에는 Init-Script를 이용할 수 없습니다.

Q. Init-Script의 주요 특징은 무엇인가요?

  1. 사용자 정의 스크립트를 관리 콘솔에서 편리하게 생성 및 관리합니다.
  2. 서버 생성 시 스크립트를 손쉽게 선택 및 적용할 수 있습니다.
  3. 관리 콘솔 뿐 아니라 RESTful API로도 제공되어 개발 시 다양하게 활용할 수 있습니다.
  4. 다양한 스크립트 언어 지원합니다.
    • Linux 계열: Python, Perl, Shell 스크립트
    • Windows 계열: Visual Basic 스크립트
  5. 서버를 처음 구동할 때 패키지 설치 및 환경 설정에 편리하게 이용할 수 있습니다.

Q. 어떤 경우에 Init-Script를 사용하나요?

  • 같은 용도 서버를 여러 대 일괄로 생성하는 경우 : 사용자 스크립트 생성 후 여러 서버 생성 시 해당 스크립트 일괄 적용합니다.
  • 동일한 환경의 서버를 주기적으로 생성하는 경우 : 사용자 스크립트를 생성하고 저장한 후, 서버 생성 시 해당 스크립트 선택 적용합니다.
  • 용도별로 서버 초기 환경 관리가 필요한 경우 : 용도별로 다양한 스크립트를 생성하고 저장한 후, 서버 생성 시 필요에 따라 선택하여 사용합니다.

Script 생성

Step 1. 콘솔 접속

콘솔에 접속합니다.

① 초기에는 생성된 Script가 없음을 확인합니다. 상단 메뉴에서 +Script 생성 버튼을 클릭하여 Script를 생성할 수 있습니다.

Step 2. Script 생성

신규 Script를 생성합니다.

서버 생성 시 자동 실행될 Script를 사용자가 직접 생성할 수 있습니다.
사용자 Script로 인한 인프라 장애 발생 시, 네이버 클라우드 플랫폼에서는 지원하지 않습니다.

① 생성할 Script 이름을 입력합니다.

② OS 타입을 선택합니다. OS별로 사용할 수 있는 스크립트 유형이 다릅니다.

③ 메모형식으로 설명을 입력해둡니다. (선택)

④ Script를 작성합니다.

  • Linux는 Python/Perl/Shell 등의 스크립트 사용 가능합니다. 단, 첫 줄에 #!/bin/bash, #!/usr/bin/env python, #!/bin/perl 등과 같은 형태로 실행하고자 하는 스크립트 경로를 지정하고 실행하셔야 됩니다.
  • Window는 Visual Basic 스크립트만 작성 가능합니다.
  • 스크립트의 내용은 영문으로만 작성해야 하며, 한글, 주석 등은 포함될 수 없습니다.
  • 스크립트 내용에 보안 침해가 있을 수 있는 내용은 포함시키면 안되며, 이로 인해 발생되는 문제에 대한 귀책사유가 될 수 있습니다.

Script 생성 버튼을 클릭합니다.

Script 관리하기

수정

생성한 Script를 수정할 수 있습니다.

① 리스트에서 수정할 Script를 선택합니다.

수정 버튼을 클릭합니다.

③ Script 이름을 제외한 OS 타입 및 Script를 수정할 수 있습니다. 이후 +Script 수정 버튼을 클릭합니다.

삭제

생성한 Script를 삭제할 수 있습니다.

① 리스트에서 삭제할 Script를 선택합니다.

삭제 버튼을 클릭합니다. 삭제하면 리스트에서도 삭제됩니다.

서버 생성 시 Script 이용하기

서버 생성 시, 미리 생성해 둔 Script를 선택하여 적용할 수 있습니다.

① 서버의 서버 생성 버튼을 클릭합니다.

② 서버 생성 프로세스 중, 서버 생성 가이드 > Step 3. 서버 설정 단계를 확인합니다.

③ ‘Script 선택’ 항목에서 Init-Script 메뉴에서 생성한 Script 리스트가 노출됩니다. 적용할 Script를 선택하고 ‘서버 생성’ 이 완료되면 지정한 스크립트가 수행됩니다. 서버가 운영중인 상태에서 스크립트 설치가 진행중일 수도 있습니다.

  • 설치 완료 여부를 확인하기 위해서는 진행 상태에 대한 로깅이 필요합니다.
    • Linux는 /var/log/ncloud-init.log
    • Windows는 C:\Program Files(X86)\NBP\ncloud-init\logs를 참고하면 됩니다.

Script Sample

Linux 계열의 경우

Apache HTTP Server 설치

Perl script sample
#!/usr/bin/perl –w

$result = `yum update-to httpd`;

if ($result =~ /but not installed/) {
  print "http available\n";
  if ($result =~ /httpd available/) {
    print "http not installed\n";
    $iresult = `yum -y install httpd`;
    if ($iresult =~ /Complete/) {
      print "http installed\n";
      open (WP, ">/var/www/html/index.html") || die "cannot open index.html\n";
      print WP `ifconfig eth0 | grep "inet addr" | awk \'{print \$2}\'`;
      close(WP);
      `chkconfig --level 345 httpd on`;
      `service httpd restart`;
    }
  }
  else {
    print "http NOT available\n";
  }
}
else {
  print "http already installed\n";
}
Shell script sample
#!/bin/sh

result=`yum update-to httpd`

if [[ $result =~ *"but not installed"* ]]
then
   if [[ $result =~ *"httpd available"* ]]
   then
      echo 'http available'
      echo 'http not installed'

      $iresult=`yum -y install httpd`

      if [[ $iresult =~ *"Complete"* ]]
      then
         echo 'http installed'
         echo 'test' >> /var/www/html/index.html

         /sbin/chkconfig --level 345 httpd on
         /sbin/service httpd restart
      fi
   else
      echo 'http Not available'
   fi
else
   echo 'http already installed'
fi

Windows 계열의 경우

Java JDK 설치

Visual Basic script sample
LOG_DIRECTORY = "C:\Windows\Temp"
DEFAULT_LOG_FILE_PATH = LOG_DIRECTORY + "\init-install.log"

Set ws = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")

' logging (file & stdout)
Function logInfo(str)
    WScript.Echo CStr(Now()) + " [INFO]: " + str
    Set objFile = objFSO.OpenTextFile(DEFAULT_LOG_FILE_PATH, 8, True)
    objFile.WriteLine CStr(Now()) + " [INFO]: " + str
    objFile.Close
End Function

tmp_jdk_download_path="C:\Windows\Temp\jdk.exe"
jdk_installer_url="http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-windows-x64.exe"

cmd="wget --no-check-certificate --no-cookies --header ""Cookie: oraclelicense=accept-securebackup-cookie"" " + jdk_installer_url + " -O " + tmp_jdk_download_path + " -c"


' download jdk
ws.Run cmd,,TRUE

WScript.Sleep 5000

javaInstallCmdStr = "C:\Windows\Temp\jdk.exe /s /L C:\Windows\Temp\jdk-install.log"
Set oExec1 = ws.Exec(javaInstallCmdStr)

Do While oExec1.Status = 0
    loginfo "Info: Wait for install JDK to finish."
    WScript.Sleep 10000
Loop

연관 정보 바로가기

아래 가이드에서 연관 정보를 확인할 수 있습니다.

""에 대한 건이 검색되었습니다.

    ""에 대한 검색 결과가 없습니다.

    처리중...