翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AL2 での cloud-init の使用
cloud-init パッケージは、Canonical によって構築されたオープンソースアプリケーションであり、Amazon EC2 などのクラウドコンピューティング環境で Linux イメージをブートストラップするときに使用されます。Amazon Linux には、カスタマイズされたバージョンの cloud-init が含まれています。これにより、起動時にインスタンスに発生するアクションを指定できます。インスタンスの起動時に、ユーザーデータフィールドを使用して必要なアクションを cloud-init に渡すことができます。つまり、さまざまなユースケースに対して共通の AMI を使用し、起動時にその AMI を動的に設定できます。Amazon Linux は、ec2 ユーザーアカウントの初期設定を実行するためにも cloud-init を使用します。
詳細については、「cloud-init ドキュメント
Amazon Linux は、/etc/cloud/cloud.cfg.d と /etc/cloud/cloud.cfg にある cloud-init アクションを使用します。独自の cloud-init アクションファイルを /etc/cloud/cloud.cfg.d に作成することができます。このディレクトリ内のすべてのファイルは、cloud-init で読み取られます。それらは辞書と同じ順序に読み取られ、後のファイルは以前のファイルの値を上書きします。
cloud-init パッケージは、起動時にインスタンスのこれらの (およびその他の) 共通の設定タスクを実行します。
-
デフォルトのロケールを設定。
-
ホスト名を設定。
-
ユーザーデータの解析と処理。
-
ホスト プライベート SSH キーの生成。
-
容易にログインおよび管理できるように、ユーザーのパブリック SSH キーを
.ssh/authorized_keysに追加する。 -
パッケージ管理のためにリポジトリを準備する
-
ユーザーデータで定義されたパッケージアクションの処理。
-
ユーザーデータにあるユーザースクリプトを実行します。
-
インスタンスストアボリュームをマウントする (該当する場合)
-
デフォルトでは、
ephemeral0インスタンスストアボリュームがある場合は/media/ephemeral0にマウントされ、有効なファイルシステムが含まれます。それ以外の場合は、マウントされません。 -
デフォルトでは、インスタンスに関連付けられたスワップボリュームがマウントされます (
m1.smallおよびc1.mediumインスタンスタイプの場合のみ)。 -
次の cloud-init ディレクティブを使用して、デフォルトのインスタンスストアボリュームマウントを上書きすることができます。
#cloud-config mounts: - [ ephemeral0 ]マウントをより詳細にコントロールするには、cloud-init ドキュメントの「マウント
」を参照してください。 -
TRIM をサポートするインスタンスストアボリュームは、インスタンスの起動時にはフォーマットされないため、マウントする前にパーティション化してフォーマットする必要があります。詳細については、「インスタンスストアボリュームTRIMのサポート」を参照してください。
disk_setupモジュールを使用して、起動時にインスタンスストアボリュームをパーティションおよびフォーマットすることができます。詳細については、cloud-init ドキュメントの「Disk Setup」を参照してください。
-
サポートされているユーザーデータ形式
cloud-init パッケージは、さまざまな形式のユーザーデータ処理をサポートしています。
-
Gzip
-
ユーザーデータが gzip 圧縮されている場合、cloud-init はデータを解凍し、適切に処理します。
-
-
MIME マルチパート
-
MIME マルチパートファイルを使用して、複数のデータタイプを指定できます。たとえば、ユーザーデータスクリプトとクラウド設定タイプの両方を指定できます。マルチパートファイルのパートの形式が、サポートされている形式のいずれかの場合、そのパートは cloud-init で処理できます。
-
-
Base64 デコード
-
ユーザーデータが base64 でエンコードされている場合、cloud-init は、デコードされたデータをサポートされているタイプの 1 つとして理解できるかどうかを決定します。デコードされたデータを認識できる場合、データをデコードし、適切に処理します。認識できない場合、base64 データは変更されません。
-
-
ユーザーデータスクリプト
-
「
#!」または「Content-Type: text/x-shellscript」で始まります。 -
このスクリプトは、初回の起動サイクル時に
/etc/init.d/cloud-init-user-scriptsによって実行されます。これは起動プロセスの後半 (初期設定アクションが実行された後) に実行されます。
-
-
インクルードファイル
-
「
#include」または「Content-Type: text/x-include-url」で始まります。 -
このコンテンツはインクルードファイルです。ファイルには URL の一覧 (1行に1つの URL) が含まれます。各 URL が読み取られ、そのコンテンツが同じルールセットを使用して渡されます。URL から読み取られたコンテンツは gzip 圧縮され、MIME マルチパート、またはプレーンテキスト形式になります。
-
-
クラウド設定データ
-
「
#cloud-config」または「Content-Type: text/cloud-config」で始まります。 -
このコンテンツはクラウド設定データです。
-
-
アップスタートジョブ (AL2 ではサポートされていません)
-
「
#upstart-job」または「Content-Type: text/upstart-job」で始まります。 -
このコンテンツは のファイルに保存され
/etc/init、upstart は他の upstart ジョブと同様にコンテンツを消費します。
-
-
クラウドブートフック
-
「
#cloud-boothook」または「Content-Type: text/cloud-boothook」で始まります。 -
このコンテンツはブートフックデータです。このデータは
/var/lib/cloudにあるファイルに保存され、すぐに実行されます。 -
これは最初に使用可能な [hook] (フック) です。1 回だけ実行するためのメカニズムはありません。ブートフックは自身でこの点に対処する必要があります。環境変数
INSTANCE_IDでインスタンス ID が指定されています。この変数を使用して、インスタンスあたり1つのブートフックデータのセットを提供します。
-