この記事の内容は、オープンソース ツール Packer を使用してカスタム イメージを簡単に作成する方法についてです。必要な方は参考にしていただければ幸いです。
Packer を使用してカスタム イメージを作成する
オープン ソース ツール Packer を使用すると、カスタム イメージを簡単に作成できます。ほとんどの主要なオペレーティング システムで動作します。この記事を参照して Packer をインストールして使用し、カスタム イメージを簡単に作成します。
注
この記事の説明は、Linux オペレーティング システムを実行しているサーバーにのみ適用されます。
1. Packer のインストール
Packer の公式 Web サイトのダウンロード ページにアクセスし、オペレーティング システムに対応するバージョンをダウンロードすることを選択できます。次の手順に進むか、公式の Packer インストール手順にアクセスして Packer をインストールします。
Linux サーバーに接続してログインします。サーバーが ECS Linux インスタンスの場合は、ユーザー名とパスワード認証を使用して Linux インスタンスに接続するためのドキュメントを参照してください。
コマンド cd /usr/local/bin を実行して、/usr/local/bin ディレクトリに入ります。
説明
#/usr/local/bin ディレクトリは、このディレクトリまたは環境変数に追加された他のディレクトリに Packer をインストールできます。
コマンド wget https://releases.bashicorp.com/packer/1.1.1/packer_1.1.1_linux_amd64.zip を実行して、Packer インストール パッケージを取得します。 Packer のダウンロード ページにアクセスして、Packer インストール パッケージの他のバージョンを入手できます。
コマンド unzip Packer_1.1.1_linux_amd64.zip を実行してファイルを解凍します。
コマンド Packer -v を実行して、Packer のインストール ステータスを確認します。 Linux サーバーが Packer のバージョン番号を返した場合、Packer が正しくインストールされていることを意味します。 Linux サーバーのプロンプトでコマンドが見つからない場合は、Packer が正しくインストールされていないことを意味します。
2. Packer テンプレートの定義
説明
Packer を使用してカスタム イメージを作成する場合は、 JSON形式のテンプレートファイルです。テンプレート ファイルでは、カスタム イメージを作成するための Alicloud Image Builder と Provisioners を指定する必要があります。 Packer には、カスタム イメージのコンテンツ生成方法を構成するために使用できるさまざまなコンフィギュレーターがあります。以下では、Packer テンプレートを定義する例として、一般的に使用されるシェル コンフィギュレーターを使用します。
Linux サーバーに alicloud という名前の json ファイルを作成し、次の内容を貼り付けます。
{ "variables": { "access_key": "{{env `ALICLOUD_ACCESS_KEY`}}", "secret_key": "{{env `ALICLOUD_SECRET_KEY`}}" }, "builders": [{ "type":"alicloud-ecs", "access_key":"{{user `access_key`}}", "secret_key":"{{user `secret_key`}}", "region":"cn-beijing", "image_name":"packer_basic", "source_image":"centos_7_02_64_20G_alibase_20170818.vhd", "ssh_username":"root", "instance_type":"ecs.n1.tiny", "internet_charge_type":"PayByTraffic", "io_optimized":"true" }], "provisioners": [{ "type": "shell", "inline": [ "sleep 30", "yum install redis.x86_64 -y" ] }] }
説明
次のパラメータ値をカスタマイズする必要があります。
3. Packer を使用してカスタム イメージを作成します。
Packer テンプレート ファイルを指定して、カスタム イメージ:
AccessKeyID をインポートします。export ALICLOUD_ACCESS_KEY=your AccessKeyID を実行します。
AccessKeySecret をインポートします。export ALICLOUD_SECRET_KEY=your AccessKeySecret を実行します。
コマンド Packer build alicloud.json を実行して、カスタム イメージを作成します。
サンプルの実行結果は次のとおりです。次の例では、Redis を含むカスタム イメージを作成します。
alicloud-ecs output will be in this color. ==> alicloud-ecs: Prevalidating alicloud image name... alicloud-ecs: Found image ID: centos_7_02_64_20G_alibase_20170818.vhd ==> alicloud-ecs: Start creating temporary keypair: packer_59e44f40-c8d6-0ee3-7fd8-b1ba08ea94b8 ==> alicloud-ecs: Start creating alicloud vpc --------------------------- ==> alicloud-ecs: Provisioning with shell script: /var/folders/3q/w38xx_js6cl6k5mwkrqsnw7w0000gn/T/packer-shell257466182 alicloud-ecs: Loaded plugins: fastestmirror --------------------------- alicloud-ecs: Total 1.3 MB/s | 650 kB 00:00 alicloud-ecs: Running transaction check --------------------------- ==> alicloud-ecs: Deleting temporary keypair... Build 'alicloud-ecs' finished. ==> Builds finished. The artifacts of successful builds are: --> alicloud-ecs: Alicloud images were created: cn-beijing: m-2ze12578be1oa4ovs6r9
次のステップ
カスタム イメージの作成例を使用する
以上がオープンソース ツール Packer を使用してカスタム イメージを簡単に作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。