- 印刷する
- PDF
Init Script
- 印刷する
- PDF
VPC環境で利用できます。
Init Scriptでは、 Init Script メニューの画面構成とスクリプト情報について説明し、スクリプトの作成と管理方法について説明します。
Init Scriptはあらかじめ作成しておいたスクリプトをサーバ作成時に自動実行できる機能です。同じ用途のサーバを複数台一括作成したり、同じ環境のサーバを定期的に作成したり、用途別にサーバ初期環境管理が必要な場合など様々な場合に活用できます。
スクリプト情報確認
Init Script画面でスクリプト情報を確認できます。
Init Script画面
NAVERクラウドプラットフォームポータルで、 コンソール > Services > Compute > Server > Init Script メニューを順にクリックすると、Init Script画面を確認できます。
Init Script画面は、以下のように構成されています。
領域 | 説明 |
---|---|
① メニュー名 | 現在確認中のメニューの名前および作成したスクリプト数 |
② 基本機能 | Init Scriptメニューに初回アクセスすると提供される機能
|
③ 作成後の機能 | スクリプト作成後に提供される機能 |
④ 検索ボックス | スクリプト名でスクリプトを検索 |
⑤ スクリプトリスト | 作成したスクリプトのリスト
|
スクリプト作成
サーバ作成時に自動実行するスクリプトを直接作成できます。
スクリプトを作成する方法は、次の通りです。
NAVERクラウドプラットフォームコンソールの Region メニューや Platform メニューから利用中の環境をクリックします。
Services > Compute > Server メニューを順にクリックします。
Init Script メニューをクリックします。
[Script作成] ボタンをクリックします。
スクリプト名や OSタイプを指定してスクリプトを作成し、 [Script作成] ボタンをクリックします。
注意スクリプト内容にセキュリティ侵害が含まれる可能性がある内容は含まないでください。これによる問題が発生した場合、お客様の責任となる可能性があります。
- スクリプトの名前には、3~100文字の英字の大小文字、数字、ハイフン(-)、アンダースコア(_)を入力できます。
- スクリプトの内容は英語のみで作成でき、日本語やコメントが含まれてはいけません。
- Linuxの場合は Python、Perl、Shellなどのスクリプトを使用できます。一列目に
#!/bin/bash
,#!/usr/bin/env python
,#!bin/perl
などのような形で実行しようとするスクリプトパスを指定します。 - Windowsの場合は Visual Basicスクリプトのみ使用できます。
- Linuxの場合は Python、Perl、Shellなどのスクリプトを使用できます。一列目に
Init Scriptポップアップの [確認] ボタンをクリックします。
- 作成されたスクリプトがリストに表示されます。
スクリプト修正
作成したスクリプトの OSタイプや内容を修正できます。
スクリプトの OSタイプと内容を修正する方法は、次の通りです。
- NAVERクラウドプラットフォームコンソールの Region メニューや Platform メニューから利用中の環境をクリックします。
- Services > Compute > Server メニューを順にクリックします。
- Init Script メニューをクリックします。
- スクリプトリストから修正するスクリプトをクリックして選択した後、 [修正] ボタンをクリックします。
- 内容を修正し、 [Script修正] ボタンをクリックします。
- Init Scriptポップアップの [確認] ボタンをクリックします。
- 修正された内容が保存されます。
スクリプト削除
作成したスクリプトを削除する方法は、次の通りです。
- NAVERクラウドプラットフォームコンソールの Region メニューや Platform メニューから利用中の環境をクリックします。
- Services > Compute > Server メニューを順にクリックします。
- Init Script メニューをクリックします。
- スクリプトリストから削除するスクリプトをクリックして選択した後、 [削除] ボタンをクリックします。
- 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