Packerを使用したスナップショットの作成

パッカーとは何ですか?

PackerはHashiCorpが開発したサーバーイメージングツールです。サーバーイメージング; または、不変のインフラストラクチャ。は、AnsibleやPuppetなどのランタイム構成ツールの一般的な代替手段です。これは、いったんサーバーが配備されたら、決して変更しないという考えに基づいています。代わりに、変更を加えた新しいサーバーをデプロイしてから、古いサーバーを破棄します。これにより、サーバーのメンテナンスが容易になり、多数のマシン間でより効率的にスケーリングできます。

PackerはそのままではVultrをサポートしていませんが、そのサポートを追加するプラグインがあります。VultrをサポートするPackerのインストール手順は、プラグインのREADMEにあります。この記事の残りの部分では、PackerとVultrプラグインがインストールされていることを前提としています。

使い方

Packerの目的は、サーバーイメージ、つまりイメージング時とまったく同じように新しいサーバーを作成するために使用できるアーティファクトを生成することです。Vultrでは、これらのアーティファクトはスナップショットと呼ばれます。プラグインは、新しいVPSをデプロイし、定義済みのプロビジョニングツールを実行し、そのスナップショットを作成して、VPSを破棄することで機能します。イメージから新しいサーバーを作成する場合は、VultrのAPIを呼び出して、目的のスナップショットをOSとして新しいVPSをデプロイします。

Packerの使用

Packerは、実行する必要があるビルドを定義するJSONファイルを入力として受け取ります。Vultrビルドを定義するサンプルファイルを次に示します。

{
  "variables": {
    "vultr_api_key": "{{env `VULTR_API_KEY`}}"
  },
  "builders": [
    {
      "type": "vultr",
      "api_key": "{{user `vultr_api_key`}}",
      "snapshot_description": "My Awesome App",
      "region_id": "2",
      "plan_id": "201",
      "os_id": "167",
      "ssh_username": "root"
    }
  ]
}

このファイルには、2つの最上位キー、variablesおよびがありbuildersます。variablesキーは、カスタム変数を定義するために使用され、この場合に組み込むために使用されVULTR_API_KEY、後に使用することができますように、環境変数を。buildersキーは、のリストは、この場合には、唯一の私たちのVultrビルドを実行するために構築します含まれています。少し分解してみましょう。

  • type:これは実際に使用するビルダーを定義します。Vultrビルドの場合は常ににする必要がありますvultr
  • api_key:ビルドを実行するには、ここで定義されているAPIキーが必要です。この例では、それをvultr_api_keyユーザー変数の値として定義しVULTR_API_KEYます。さらに、これは環境変数の値に設定されます。
  • snapshot_description:結果のスナップショットの説明。
  • region_id:VPSをデプロイするリージョン。これは最終的なスナップショットには影響せず、スナップショットの作成元のサーバーにのみ影響します。
  • plan_id:VPSに使用する計画。このスナップショットを将来的に使用するには、少なくともこの大きさの計画を定義する必要があります。
  • os_id:スナップショットのベースとなるオペレーティングシステム。
  • ssh_username:プロビジョニングのためにサーバーにSSH接続するときに使用されるユーザー名。Linuxサーバーの場合、これは通常ですroot

使用するには、このファイルをなどの名前で保存してからserver.json、コマンドを実行しpacker build server.jsonます。ビルドのステータスを示す出力が表示されます。これには数分かかります。

このビルドを実行すると、という名前の新しいサーバーSnapshotting: My Awesome Appが作成され、スナップショットが作成されてから破棄されます。プロビジョナーが定義されていない場合は、それだけです。プロビジョナーの定義の詳細については、Packerのドキュメントを参照してください。

ビルドが完了すると、Packerは結果のスナップショットのIDを出力します。

地域、計画、OSの定義

これらの3つの値はすべてのVultrビルドに必要ですが、いくつかの方法のいずれかで定義できます。それぞれについて、あいまいさを避けるために、バリエーションの1つだけを指定する必要があります。

領域

地域情報は、APIを介してクエリできます:https : //www.vultr.com/api/#regions_region_list

  • region_id:地域のID、たとえば 2
  • region_code:地域のコード、例えば ORD

予定

プラン情報は、APIを介してクエリできます:https : //www.vultr.com/api/#plans_plan_list

  • plan_id:計画のID、例えば 201

OS

オペレーティングシステム情報は、APIを介してクエリできます:https : //www.vultr.com/api/#os_os_list

  • os_id:OSのID。 167


Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。