Init Script

Prev Next

Classic環境で利用できます。

Init Scriptでは、 Init Script メニューの画面構成とスクリプト情報について説明し、スクリプトの作成と管理方法について説明します。

Init Scriptはあらかじめ作成しておいたスクリプトをサーバ作成時に自動実行できる機能です。同じ用途のサーバを複数台一括作成したり、同じ環境のサーバを定期的に作成したり、用途別にサーバ初期環境管理が必要な場合など様々な場合に活用できます。

スクリプト情報確認

Init Script画面でスクリプト情報を確認できます。

Init Script画面

NAVERクラウドプラットフォームポータルで、 コンソール > Services > Compute > Server > Init Script メニューを順にクリックすると、Init Script画面を確認できます。

Init Script画面は、以下のように構成されています。

server-initscript-classic_screen_ja

領域 説明
① メニュー名 現在確認中のメニューの名前および作成したスクリプト数
② 基本機能 Init Scriptメニューに初回アクセスすると提供される機能
  • [Script作成] ボタン: クリックしてスクリプトを作成
  • [サービスの詳細を見る] ボタン: クリックして Server紹介ページへ移動
  • [更新] ボタン: クリックしてスクリプトリストを更新
③ 作成後の機能 スクリプト作成後に提供される機能
④ 検索ボックス スクリプト名でスクリプトを検索
⑤ スクリプトリスト 作成したスクリプトのリスト
  • Script 名: スクリプト作成時に入力した名前
  • 説明: スクリプトの説明
    • [修正] ボタンをクリックして説明を修正可能
  • 見る/修正: [ショートカット] ボタンをクリックしてスクリプト情報を確認・修正
  • OSタイプ: スクリプトをインストールできる OSタイプ
  • 作成日時: スクリプトを作成した日時
  • 最終修正日時: スクリプトを最後に修正した日時

スクリプト作成

サーバ作成時に自動実行するスクリプトを直接作成できます。
スクリプトを作成する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールの Region メニューや Platform メニューから利用中の環境をクリックします。

  2. Services > Compute > Server メニューを順にクリックします。

  3. Init Script メニューをクリックします。

  4. [Script作成] ボタンをクリックします。

  5. スクリプト名や OSタイプを指定してスクリプトを作成し、 [Script作成] ボタンをクリックします。

    注意

    スクリプト内容にセキュリティ侵害が含まれる可能性がある内容は含まないでください。これによる問題が発生した場合、お客様の責任となる可能性があります。

    • スクリプトの名前には、3~100文字の英字の大小文字、数字、ハイフン(-)、アンダースコア(_)を入力できます。
    • スクリプトの内容は英語のみで作成でき、日本語やコメントが含まれてはいけません。
      • Linuxの場合は Python、Perl、Shellなどのスクリプトを使用できます。一列目に#!/bin/bash, #!/usr/bin/env python, #!bin/perlなどのような形で実行しようとするスクリプトパスを指定します。
      • Windowsの場合は Visual Basicスクリプトのみ使用できます。
  6. Init Scriptポップアップの [確認] ボタンをクリックします。

    • 作成されたスクリプトがリストに表示されます。

スクリプト修正

作成したスクリプトの OSタイプや内容を修正できます。
スクリプトの OSタイプと内容を修正する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールの Region メニューや Platform メニューから利用中の環境をクリックします。
  2. Services > Compute > Server メニューを順にクリックします。
  3. Init Script メニューをクリックします。
  4. スクリプトリストから修正するスクリプトをクリックして選択した後、 [修正] ボタンをクリックします。
  5. 内容を修正し、 [Script修正] ボタンをクリックします。
  6. Init Scriptポップアップの [確認] ボタンをクリックします。
    • 修正された内容が保存されます。

スクリプト削除

作成したスクリプトを削除する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールの Region メニューや Platform メニューから利用中の環境をクリックします。
  2. Services > Compute > Server メニューを順にクリックします。
  3. Init Script メニューをクリックします。
  4. スクリプトリストから削除するスクリプトをクリックして選択した後、 [削除] ボタンをクリックします。
  5. Script削除ポップアップの内容を確認して、 [確認] ボタンをクリックします。
    • スクリプトが削除され、リストから消えます。

スクリプトでサーバを作成

サーバでスクリプトが自動的に実行されるようにするには、サーバを作成する際に設定情報にスクリプトを指定する必要があります。
サーバ設定(新規コンソール/既存コンソール)段階で Script 項目にご希望のスクリプトを選択します。

参考
  • サーバイメージを利用してサーバを作成したり、類似サーバを作成する場合にはスクリプトを使用できません。
  • サーバの作成が完了して 運用中 に表示されても、スクリプトのインストールが継続中である場合もあります。インストール完了有無を確認するには、進捗状況のログを確認します。
    • Linux: /var/log/ncloud-init.log
    • Windows: C:\Program Files(X86)\NBP\ncloud-init\logs

スクリプト例

以下のスクリプト例をご参照ください。

Linuxサーバ

Linuxサーバで使用できるスクリプトの例を紹介します。

Apache HTTP Serverのインストール

Apache HTTP Serverをインストールするスクリプトは、次の通りです。

Perlスクリプト例

#!/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スクリプト例

#!/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サーバ

Windowsサーバで使用できるスクリプトの例を紹介します。

Java JDKのインストール

Java JDKをインストールするスクリプトは、次の通りです。

Visual Basicスクリプト例

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