第2章 cloud-init の概要
cloud-init
ユーティリティーは、システムの起動時にクラウドインスタンスの初期化を自動化します。cloud-init
は、さまざまなタスクを実行するように設定できます。
- ホスト名の設定
- インスタンスへのパッケージのインストール
- スクリプトの実行
- デフォルトの仮想マシン (VM) 動作の抑制
前提条件
- Red Hat カスタマーポータル のアカウントに登録している。
cloud-init
は、さまざまなタイプの RHEL イメージで利用できます。以下に例を示します。
-
Red Hat カスタマーポータル から KVM ゲストイメージをダウンロードすると、イメージが
cloud-init
パッケージで事前にインストールされます。インスタンスを起動すると、cloud-init
パッケージが有効になります。Red Hat カスタマーポータルの KVM ゲストイメージは、Red Hat Virtualization (RHV)、Red Hat OpenStack Platform (RHOSP)、および Red Hat OpenShift Virtualization で使用することを目的としています。 -
Red Hat カスタマーポータルから RHEL ISO イメージをダウンロードして、カスタムゲストイメージを作成することもできます。この場合は、カスタマイズしたゲストイメージに
cloud-init
パッケージをインストールする必要があります。 クラウドサービスプロバイダー(AWS または Azure など)からのイメージを使用する必要がある場合は、RHEL イメージビルダーを使用してイメージ を作成します。Image Builder イメージは、特定のクラウドプロバイダー向けにカスタマイズされます。次のイメージタイプには、
cloud-init
がすでにインストールされているものがあります。- Amazon Machine Image (AMI)
- 仮想ハードディスク(VHD)
QEMU copy-on-write (qcow2)
RHEL Image Builder の詳細は RHEL システムイメージのカスタマイズ を 参照してください。
ほとんどのクラウドプラットフォームは cloud-init
をサポートしますが、設定手順とサポートされるオプションは異なります。また、NoCloud 環境向けに cloud-init
を設定できます。
さらに、1 つの仮想マシンで cloud-init
を設定し、その仮想マシンをテンプレートとして使用し、追加の仮想マシンまたは仮想マシンクラスターを作成できます。
Red Hat Virtualization などの特定の Red Hat 製品では、これらの製品の cloud-init
を設定する手順が文書化されています。
2.1. cloud-init 設定の概要
cloud-init
ユーティリティーは、YAML 形式の設定ファイルを使用してユーザー定義のタスクをインスタンスに適用します。インスタンスが起動すると、cloud-init
サービスが起動して、YAML ファイルからの指示を実行します。設定によっては、タスクは最初の起動時または仮想マシンの後続の起動時に完了します。
特定のタスクを定義するには、/etc/cloud/cloud.cfg
ファイルを設定し、/etc/cloud/cloud.cfg.d/
ディレクトリーの下にディレクティブを追加します。
cloud.cfg
ファイルには、ユーザーアクセス、認証、システム情報など、さまざまなシステム設定のディレクティブが含まれます。ファイルには、
cloud-init
のデフォルトおよびオプションのモジュールも含まれています。これらのモジュールは、のフェーズで順番に実行されます。cloud-init
初期化フェーズ ..設定フェーズ ..最終フェーズ。+
cloud.cfg
ファイルでは、3 つのフェーズのモジュールがcloud_init_modules
、cloud_config_modules
、およびcloud_final_modules
の下にそれぞれ一覧表示されます。-
cloud.cfg.d
ディレクトリーに、cloud-init
のディレクティブを追加できます。cloud.cfg.d
ディレクトリーにディレクティブを追加する場合は、それらを*.cfg
という名前のカスタムファイルに追加し、ファイルの先頭に常に#cloud-config
を含める必要があります。