ご利用の前に
Q. Packerとは何ですか?
- PackerはHashicorp社で提供するツールです。これを利用してユーザーはマルチクラウドプラットフォームでマシーンイメージ(サーバイメージ)の作成を自動化できます。
- NAVERクラウドプラットフォームでもユーザーがPackerを利用してマイサーバイメージの作成を自動化できるようにPacker plugin Builder for NAVERクラウドプラットフォームを提供します。
Q. Packerを利用すると、どんなメリットがありますか?
アプリケーションのデプロイ、バグ修正パッチなどの作業の後、従来はマニュアルでサーバイメージを作成していましたが、現在はPackerを利用して簡単にサーバイメージを作成できます。ユーザーは次のように1つのコマンドを使って自分のサーバイメージを作成できます。
packer build template.json
Packer Plugin Builder for NAVERクラウドプラットフォームのご紹介
Packerはプラグインの形でCustom builderを開発して使用できるようにサポートしています。それを受け、NAVERクラウドプラットフォームでも使用できるPacker Builderを開発しました。これからはNAVERクラウドプラットフォームのユーザーもPackerを利用してNAVERクラウドプラットフォームでユーザーイメージを簡単に作成できます。
Packerを使うためにはpackerコマンドの因子として送るjsonファイルが必要です。次はNAVERクラウドプラットフォームで使用するjsonファイルの例です。
{
"variables": {
"ncloud_access_key": "FRxhOQRNjKVMqIz0sRLY",
"ncloud_secret_key": "xd6kTO5iNcLookBx0D8TDKmpLj8ikxqEhc06MQD2"
},
"builders": [
{
"type": "ncloud",
"access_key": "{{user `ncloud_access_key`}}",
"secret_key": "{{user `ncloud_secret_key`}}",
"server_image_product_code": "SPSW0LINUX000046",
"server_product_code": "SPSVRSSD00000002",
"server_image_name": "packertest",
"server_image_description": "server image description",
"region": "Korea"
}
]
}
各項目に関する説明は次の通りです。
type
(required): "ncloud"ncloud_access_key
(required): ユーザーのAccess Key. NAVERクラウドプラットフォームアカウント管理 > 認証キー管理ページで認証キーの作成および照会可能ncloud_secret_key
(required): ユーザーの認証キーに対応するSecret Key. NAVERクラウドプラットフォームアカウント管理 > 認証キー管理 ページで認証キーの作成および照会可能server_image_product_code
: 作成するイメージ商品コード(明示しない場合、member_server_image_no
の値が必要)server_product_code
(required): 作成する商品(スペック)コードmember_server_image_no
: 以前作成したユーザーイメージコード。以前作成したユーザーのイメージがある場合、それを利用してイメージを作成できる。(明示しない場合、server_image_product_code
の値が必要)server_image_name
(optional): 作成するイメージの名前server_image_description
(optional): 作成するイメージの説明block_storage_size
(optional): ブロックストレージを追加する場合、10(GB)~2000(GB)まで10(GB)単位で追加可能。access_control_group_configuration_no
: Windowsサーバ作成の際、winrmアクセスを許可するための設定が必要。アクセスソース("0.0.0.0/0")、許可するポート(5985)が明示されたACGを予め作成しなければならない。user_data
(optional): インスタンス作成の際に実行するinitスクリプト- Linux環境ではPython, Perl, Shellなどのスクリプトを使用できる。最初の行に
#!/usr/bin/env python
,#!/bin/perl
,#!/bin/bash
などの形で実行しようとするスクリプトのパスを指定。 - Windows環境ではVisual Basicスクリプトのみ使用できる。
- スクリプトの内容は英語で作成しなければならない。
- Linux環境ではPython, Perl, Shellなどのスクリプトを使用できる。最初の行に
region
(optional): イメージを作成するregionの名前(デフォルト: Korea)- 入力可能な値: Korea/US-West/HongKong/Singapore/Japan/Germany
Windowsイメージ作成における要求事項
Windowsサーバ作成の際、ProvisionのためにはPacker設定ファイルに次の内容が必要です。
"builders": [
{
"type": "ncloud",
"access_key": "{{user `ncloud_access_key`}}",
"secret_key": "{{user `ncloud_secret_key`}}",
"server_image_product_code": "SPSW0WINNTEN0016",
"server_product_code": "SPSVRSSD00000002",
"server_image_name": "packertest",
"server_image_description": "server description",
"user_data": "CreateObject(\"WScript.Shell\").run(\"cmd.exe /c powershell Set-ExecutionPolicy RemoteSigned & winrm quickconfig -q & sc config WinRM start= auto & winrm set winrm/config/service/auth @{Basic=\"\"true\"\"} & winrm set winrm/config/service @{AllowUnencrypted=\"\"true\"\"} & winrm get winrm/config/service\")",
"region": "Korea",
"communicator": "winrm",
"winrm_username": "Administrator",
"access_control_group_configuration_no" : 4964
}
],
"provisioners": [
{
"type": "powershell",
"inline": [
"$Env:SystemRoot\\System32\\Sysprep\\Sysprep.exe /oobe /generalize /shutdown /quiet \"/unattend:C:\\Program Files (x86)\\NBP\\nserver64.xml\" "
]
}
]
注意事項
- パブリックIPアドレスはサーバインスタンスが作成された数以上は作成できません。それを踏まえ、Packer実行の前にすでに作成されたパブリックIPアドレスの数がサーバインスタンス(サーバイメージの作成に使われるサーバインスタンスを含む)の数より多くならないようにしてください。
- Packerプロセスの強制終了またはPacker実行中のTerminal(Command)ウィンドウの終了などの場合、それ以上Packerプロセスが進まないためにリソースが整理されない状況が発生する可能性があるので、そのような場合はpacker実行の際に発生したリソースをユーザーがマニュアルで整理しなければなりません。
Downloads
Packer Plugin Builder for NAVERクラウドプラットフォームはPackerに内蔵された状態でデプロイされています。 Packer実行ファイルはPackerダウンロードサイトでダウンロードできます。