ご利用の前に

Q. Packerとは何ですか?

  • PackerHashicorp社で提供するツールです。これを利用してユーザーはマルチクラウドプラットフォームでマシーンイメージ(サーバイメージ)の作成を自動化できます。
  • 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スクリプトのみ使用できる。
    • スクリプトの内容は英語で作成しなければならない。
  • 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ダウンロードサイトでダウンロードできます。

に対する検索結果は~件です。 ""

    に対する検索結果がありません。 ""

    処理中...